Hola RocKHounD,
Has podido solucionar tu problema?
Buenas a todos, espero que podais ayudarme porque estoy apunto de lanzarme por un puente...

Buffer Overflow en
CesarFTP 0.99gEstoy intentando replicar este buffer overflow para seguir aprendiendo estos temas y me he quedado estancado con algunas dudas.
la historia es la siguiente, cuando creo con msfvenom el payload
windows/shell/reverse_ord_tcp eliminando los siguientes badchars
"\x00\x20\x0a\x0d" (los badchars los extraje del modulo de metasploit)
veo que teniendo un netcat escuchando por el puerto recibo la conexion, pero algo debe de ir mal porque no obtengo ninguna shell.
he modificado con el RET correcto el modulo de metasploit y funciona correctamente pero no soy capaz de replicarle.
mis dudas son estas:
cuando con msfpayload creo la shellcode que puse arriba de arroja dos trozos de codigo, stage1 y stage2. (msfvenom me da un codigo, no dos como msfpayload)
que precisamente es lo que hace msfconsole cuando lo lanzo, crea una stage1 y envia algo, luego crea la stage2 y vuelve a enviar algo hasta que te crea una shell de meterpreter.
como deberia incluir esa parte en el script??.
El stager es una shellcode minima que te abre una conexion a la espera de otro payload llamado stage. El payload de calc.exe es autonomo, o sea sin stager, y es por eso que te funciona bien. Si queres incluir en el script los stagers + stages tendrias que ver como msf interactua con el meterpreter.
luego, hay al menos 300 bytes de espacio, si pongo la shellcode de calc.exe la abre a la perfección, sin nigún error en el debbuging, pero cuando pongo la otra se queda medio parado y tengo que forzar la lectura de la pila a mano.
es posible que la eliminación de badchars rompa la shellcode??
No, supuestamente la shellcode deberia permanecer intacta, codificada pero funcionalmente intacta.
con findjump2.exe saco mil offsets para hacer saltar el flujo de la ejecución a mi shellcode, ¿varia el espacio final de la shellcode dependiendo de que JMP ESP escoja??
No
Otra cosa rarísima es que si en el script en lugar de llamar a la shellcode pongo "B" * 500 para ver mas o menos que espacio tengo disponible, el debbuger no hace absolutamente nada... pero nada de nada... se queda parado como si hubiera recibido el codigo pero lo hubiera asimilado el programa dando la salida ok.
El overflow se produce al introducir muchos __saltos_de_linea__, con cualquier otro caracter no funciona.
Probe el exploit y funciona terriblemente bien con msf. Despues si hago algo de tiempo me fijo con tu script.
Saludos!