Foro de elhacker.net

Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: black_flowers en 6 Abril 2011, 08:40 am



Título: findjmp me salta a ESP pero no a la dirección a la que apunta!!
Publicado por: black_flowers en 6 Abril 2011, 08:40 am
pues eso, que intentando hacer un buffer overflow siguieno el manual de rojodos, me encuentro con esto:
Código:
esp:0022334455
pila:
0022334455   0077889900
y la instrucción a ejecutar es un jmp esp (buscado con finjmp en kernel32 o ntdll)
en teoría la siguiente instrucción despues del jmp esp debería de ser la 0077889900, pero en lugar de eso es 0022334455, es decir que en lugar de copiar al eip el valor apuntado por esp me copia directamente en eip el valor de esp.

con call me sucede exactamente lo mismo, no se si sera culpa del compilador, es el masm, aunque yo creo que no es normal que haga eso.

un saludo.


Título: Re: findjmp me salta a ESP pero no a la dirección a la que apunta!!
Publicado por: black_flowers en 6 Abril 2011, 22:51 pm
o yo entendidoal o ese no es el funcionamiento esperado no??


Título: Re: findjmp me salta a ESP pero no a la dirección a la que apunta!!
Publicado por: AlbertoBSD en 7 Abril 2011, 13:55 pm
Posiblemente, estas entendiendo mal. se debe de escribir el valor que tomara EIP con la direccion del JMP ESP,  cuando el programa vulnerable retorne (ejecute el leave/ret) y ejecute el JMP ESP este saltara ESP en teoria ESP esta apuntando a u shellcode.

Sin embargo esto generalmente ya no funciona normalmente para que funcione tendrias que desactivar muchas cosas.

Si ya comprobaste que en 0022334455 verdaderamente esta el JMP ESP, esto en un sistema con ASLR , generalmente te debe de dar direcciones diferentes de memoria

Saludos


Título: Re: findjmp me salta a ESP pero no a la dirección a la que apunta!!
Publicado por: black_flowers en 7 Abril 2011, 17:24 pm
oops,  :-Xtienes razón, ha sido un lapsus, por un momento pensé que eip contenía la instrucción a ejecutar cuando lo que contiene es la dirección de la instrucción.