Pages

Showing posts with label herramientas. Show all posts
Showing posts with label herramientas. Show all posts

Sunday, June 16, 2013

CrystalAEP: una alternativa a EMET

Una de las herramientas que mencioné en el informe de Software Exploitation  y de la que apenas oigo hablar cuando se referencian herramientas de protección (en concreto anti-explotación) es CrystalAEP, desarrollada por Peter Winter Smith. Personalmente suelo utilizar esta herramienta en equipos Windows para prevenir la ejecución de exploits en navegadores y ciertas aplicaciones de uso común, y en donde el AV tiene poco que hacer. De modo similar a EMET, CrystalAEP presenta multitud de opciones de protección que pueden aplicarse de forma selectiva a las aplicaciones que queramos para evitar intentos de explotación. 

La interfaz de la aplicación presenta dos paneles de configuración: Basic Options desde donde podrán elegirse las aplicaciones que queramos añadir a la lista de protección; y Expert Options desde donde podremos definir en detalle que características de seguridad aplicar bien de forma genérica o por cada proceso. Son estas últimas características las que hacen realmente atractiva a la aplicación debido a la multitud de contramedidas existentes para frustar ataques de corrupción de memoria. Debido a la naturaleza de muchos exploits, este tipo de medidas podrían protegernos incluso contra cierto tipo de 0-days. Desde la pestaña de Memory Monitor podemos ver algunas de estas opciones:

Thursday, February 23, 2012

Análisis de shellcodes con scdbg / libemu

Una de las herramientas más utilizadas para analizar e identificar posibles shellcodes es libemu. La idea de esta librería, escrita en C e implementada en frameworks como Dionaea, es emular instrucciones x86 e identificar/hookear llamadas a la API de Windows, con la que poder obtener información suficiente del código sin necesidad de llevar un análisis exhaustivo con debbugers como Inmunity u Olly.

Libemu utiliza técnicas heurísticas GetPC (Get Program Counter) para localizar shellcodes que utilizan encoders como shikata ga nai, fnstenv_mov, etc. Raro es encontrarse payloads que no utilicen algún tipo de cifrado o encoder para intentar evadir IDS/AV, por lo que esta característica lo hace realmente útil para buscar posibles shellcodes en ficheros .pcap, exploits, pdf, etc. Entender cómo funcionan estos métodos GetPC será fundamental para entender exactamente cómo trabaja libemu y saber así también cuáles son sus limitaciones y porque es incapaz de detectar determinados shellcodes.

Wednesday, January 4, 2012

Infección de procesos en Linux con Cymothoa

Estos días he estado jugando un poco con Cymothoa. Para quien no lo conozca, esta herramienta te permite inyectar payloads dentro del espacio de direcciones de un proceso, o dicho de otro modo, troyanizar un proceso en Linux. Cymothoa está desarrollada en C y se encuentra disponible en Backtrack 5 dentro de /pentest/backdoors/cymothoa.

Al no encontrar mucha información sobre su funcionamiento estuve indagando un poco sobre el código para ver exactamente como trabaja. La idea de esta herramienta es sobrescribir directamente el base address de alguna de las librerías utilizadas por el proceso, siendo por defecto el “dynamic linker/loader” (/libr/ld*.so). Los payloads utilizados por Cymothoa están embebidos en el propio binario y pueden verse con el parámetro -S aunque, como veremos a continuación, podremos incorporar los nuestros sin mucho esfuerzo.