31 julio 2012

Reversing malware tales: Análisis estático con Peframe

En anteriores posts de esta saga hablamos sobre como usar el debugger para realizar inspecciones sobre elementos de malware, en este caso vamos a hablar del paso previo a usar el debugger. Vamos a realizar un análisis en estático sobre un ejecutable para pre-identificar con lo que nos vamos a encontrar.

Para ello, usaremos la herramienta 'Peframe', que está escrita en Python y que se puede descargar desde aquí.

Peframe nos permite analizar un ejecutable PE y sacar información útil como los 'strings' del binario o  la lista de DLLs que importa y las funciones que llama


Vamos a analizar diversos especímenes de malware para ver ejemplos reales de información que se puede obtener con esta herramienta.


Como podemos ver en la captura, peframe nos lista todas las DLLs que este binario cargará y las funciones que llama de cada una de ellas.

Destacan GetProcAddress(), que se suele emplear para enmascarar el uso de otras funciones, ShellExecuteW() y URLDownloadToFileW().

Peframe también permite auto-clasificar las funciones que el entiende como 'sospechosas' con el flag --suspicious

En este caso, Peframe ha identificado esas dos funciones como sospechosas.

Vamos a analizar ahora un binario bastante fortificado, que contiene unas cuantas técnicas anti-debug.


Como se puede observar, emplea IsDebuggerPresent() -nuestra vieja conocida- GetModuleFileName() y UnhandledExceptionFilter(), otra función empleada como 'trick anti-debug', con lo que tenemos claro que, cuando vayamos a analizar este espécimen de malware, nos vamos a encontrar muchas 'minas' en el camino.

Conclusión: Peframe es una herramienta muy útil para pre-analizar un ejecutable, sacar las primeras conclusiones sobre su naturaleza y averiguar el funcionamiento interno del espécimen.

[+] peframe - Static Analysis of Portable Executable Malware

4 comments :

Madrikeka dijo...

Me encantan esto posts!
voy a tener que volver a llenar una máquina de bichitos para poder hacer estas cosas!! :D

Angel Alvarez Nuñez dijo...

Muy buena toda la saga, es un tema que, al menos a mi, me echa un poco para atras y eso que me gusta la programacion, espero que mas adelante nos cuentes como esquivar esas "minas", un saludo Yago.

Yago Jesus dijo...

¡¡ Muchas gracias !! Tomo nota para orientar los siguientes posts

Yago Jesus dijo...

Anímate y luego ven a escribir los resultados en un post !!