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ú

Mensajes - black_flowers

#1
y es posible que haya algún programa como el findjmp?

saludos ;D
#2
igual la pregunta es tonta, pero me preguntaba si hay alguna posibilidad en linux de hacer un stack overflow tal y como se hace en windows, es decir buscando un "jmp esp" y colocando su direccion en la del ret.

¿es posible encontrar algun jmp esp en el kernel de linux o algo similar, de modo que podamos hacer el stack overflow como en windows?

un saludo.
#3
ya he conseguido resolver eso, en lugar de en el main, el overflow lo hago en una funcion y declaro un par de variables basura para dejar sitio en lapila para la shellcode.
De todas formas sigue sin funcionar, empiezo a pensar que esto ya es imposible que funcione en los sitemas de hoy en día (hablo de windows por supuesto).
#4
he comprobado que la shellcode se corta casi al final (es decir al principio  ;D) de la pila donde pone como comentario: "pointer to next seh register" que no se que será. Y sucede tambien que la shellcode no la puedo reducir ya que hasta ahí, justo lo que hace es buscar la dirección de getprocaddress en kernel32.dll con lo cual es el paso esencial en la shellcode (no se si me explico). Entonces las dos opciones son, obien encontrar un codigo mas corto para buscar la dirección de getprocaddress, o aumentar si fuera posible el tamaño de la pila aunque esta ultima opcion... no se yo.

un saludo.
#5
hola, he estado debugueando por que no funciona miexploit y he llegado a la conclusion de que es porque es demasiado larga, ya que si la corto por la mitad, parece que si se ejecuta (aunque por supuesto n hace nada ya que no esta completa), Entonces tengo la duda, de ¿cómo puedo calcular el tamaño maximo que puede ocupar mi shellcode, ytambien que es lo que sucede cuando se exceden esos valores,para que el programa se estrelle.

un saludo.
#6
bueno, ya todo debería estar bien pero sigue sin ejecutarse la shellcode. Se me ocurre que puede haber varias razones, por ejemplo:

¿no deberian darse permisos de ejecución (en el programa vulnerable en el que se va a hacer el overflow), a la región donde se encuentra el buffer que va a ser explotado?

y otra que tambien podría ser es desactivar la protecciòn de g++ contra el buffer overflow. he visto en la web que utilizaba la opción.
g++ -fstack-protector
pero me da un error de que no reconoce esa opción.
#7
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.
#8
o yo entendidoal o ese no es el funcionamiento esperado no??
#9
pues eso, que intentando hacer un buffer overflow siguieno el manual de rojodos, me encuentro con esto:
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.
#10
de hecho es un error que sólo mandan los programas hechos en visual c++. El mismo programa hecho en devc n omanda eser error. Debe de ser un error del .net runtime. Aunque por el nombre parece que es del debugger. Pero no lo estoy ejecutando en modo debug.