sábado, 29 de octubre de 2016

Crear un laboratorio para analizar malware

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.

    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).

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"

4. Funcionamiento

La máquina de Windows XP deberá estar apagada, sino saltará un error.
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]
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):
$ cd web/
$ sudo ./manage.py runserver [IP:Puerto] --insecure

5. +Documentación:

Para más documentacion acerca de cuckoo os dejo un enlace de un libro que recomiendo (Explica todo desde lo más básico) y el github del proyecto.

Libro
Github

6. Vídeo DEMO:

 

Previous Post
Next Post

post written by:

0 comentarios: