estoy intentando hacer un exploit guiandome por el tutorial de rojodos. Y antes de nada me asalta la duda de que si al producirse el stack overflow ... ¿no se cortará la ejecución del programa debido a la excepción generada? Es decir ¿me permitirá windows seguir ejecutando la shellcode que hay en el buffer una vez se produzca la excepción por buffer overflow?
si desactivas todas laprotecciones, el shellcode se ejecutara y la aplicacion original terminara de forma inesperada.
Saludos
Cita de: Anon en 3 Abril 2011, 05:48 AM
si desactivas todas laprotecciones, el shellcode se ejecutara y la aplicacion original terminara de forma inesperada.
Saludos
desactivar protecciones?? ¿te refieres al antivirus? ¿cómo se desactivan tales protecciones en windows7?. ¿no es una excepción del sistema operativo?
favor de leer:
http://wikipedia.org/wiki/Buffer_overflow_protection
Saludos
Las protecciones son pequeños cambios en la estructura de los programas que los protege de posibles fallos. Ejemplos son el valor canario, aletorización de memoria... En W7 el mayor problema que puedes tener es la aleatorización de memoria ;)
Cita de: Anon en 3 Abril 2011, 15:17 PM
favor de leer:
http://wikipedia.org/wiki/Buffer_overflow_protection
Saludos
lo he leído y desactivado la opción /GS (buffer security check) en el compilador visual c++. Pero al hacer el overflow sigue saliendome un cuadro con un mensaje de
error:
Debug Error!
Program:programa
module:programa
file:
Runtime check failure #2. Stack around the variable 'buffer' was corruptedluego le doy a enter sale el mensaje de que el programa ha dejado de funcionar.
entonces sigue siendo un error referente al buffer overflow y no a una violación de segmento como debería ser en realidad.
Pero no entiendo cómo, ya que esta vez está desactivada la opción de protección sobre buffer overflow al compilarlo.
podrias ponernos una captura de pantalla del error.
Saludos
claro, a ver si aquí se ve bien...
http://img706.imageshack.us/i/clipboard02shi.jpg/
Que onda, muy posible que tu sistema tenga otras protecciones adicionales.
Te comento que la falla esta ahi, solo es necesario depurar el programa para saber que es lo que esta pasando internamente, prueba con IDA
Saludos
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.
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.