MONA - Asistente para Explotación en Immunity Debugger
Relacionado: Notas. 12 Introduccion a la Criptografiaseguridad. Conceptos basicos de la seguridad en el software. Practica 1 Apendice Programacion con sockets en Python Master IoT UCM Practicas RPIANIOTLSI 2425. 2025 04 20 Computacion Cuantica y Criptografia Post Cuantica.
Descripción
Mona.py es un script de Python diseñado para facilitar y automatizar tareas relacionadas con la explotación de vulnerabilidades en Immunity Debugger. Ayuda a los analistas a identificar patrones, calcular compensaciones, buscar gadgets para Return-Oriented Programming (ROP), y automatizar tareas complejas en el desarrollo de exploits.
Desarrollado por Corelan Team, Mona es una herramienta fundamental para analistas de seguridad y pentesters que trabajan en entornos Windows.
Características
- Identificación de Patrones: Genera y encuentra patrones únicos para calcular compensaciones.
- Búsqueda de Gadgets ROP: Encuentra gadgets para construir cadenas ROP.
- Identificación de Direcciones Seguras: Busca direcciones en módulos con protecciones específicas (DEP, ASLR).
- Automatización de Explotación: Facilita tareas como encontrar badchars, generar cadenas de payload y mucho más.
- Compatibilidad con Immunity Debugger: Totalmente integrado en este entorno de depuración.
Usos Comunes
- Desarrollo de Exploits: Automatiza tareas repetitivas durante la creación de exploits.
- Análisis de Binarios: Identifica vulnerabilidades en programas y módulos.
- Pruebas de Penetración: Evalúa la seguridad de aplicaciones Windows.
- Entrenamiento en Explotación: Usada en laboratorios y cursos para aprender técnicas de explotación.
Instalación
Requisitos
- Immunity Debugger instalado en un sistema Windows.
- Python 2.7, que Immunity Debugger utiliza de manera predeterminada.
Instalación de Mona
- Descarga Mona.py desde el repositorio oficial: Mona.py - Corelan
- Copia el archivo
mona.pyal directorio de scripts de Immunity Debugger:C:\Program Files (x86)\Immunity Inc\Immunity Debugger\PyCommands\ - Reinicia Immunity Debugger para cargar el script.
Comandos Básicos
1. Generar un Patrón Único
Genera un patrón único para calcular compensaciones:
!mona pattern_create 500500: Longitud del patrón a generar.
2. Encontrar la Compensación
Encuentra la posición de un valor dentro del patrón:
!mona pattern_offset <valor>Ejemplo:
!mona pattern_offset 396541383. Buscar Gadgets ROP
Busca gadgets en módulos específicos:
!mona ropOpciones avanzadas para filtrar gadgets:
!mona rop -m <nombre_modulo>4. Identificar Badchars
Detecta caracteres problemáticos en un exploit:
!mona compare -f badchars.bin -a <dirección>badchars.bin: Archivo con posibles badchars.<dirección>: Dirección de memoria donde empieza el análisis.
5. Buscar Direcciones en Módulos
Lista direcciones de interés en módulos con protecciones específicas:
!mona modulesResultados útiles para encontrar módulos sin ASLR y DEP.
Ejemplo Completo de Uso
-
Generar un Patrón para Sobrescribir EIP: En tu script de prueba, coloca un patrón generado con:
!mona pattern_create 400Usa este patrón en tu payload y ejecuta el programa objetivo.
-
Calcular la Compensación: Cuando el programa crashea, encuentra el valor en EIP usando:
!mona pattern_offset <valor_en_eip> -
Identificar Gadgets ROP: Busca gadgets para construir una cadena ROP:
!mona rop -m kernel32.dll -
Detectar Badchars: Genera un archivo con posibles badchars y compáralo:
!mona compare -f badchars.bin -a 0x0012FF50 -
Buscar Módulos sin Protecciones: Identifica módulos útiles para redirigir la ejecución:
!mona modules
Opciones Avanzadas
Configuración del Directorio de Salida
Cambia el directorio donde Mona guarda los resultados:
!mona config -set workingfolder C:\ExploitResults\Generación de Payloads
Crea una cadena de payload con Mona:
!mona jmp -r espAnálisis de Protección de Módulos
Lista los módulos junto con sus protecciones:
!mona modules -n DEP,ASLRRelevancia en Ciberseguridad
Mona.py es esencial para:
- Automatizar Tareas de Explotación: Reduce el tiempo necesario para realizar análisis complejos.
- Identificar Vulnerabilidades: Facilita la búsqueda de puntos débiles en aplicaciones.
- Entrenamiento y Educación: Proporciona una plataforma práctica para aprender técnicas de explotación.
Contramedidas
-
Implementar Protecciones Modernas:
- Asegúrate de que los módulos tengan ASLR (Address Space Layout Randomization) y DEP (Data Execution Prevention) habilitados.
-
Actualización de Software:
- Mantén las aplicaciones y librerías actualizadas para mitigar vulnerabilidades conocidas.
-
Análisis de Binarios:
- Realiza revisiones de seguridad en el código fuente y en binarios críticos.
-
Uso de Seguridad en Compilación:
- Configura compiladores con opciones como /GS (Buffer Security Check) y SEHOP (Structured Exception Handling Overwrite Protection).
Recursos Adicionales
- Repositorio Oficial de Mona.py
- Guía Oficial de Corelan
- Immunity-Debugger-Depuracion-y-Explotacion
- ROP-Return-Oriented-Programming