
Herramienta de extracción basada en Frida.re para RunPE (y MapViewOfSection)
FridaExtract es una herramienta de extracción RunPE basada en Frida.re. La inyección de tipo RunPE es una técnica común utilizada por malware para ocultar código dentro de otro proceso. También resulta ser la etapa final en muchos packers : )
NOTA: Frida ahora también soporta la extracción de archivos PE inyectados usando la técnica "MapViewOfSection", mejor descrita aquí.
Usando FridaExtract puedes extraer y reconstruir automáticamente un archivo PE que ha sido inyectado usando el método RunPE... ¡y eludir estos packers!
Hay montones de herramientas excelentes que ya extraen código inyectado por RunPE, FridaExtract no es mejor que ellas. Pero es más fácil de instalar, más fácil de construir (lol), más fácil de ejecutar y más fácil de hackear. Sin compiladores, sin entornos de compilación, solo un simple "pip install" y ya estás listo para funcionar.
El código está específicamente comentado y organizado para actuar como plantilla para que construyas tus propios proyectos Frida. Esto es más una prueba de concepto que demuestra cómo configurar hooks en un entorno Windows. ¡Siéntete libre de copiar-pegar-hackear esto de la forma que quieras!
Advertencia: FridaExtract solo funciona en Windows 32 bits. Actualmente hay algunos misteriosos bugs con wow64, por lo que recomendamos limitarse a Windows 7 32 bits o Windows Server 2008 32 bits.
pip install frida en cmdFridaExtract solo puede extraer archivos PE inyectados por RunPE, por lo que es bastante limitado. Si estás usando una máquina virtual fácil de capturar-ejecutar-revertir, puedes probar FridaExtract a ciegas en cada muestra de malware y ver qué sale, pero no lo recomendamos. En cambio, FridaExtract es un buen complemento para un sandbox (amamos a malwr). Primero ejecuta la muestra en un sandbox y observa las llamadas API.
Para la técnica RunPE, si ves las siguientes llamadas API, entonces FridaExtract puede ser la herramienta para ti:
Para la técnica MapViewOfSection, si ves las siguientes llamadas API, entonces FridaExtract puede ser la herramienta para ti:
Por defecto, FridaExtract intentará extraer automáticamente el archivo PE inyectado, reconstruirlo y volcarlo a un archivo llamado dump.bin.
python FridaExtract.py bad.exe
Se puede especificar un archivo de volcado usando el comando --out_file.
python FridaExtract.py bad.exe --out_file extracted.exe
Si el archivo PE empaquetado que intentas extraer requiere argumentos, puedes pasarlos usando el comando --args. Se pueden pasar múltiples argumentos separados por comas.
python FridaExtract.py bad.exe --args password
FridaExtract intentará automáticamente reconstruir la memoria volcada en un archivo PE. Si esto no funciona y solo deseas un volcado en bruto de toda la memoria escrita en el subproceso, puedes usar el comando --raw. En lugar de escribir el PE reconstruido en el archivo de volcado, los segmentos de memoria en bruto se escribirán en orden de dirección.
python FridaExtract.py bad.exe --raw
FridaExtract usa hooks en las siguientes APIs para extraer el archivo PE inyectado:
Para rastrear estas APIs e imprimir los resultados, usa el comando -v o --verbose.
python FridaExtract.py bad.exe --verbose
Frida usa hooks en espacio de usuario que pueden ser fácilmente eludidos. Si necesitas una herramienta DBI más robusta, ¡prueba PIN! Un gran ejemplo del uso de PIN para extraer RunPE se proporciona aquí.
Frida inyecta un runtime de JavaScript en el proceso que estás analizando, no es sigiloso. Para una visión general decente de cómo Frida puede ser detectado por malware, mira esto.