miércoles, 5 de agosto de 2009

Del crash al Exploit a golpe de click

Hola a todos!!

Hace ya mucho tiempo que no escribía nada y no era ni por falta de ganas ni de cosas que contar ;D

Así que voy a comenzar esta nueva etapa a lo grande!!! Hace unos cuatro meses, que Yibam y yo venimos desarrollando al hilo del concurso 15 de CrackSLatinoS, una herramienta capaz de generar exploits funcionales en forma de ficheros script en Python, a partir de un PoC (Prueba de concepto) proporcionada por el usuario.

El usuario indicaría la longitud de la cadena que provoca el Buffer Overflow, la via por la cual el software vulnerable es capaz de recibir dicha cadena. Por linea de comandos, en forma de fichero interpretables por el software vulnerable, por conexión de red (socket), como argumento de una función de una libreria .dll, etc... Y la herramienta comienza todo el proceso de análisis.

El análisis automático que realiza la herramienta, consiste en montar la PoC y lanzarlo contra el software vulnerable para provocar el crash de Access Violation. Debido a la infinidad de casos, la herramienta va salvando los diferentes obstáculos (AntiDEP, SafeSEH, excepciones de escritura o lectura de ciertas direcciones, localización de direcciones validas para hacer un trampolin valido, etc...) hasta llegar a sobreescribir EIP y con toda esa información, crear un script .py que al lanzarlo de manera independiente, sea capaz de ejecutar una shellcode explotando el fallo indicado por la PoC en el software vulnerable.

Para que podáis haceros una pequeña idea, os adjunto una imagen, de la herramienta en plena faena, mientras esta analizando un crash producido en busca de posibles trampolines con los que saltar a la Shellcode.

Como podéis ver en la ventana de la derecha, ha encontrado un trampolin respecto al registro ECX.

El desarrollo esta aun en fases preliminares, en breve liberaremos un pre-release para que podáis verla y testearla a vuestro gusto ;D

Pero aun hay mas.... La herramienta esta pensada como API en Python para que cada uno pueda utilizarla y hacer sus propios exploits. La imagen anterior es un entorno de ventanas con wxPython hecho posteriormente al desarrollo de todas sus funcionalidades, es decir solo como frontend. La herramienta puede ser utilizada como módulos Python para que cada uno la adapte a sus necesidades y pueda crear sus propias aplicaciones con los beneficios que esta aporta.

Espero que este nuevo proyecto que estamos afrontando, os resulte tan interesante como a nosotros. Nos vemos en la inminente pre-release!!!

Saludos!!

4 comentarios:

amerikano dijo...

Grosos!!!, los exploits no son lo mio pero se ve el trabajo duro que han hecho los 2, ¡¡los felicito!! :).

salu2

Boken dijo...

Y lo que queda.... Muchas gracias!!

Anónimo dijo...

Muy bueno!!! Felicitaciones a los dos!!!.

tena dijo...

Grosos!!!