Para realizar un análisis dinámico de malware es necesario disponer de algunas herramientas preparadas antes de empezar:
- Una máquina virtual donde se ejecutará la muestra de malware (Por ejemplo un corriente VirtualBox)
- Un analizador de tráfico de red, por ejemplo Wireshark.
- Instalar un detector empaquetadores en la maquina virtual, por ejemplo PEID o PE Explorer.
- Cuckoo Sandbox nos permitirá saber que funciones y API ha llamado el malware, los archivos creados y eliminados, volcados de memoria, capturas de pantalla, entradas del registro modificados, etc)
- FakeNet es una herramienta que nos permitirá simular una red, para conocer el comportamiento del malware.
Si queremos hacer un análisis más avanzado, tendremos que usar herramientas como:
- Volatility, para analizar capturas de memoria
- Yara
- Hook Analyzer
En esta entrada voy a mostrar un pequeño ejemplo de un análisis dinámico que realicé allá por el año 2012 de una variante del malware zbot.
Inicialmente como vemos, disponemos de una maquina virtual, con el malware ya preparado.
También tenemos preparado el wireshark para analizar el tráfico que salga por la red. Es preferible escuchar en una conexión de red que sólo la vaya a usar nuestra maquina virtual para evitar que el tráfico normal y legitimo de red nos confunda del tráfico causado por el malware.
Para tratar de engañar al malware, se preparó una red falsa con InetSim, aunque se podría haber preparado algo similar con FakeNet
.Una de las tareas importantes a analizar es la captura de las entradas del registro modificadas. Esto se puede conseguir con el Cuckoo Sandbox u otras herramientas. En la siguiente imagen se utilizí CaptureBat.
Utilizando esta misma herramienta se puede ver que se ha creado un ejecutable en la ruta %ApplicationData%/Lyolxi/raruo.exe. Lógicamente es un nombre y una ruta aleatorios.
Entretanto nos dabamos cuenta de que habia tráfico de red causado por este malware:
Como vemos que es tráfico TCP, podemos consultar el stream de datos gracias al Wireshark:
Por ultimo se puede buscar en multiples lugares de internet en busqueda de información extra. En Virustotal, por ejemplo, en este caso, como sabiamos que se trataba de una muestra de Zbot, se buscó en el Zeus Tracker:
Para continuar con el estudio es necesario suspender la máquina virtual y obtener el fichero que contiene la memoria para pasarsela a Volatitlity:
Con Volatility podemos ver muchas cosas, por ejemplo, el listado de procesos REAL en ejecución, con el comando pslist. Digo real porque un malware puede, mediante técnicas de rootkit, esconderse cuando pedimos ver ese listado de procesos.
También podemos ver que hay un proceso que tiene una conexion de internet abierta, el explorer.exe:
Por ultimo, con el comando malfind, podemos buscar si existe código o DLLs inyectadas en memoria de usuario:
El siguiente paso del análisis dinámico consistiría en una análisis del código ensamblado del malware, pero esto es otro nivel que explicaré otro día: