miércoles, 12 de agosto de 2009

Web del proyecto EEW

Hola a todos.

Debido a la cantidad de información y post que iremos creando para explicar y comentar las nuevas funcinoalidades y el estado del proyecto, en adelante todos los post relacionados con la herramienta, tanto Yibam como yo las iremos publicando en el blog que hemos creado expresamente para el mismo.

El blog lo podéis visitar pinchando aquí:

Espero que os interese el proyecto y sigáis su desarrollo!!

Gracias a todos por vuestro interés.
Saludos.

lunes, 10 de agosto de 2009

Del crash al Exploit a golpe de click (III)

Mi socio Yibam esta lanzado y os ha preparado otro vídeo explicativo del uso de la herramienta EEW (Expert Exploit Writer). Podéis verlo aquí.

Como podéis ver, en este vídeo se han modificado algunos puntos para que los resultados sean mas visuales. Además se pueden empezar a ver algunos detalles como la detección de si se pisa o no SE Handler, si esta o no activado la opción de AntiDEP, si se ha producido una excepción del tipo ACCESS VIOLATION on write, on read o on execute.

Según el tipo de excepción monta el evilbuffer de una manera u otra, buscando y recopilando las dirección o información necesaria para ello.

Espero que os guste el vídeo. Cualquier duda, critica, opinión, proposición, ya sabéis como contactar con nosotros.

Saludos.

domingo, 9 de agosto de 2009

Del crash al Exploit a golpe de click (II)

Para que podáis haceros una mejor idea de la herramienta que venimos desarrollando, podéis ver un vídeo realizado por Yibam, en el que muestra una sesión de uso.

En primer lugar selecciona el software vulnerable, especifica el template que debe cumpliar el evilbuffer (cadena larga especialmente manipulada para explotar el buffer overflow). En este caso, no debe de cumplir ningún formato especial, simplemente se indica que muestre [evilbuffer].

Luego especifica la longitud de la cadena para producir el crash, y finalmente especifica la vía por la cual se envía la PoC (prueba de concepto) creado automaticamente.

Aquí tenéis el post con el vídeo, espero que os guste ;D

viernes, 7 de agosto de 2009

Automatización para la busqueda de trampolines.

Al hilo del anterior post, os muestro uno de los resultados obtenidos con la herramienta que Yibam y yo estamos desarrollando.

La siguiente imagen es un sesion con Immunity Debugger (Ollydbg) justo en el momento en que se desborda la seccion de la pila y al pisar el puntero SEH, se intenta manejar la excepcion redirigiendo el programa a este puntero manipulado por el exploit en python creado automaticamente por la herramienta ;D

Como se puede observar abajo a la derecha, se sobrepasa la seccion, pero sobreescribiendo el puntero SE Handler con la direccion de un CALL [EBP+10] que es donde esta nuestra Shellcode de prueba, como se puede ver arriba de la pila. Esta Shellcode de prueba es CCCCCCCC que en ASM seria:
INT3
INT3
INT3
INT3

Que de ejecutarse, provocaria una excepcion de tipo BREAKPOINT.

Bueno esto es solo una de las caracteristicas de nuestra herramienta que estamos desarrollando ;D

Seguiremos contando....

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!!

jueves, 15 de enero de 2009

Del parche al exploit con BinDiff e ImmunityDebugger

Con motivo del apartado 4 del concurso 11 de 2008 de CrackSLatinoS, Ricardo propuso analizar 2 versiones consecutivas de WinRAR, para detectar que vulnerabilidad corregía la versión mas nueva.

En este caso de trata de las versiones WinRAR 3.10 y 3.11. La versión 3.10 de WinRAR no comprueba la longitud de las extensiones de los ficheros contenidos un fichero comprimido y procede a copiar su totalidad en una variable local alojada en la pila. Al desbordar esta variable sobreescribe la dirección de retorno guardada en la pila, pudiendo manipular esta dirección, es posible ejecutar código arbitrario.

En el tutorial se explica en detalle como utilizar BinDiff 2 y como analizar los datos que ofrece, para detectar el bloque vulnerable lo mas rápido y eficazmente posible.

Además se procede a elaborar un script que genera un fichero comprimido que provoca el Buffer Overflow y sirve de PoC (Prueba de concepto)

El tutorial finaliza mostrando los detalles necesarios para convertir la PoC en un exploit totalmente funcional, con el que se puede ejecutar código arbitrario en cualquier víctima que abra el fichero comprimido con la versión de WinRAR 3.10 y anteriores.

Espero que os guste y disfrutéis leyéndolo.
Podéis descargar el tutorial pinchando aquí.