Codificación de una dirección que contiene un byte nulo en una carga útil

5

Estoy trabajando en un exploit SEH. El problema al que me enfrento aquí es que todas las direcciones POP / POP / RETN terminan con bytes nulos, por lo que todo lo que se coloca después de que se corrompe.

¿Es posible usar Metasploit Msfencode para codificar la dirección de las instrucciones POP / POP / RETN para superar el problema del byte nulo?

La estructura de explotación es: (300 bytes de basura + nseh + seh + 3000 bytes de basura)

    
pregunta Ahmed Taher 03.08.2013 - 16:56
fuente

2 respuestas

2

Hay un complemento de inmunidad mona.py, desarrollado por chicos increíbles en corelan.be. puedes marcar combinaciones pop / pop / ret usando eso. Morever mona.py también proporciona un esqueleto para convertir su módulo de explotación en un módulo de metasploit, por lo que lo transporta allí.

También intente! mona sugiera ver las opciones de explotación después de colocar mona.py en la carpeta Pycommands del inmunizador de inmunidad. Podría sugerirte algo más también.

Puede usar msfencode pero la codificación hará que la carga útil sea más larga y que 300 bytes es demasiado menos. Pero puede intentar ver si se ajusta.

Si no funciona lo anterior, es posible que deba hacer lo que Ditmar sugirió.

    
respondido por el oldnoob 07.08.2013 - 19:33
fuente
1

Es imposible responder con precisión a esta pregunta sin una mirada específica al binario o más detalles sobre a qué tiene acceso.

En general, si su dirección SEH contiene un byte nulo, debe pegar nseh & seh al final de su carga útil para simplificar la explotación. Si no se trata de un salto a su código de shell, por lo general funciona bien con esto, su problema podría ser ajustar su código de shell a 300 bytes (sobre los que tiene control).

Hay listas de técnicas que puedes probar, pero aún veo que estás limitado a esos 300 bytes. .

    
respondido por el Ditmar Wendt 07.08.2013 - 07:21
fuente

Lea otras preguntas en las etiquetas