0. Introducción
Cuckoo Sandbox es un software de código abierto para la automatización de análisis de archivos sospechosos, como actualmente son los Malware y Crimeware que afectan mucho a los sistemas Financieros.Para ello Cuckoo hace uso de componentes personalizados que monitorean el comportamiento de los procesos maliciosos mientras se ejecuta en un entorno aislado.
0.1 Material
En esta práctica vamos a necesitar:·Ubuntu 16.04 (Como sistema base)
·Cuckoo +Requisitos
·Windows XP SP3 (En máquina virtual)
·Python 2.7
1. Requisitos (En Ubuntu)
$ sudo apt-get install python$ sudo apt-get install python-pip
$ sudo apt-get install python-sqlalchemy
$ sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-libvirt python-bottle python-pefile ssdeep
$ sudo pip install dpkt jinja2 pymongo bottle pefile
$ sudo apt-get install build-essential git libpcre3 libpcre3-dev libpcre++-dev
$ sudo pip install Django==1.8.4
$ sudo pip install requests
$ sudo pip install python-dateutil
pydeep:
$ cd /opt
$ git clone https://github.com/kbandla/pydeep.git pydeep
$ cd /opt/pydeep/
$ sudo python setup.py build
$ sudo python setup.py install
yara:
$ sudo apt-get install automake -y
$ cd /opt
$ svn checkout http://yara-project.googlecode.com/svn/trunk/yara
$ cd /opt/yara
$ sudo ln -s /usr/bin/aclocal-1.11 /usr/bin/aclocal-1.12
$ ./configure
$ make
$ sudo make install
$ cd yara-python
$ python setup.py build
$ sudo python setup.py install
tcdump:
$ sudo apt-get install tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
$ sudo apt-get install libcap2-bin
$ sudo chmod +s /usr/sbin/tcpdump
$ sudo apt-get install mongodb
Cuckoo:
$ git clone git://github.com/cuckoobox/cuckoo.git
$ sudo pip install -r cuckoo/distributed/requirements.txt
$ sudo pip install -r cuckoo/requirements.txt
$ sudo cucko/utils/community.py --all --force
Virtual Box (Solo si usas Kernel 3.5) - Para saber el kernel introduce el comando "uname -a" en la terminal.
$ sudo apt-get install linux-headers-3.5.0.17-generic
2. Configuración de Windows XP
2.1 Configuración Virtual box
INICIAR VIRTUALBOX COMO SUDO ("sudo virtualbox") ya que sino alfinal cuckoo no encontrará la máquina virtual.Especificaciones de la máquina virtual:
1GB RAM memory
10 GB of hard disk space
VDI format for the virtual disk
Dynamically allocated storage
Windows XP SP3
·Deberemos ir a Preferencias - Red - Redes Solo-anfitrion y añadir un nuevo adaptador de red. (El nombre por defecto es vboxnet0) La IP es por defecto 192.168.56.1
·Luego iremos a nuestra máquina virtual de xp y le cambiaremos la tarjeta de red por Adaptador solo-anfitrion.
·Instalar python 2.7
·Instalar PIL (Python Imaging Library)
·Instalar Guest Additions
·(OPCIONAL) Intalar aplicaciones estándar como Firefox, Word, Adobe Reader... (oldapps)
·Deberemos configurar una IP estática:
·Luego iremos a nuestra máquina virtual de xp y le cambiaremos la tarjeta de red por Adaptador solo-anfitrion.
2.2 Configuracion de XP
·Deshabilitar el firewall y las actualizaciones·Instalar python 2.7
·Instalar PIL (Python Imaging Library)
·Instalar Guest Additions
·(OPCIONAL) Intalar aplicaciones estándar como Firefox, Word, Adobe Reader... (oldapps)
·Deberemos configurar una IP estática:
IP: 192.168.56.101
Mascara: 255.255.255.0
Puerta de Enlace: 192.168.56.1
DNS: 8.8.8.8
2.3 Instalar agente cuckoo Windows XP
1º Copiamos el agente.py que vendrá en el repositorio
cuckoo: “cucko/agent/agent.py” al
Windows XP en la carpeta C:\Python27.
2º Ponemos para que se ejecute al inicio (C:\Document and settings\username\Start Menu\Programs\Startup)
3º Le cambiamos la terminación por *.pyw (Así no invocará la consola).
4º Después de ejecutar el ajente se quedará un servicio abierto en el puerto :8000 (Podemos comprobar que es así con el comando netstat -aon).
2º Ponemos para que se ejecute al inicio (C:\Document and settings\username\Start Menu\Programs\Startup)
3º Le cambiamos la terminación por *.pyw (Así no invocará la consola).
4º Después de ejecutar el ajente se quedará un servicio abierto en el puerto :8000 (Podemos comprobar que es así con el comando netstat -aon).
3. Instalación de cuckoo
Antes deberemos configurar las reglas de forwarding y filtering usando IPTABLES (Más informacion).
$ iptables -A FORWARD -o [Interfaz de red con salida a internet] -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
$ iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$ iptables -A POSTROUTING -t nat -j MASQUERADE
$ sysctl -w net.ipv4.ip_forward=1
3.1 Creación de Usuario
$ sudo adduser cuckoo$ sudo usermod -G vboxusers cuckoo
$ sudo usermod -G libvirtd cuckoo
3.2 Configuración de Cuckoo
Vamos a configurar cuckoo, para ello nos vamos a la carpeta conf/
Empezamos:
1ºArchivo auxiliary.conf
[sniffer]
enabled = yes
tcpdump = [ruta tcpdump (Podemos comprobarlo con el comando "locate tcpdump"]
2º Archivo cuckoo.conf
[cuckoo]
version_check = off
[resultserver]
ip = [IP del adaptador VBOXNET0]
3º Archivo kvm.conf
[kvm]
machines = [Nombre de la maquina virtual]
[cuckoo1] ---Cambiar por ---> [Nombre de la maquina]
label = [Nombre de la maquina]
ip = [IP de VBOXNET0] (La IP debe estar en la red de VBOXNET0)
4ºArchivo processing.conf
[memory]
enabled = yes
5º Archivo virtualbox.conf
Comprobamos que el path está bien (Hacemos "locate vboxmanage" para saber la ruta)
machines = [Nombre de la maquina virtual]
[cuckoo1] ---Cambiar por ---> [Nombre de la maquina]
label = [Nombre de la maquina]
ip = [IP de WindowsXP]
6º Archivo reporting.conf
[mongodb]
enabled = yes
7º Archivo /web/web/local_settings.conf
DEBUG = False
Y ya tendremos todos los archivos configurados. Ahora tendremos que hacer una snapshot de la máquina, para ello usaremos los siguientes comandos:
$ sudo vboxmanage snapshot "windows-cuckoo" take "windows-cuckooSnap01" --pause
$ sudo vboxmanage controlvm "windows-cuckoo " poweroff
$ sudo vboxheadless --startvm "windows-cuckoo"
Empezamos:
1ºArchivo auxiliary.conf
[sniffer]
enabled = yes
tcpdump = [ruta tcpdump (Podemos comprobarlo con el comando "locate tcpdump"]
2º Archivo cuckoo.conf
[cuckoo]
version_check = off
[resultserver]
ip = [IP del adaptador VBOXNET0]
3º Archivo kvm.conf
[kvm]
machines = [Nombre de la maquina virtual]
[cuckoo1] ---Cambiar por ---> [Nombre de la maquina]
label = [Nombre de la maquina]
ip = [IP de VBOXNET0] (La IP debe estar en la red de VBOXNET0)
4ºArchivo processing.conf
[memory]
enabled = yes
5º Archivo virtualbox.conf
Comprobamos que el path está bien (Hacemos "locate vboxmanage" para saber la ruta)
machines = [Nombre de la maquina virtual]
[cuckoo1] ---Cambiar por ---> [Nombre de la maquina]
label = [Nombre de la maquina]
ip = [IP de WindowsXP]
6º Archivo reporting.conf
[mongodb]
enabled = yes
7º Archivo /web/web/local_settings.conf
DEBUG = False
Y ya tendremos todos los archivos configurados. Ahora tendremos que hacer una snapshot de la máquina, para ello usaremos los siguientes comandos:
$ sudo vboxmanage snapshot "windows-cuckoo" take "windows-cuckooSnap01" --pause
$ sudo vboxmanage controlvm "windows-cuckoo " poweroff
$ sudo vboxheadless --startvm "windows-cuckoo"
4. Funcionamiento
La máquina de Windows XP deberá estar apagada, sino saltará un error.
Iniciamos cuckoo en Ubuntu.
Iniciamos cuckoo en Ubuntu.
$ sudo ./cuckoo.py
Cuckoo estará a la espera de que hagamos submit de una
muestra:
Para subir una muestra, primero la descargamos, una vez
descargada la subimos con el comando:
$ cd utils/
$ sudo ./submit.py [Ruta archivo malicioso]
$ sudo ./submit.py [Ruta archivo malicioso]
Cuckoo empezará el análisis en la máquina virtual
Una vez acabado podremos ver el resultado en la parte web de Cuckoo, arrancamos la parte web (Más información):
Una vez acabado podremos ver el resultado en la parte web de Cuckoo, arrancamos la parte web (Más información):