In questo articolo andremo a creare un ambiente di Malware Analysis “automatizzato” con Cuckoo progetto di Sandbox open source.
Nel caso specifico per realizzare questo laboratorio ho utilizzato:
- × 1 VM Ubuntu 18.4
- 2 CPU
- 8 GB RAM
- 200 GB HDD
- Esxi
Come primo step ho abilitato “l’Hardware Virtualization” sui settings della VM
questo perché sulla VM Ubuntu andremo ad installare ed utilizzare VirtualBox, per automatizzare la creazione delle Sandbox.
Una volta che la nostra VM Ubuntu è stata creata procediamo come sempre a dare i seguenti comandi :
- sudo apt-get update
- sudo apt-get upgrade
Verifichiamo la versione di Python che abbiamo sul nostro sistema (attualmente Cuckoo supporta solo Python 2.7) :
- python2 -V
Una volta verificala la versione di Python installata andiamo quindi ad installare tutte le librerie necessarie al funzionamento di Cuckoo :
- sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
- sudo apt-get install python-virtualenv python-setuptools
- sudo apt-get install libjpeg-dev zlib1g-dev swig
Installiamo MongoDB:
- sudo apt-get install mongodb
Installiamo PostgreSQL:
- sudo apt-get install postgresql libpq-dev
Installiamo VirtualBox:
- sudo apt-get install virtualbox
Installiamo TCP DUMP:
- sudo apt-get install tcpdump apparmor-utils
- sudo aa-disable /usr/sbin/tcpdump
Creiamo l’utente Cuckoo:
- sudo adduser cuckoo
Aggiungiamo l’utenza appena creata al gruppo vbxusers :
- sudo usermod -a -G vboxusers cuckoo
Andiamo a dare i seguenti comandi :
- sudo groupadd pcap
- sudo usermod -a -G pcap cuckoo
- sudo chgrp pcap /usr/sbin/tcpdump
- sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Installiamo M2crypto:
- sudo pip install m2crypto
Installiamo Guacd :
- sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd
Ora è il momento di installare Cuckoo, per farlo ci sono vari modi, ma come riportato dalla documentazione ufficiale il metodo consigliato è tramite il virtualenvoriment di python.
In rete ho trovato il seguente script che automatizza questo tipo d’installazione:
Una volta scaricato, quindi , non ci resta che avviarlo con l’utenza Cuckoo precedentemente creata:
- ./script.sh
- source ~/.bashrc
- mkvirtualenv -p python2.7 cuckoo-test
- pip install -U pip setuptools
- pip install -U cuckoo
Scarichiamo la ISO che andremo ad utilizzare come Sandbox VM nel nostro ambiente, in questo esempio utilizzeremo un Win7:
- sudo wget https://cuckoo.sh/win7ultimate.iso
- sudo mkdir /mnt/win7
- sudo chown cuckoo:cuckoo /mnt/win7
- sudo mount -o ro,loop win7ultimate.iso /mnt/win7
Controlliamo la presenza dei seguenti pacchetti :
- sudo apt-get -y install build-essential libssl-dev libffi-dev python-dev genisoimage
- sudo apt-get -y install zlib1g-dev libjpeg-dev
- sudo apt-get -y install python-pip python-virtualenv python-setuptools swig
Installiamo Vmcloack :
- pip install vmcloak
Creiamo la scheda di rete :
- vmcloak-vboxnet0
Creiamo la nostra macchina virtuale (partendo dalla ISO scaricata in precedenza):
- vmcloak init –verbose –win7x64 win7x64base –cpus 2 –ramsize 2048
Creiamo il clone della nostra VM Win7:
- vmcloak clone win7x64base win7x64cuckoo
Installiamo Internet Explorer sulla macchina appena clonata:
- vmcloak install win7x64cuckoo ie11
Installiamo altri tool sulla macchina clonata :
- vmcloak install win7x64cuckoo adobepdf pillow dotnet java flash vcredist vcredist.version=2015u3 wallpaper
Creiamo degli Snapshoot della macchina appena fatta:
- vmcloak snapshot –count 4 win7x64cuckoo 192.168.56.101
Verifichiamo se gli Snapshot sono stati fatti:
- vmcloak list vms
Avviamo Cuckoo:
- cuckoo init
Spostiamoci nella directory che è stata appena creata, nel nostro caso :
- cd /root/.cuckoo
Scarichiamo ed installiamo le nuove signature:
- cuckoo community
Aggiungiamo le VM a Cuckoo :
- while read -r vm ip; do cuckoo machine –add $vm $ip; done < <(vmcloak list vms)
Abilitiamo il foward sulla Vboxnet e la ens160:
- sudo sysctl -w net.ipv4.conf.vboxnet0.forwarding=1
- sudo sysctl -w net.ipv4.conf.ens160.forwarding=1
Creiamo le seguenti regole Iptables:
- sudo iptables -t nat -A POSTROUTING -o ens160 -s 192.168.56.0/24 -j MASQUERADE
- sudo iptables -P FORWARD DROP
- sudo iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT
- sudo iptables -A FORWARD -s 192.168.56.0/24 -j ACCEPT
Modificare il file routing.conf (nel nostro caso si trova sotto /root/.cuckoo/conf), ed aggiungere l’interfaccia di rete che è collegata verso internet
Modifichiamo anche il file reporting.conf, andando ad abilitare mongodb
Avviamo il rooter :
- cuckoo rooter –sudo –group cuckoo
Avviamo Cockoo, da un altro terminale :
- cuckoo
Avviamo, da un altro terminale, il nostro web server che ci permettera di interagire con Cuckoo:
- cuckoo web –host 127.0.0.1 –port 8080
Ora colleghiamoci tramite browser al nostro Cuckoo:

Avviamo quindi unanalisi di test per vedere che tutto funzioni correttamente:
Settiamo l’uscita verso Internet, essendo una URL da analizzare, e selezioniamo quale VM utilizzeremo per navigare quella URL :

Clicchiamo “Analyze” e attendiamo che termini :

Se apriamo la GUI di VirtualBox , che è stato installato precedentemente sulla nostra Ubuntu, vedremo che in maniera del tutto automatica la VM selezionata per l’analisi sarà in “Running”

Se tutto andrà bene, l’analisi che abbiamo avviato terminerà con lo stato di “reported”

Cliccandoci sopra si aprirà il nostro report che potremo navigare ed analizzare

Ovviamente questa è una guida basilare con il solo scopo di far scoprire a chi non lo conoscesse questo progetto Open Source 🙂
ottimo articolo
"Mi piace""Mi piace"