A los amantes del malware ¿No hará falta que os explique que es un sandbox no? Ni tampoco ¿Que es un sandbox de malware?
Los que no conozcáis estos conceptos seguro que si os nombre Virus Total de Hispasec Sistemas ya sabréis a que me refiero.
El artículo de hoy trata sobre un sandbox open source de análisis de malware. Se trata de Cuckoo.
Cuando vi este proyecto en la web de HoneyNet, me entraron muchas ganas de probarlo, así que me ha faltado tiempo
La instalación de cuckoo la he realizado en un Ubuntu, ahora mismo es el sistema que está completamente soportado por Cuckoo. Probé la instalación en OS X Lion, pero aún da algunos problemas .
Los pasos para instalar Cuckoo són:
1)Preparar Ubuntu para los análisis con Cuckoo
Para usar Cuckoo harán falta una serie de paquetes para usarlo.
En una terminal tenemos que instalar:
sudo apt-get install python python-magic python-dpkt python-mako
Como elemento opcional instalamos ssdeep, lo bajamos por SVN, compilamos e instalamos
svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep-read-only
No entraré en detalles sobre este punto en concreto.
También nos hará falta tcpdump:
sudo apt-get install tcpdump
Tcpdump requiere permisos de root, para no tener que ejecutar Cuckoo como root, vía terminal hacemos
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Ya tenemos lista la parte de tcpdump lista.
Luego solo falta bajar Cuckoo para poder empezar la configuración.
Lo descargamos de aquí y descomprimimos.
Los requerimientos de la parte de Ubuntu están listos.
2)-Preparación de la máquina virtual con Virtualbox
Instalar una máquina Windows XP con Python.
La máquina Windows ha de ser una instalación normal, en ella podemos incluir por ejemplo una versión de Java vulnerable, por si queremos hacer alguna prueba con un Exploit Kit. También un visor PDF vulnerable para lo mismo que el Exploit Kit. Además configuraremos la máquina virtual con usuario y password.
También hará falta instalar Python, descargarlo desde aquí.
Si queremos que en el análisis Cuckoo realice capturas de pantalla hará falta instalar también otro módulo de Python, a descargar de aquí.
Además hará falta instalar las Guest Additions de VirtualBox y el extensión pack de Virtualbox, lo descargamos de aquí
Una vez que tenemos todo esto, hay que hacer algunas cositas mas con VBoxManage, pero lo haremos “vía cli”
Capturando tráfico de red con Cuckoo y Virtualbox
Gracias a la funcionalidad que tiene VirtualBox de sniffer, capturaremos el tráfico de la máquina virtual.
Apagamos la máquina virtual si la tenemos encendida y vía terminal hacemos:
$ VBoxManage modifyvm "Name of VM" --nictrace1 on --nictracefile1 /path/to/cuckoo/shares/<VM ID>/dump.pcap
El nombre de la máquina virtual es el nombre que le hayamos asignado cuando la hemos creado, en el caso del VM ID lo dejamos como cuckoo1, podemos cambiarlo luego en el archivo de configuración. el path es donde vayamos a colocar Cuckoo.
Carpetas compartidas
Para que Cuckoo pueda trabajar con la máquina virtual de VirtualBox, se habilitarán las carpetas compartidas. Con la máquina virtual apagada hacemos vía terminal.
$ VBoxManage sharedfolder add "<Name of VM>" --name "setup" --hostpath "/path/to/cuckoo/shares/setup" --readonly
Igual que antes en Name of VM el nombre que le hayamos asignado. En cuanto al nombre de setup, lo dejamos por defecto. El path igual que antes y la parte de shares/setup lo dejamos por defecto también.
Habilitamos la segunda carpeta compartida
$ VBoxManage sharedfolder add "<Name of VM>" --name "<VM ID>" --hostpath "/path/to/cuckoo/shares/<VM ID>"
Mismas aclaraciones que en el punto anterior además de poner el VM ID de Cuckoo1, que se puede cambiar en el fichero de configuración, pero lo dejaremos por defecto.
Después de hacer estos cambios encendemos la máquina virtual.
Creando un Snapshot
Volvemos a la terminal y guardamos un snapshot de la máquina virtual. Cuckoo lo usará para restablecer la máquina después de cada análisis.
En la terminal ponemos:
$ VBoxManage snapshot "<Name of VM>" take "<Name of snapshot>" --pause
Cambiamos el nombre de la máquina virtual al nuestro y en el nombre del snapshot, le ponemos el que queramos.
Apagando y restaurando estado de la máquina virtual
Una vez que hemos creado el snapshot apagamos la máquina virtual así:
$ VBoxManage controlvm "<Name of VM>" poweroff
Ahora restauramos la máquina virtual con el snapshot:
$ VBoxManage snapshot "<Name of VM"> restorecurrent
Ya tenemos la parte de la máquina virtual configurada para analizar las muestras con Cuckoo
Editando el archivo de configuración de Cuckoo
Ahora editaremos el archivo de configuración de Cuckoo, para dejarlo todo listo.
marc@darkunix: ~/cuckoo/conf $ vim cuckoo.conf
Editaremos las partes que nos interesan:
# Set to “gui” if you want Cuckoo to spawn virtual machines’ GUIs or set to# “headless” if you don’t.mode = headless
Esta parte lo que hace es que, si lo dejamos en modo gui, cuando analicemos una muestra de malware veremos como se levanta la máquina virtual, y que ocurre, si lo cambiamos a headless, todo será en background, yo lo prefiero así.
Otro apartado a editar:
[cuckoo1]name = cuckoo_xpusername = userpassword = user
El nombre es el que le hayamos asignado a la máquina virtual, también indicamos el user y el password.
Y hasta aquí la parte de dejar Cuckoo funcionando, en la segunda parte veremos como analizar las muestras de malware
[...] señor Marc Rivero arranca la semana hablando de: Análisis automático de malware con Cuckoo, una cadena que promete [...]
ResponderEliminar[...] a todos, desde hace varios meses venimos hablando en Flu Project del sistema Cuckoo, una utilidad fantástica para el análisis de malware que Marc nos ha explicado en detalle. Hoy [...]
ResponderEliminar