Cuckoo Sandbox – Installation

Dans ce post je vais expliquer pas à pas comment installer Cuckoo Sandbox.

N’oubliez pas que l’analyse de malware peut être dangereuse, je vous conseille de prendre toutes les précautions qui s’imposent avant de commencer. Il est possible que certaines manipulations expliquées ici soient dangereuses.

L’installation sera effectuée sur une machine Debian “testing” sur une architecture amd64.


On l’installera dans un chroot, en faisant ainsi on l’isolera du reste du système (change root – changer la racine). Cuckoo sera lancé depuis un utilisateur aux droits limités dans ce chroot afin de limiter les risques pour le système hôte si un malware arrive à “s’échapper” de la machine virtuelle.

Si vous souhaitez installer cuckoo directement sur votre système vous pouvez simplement suivre la documentation.

Création du chroot

On installe les logiciels nécessaires et on crée le répertoire de notre chroot.

sudo apt-get install binutils debootstrap
sudo mkdir -p /srv/chroot/cuckoo_chroot

La commande debootstrap permet d’installer un système debian dans le sous-répertoire d’un autre système.
Veillez à choisir la même architecture que votre système.

sudo debootstrap --arch amd64 testing /srv/chroot/cuckoo_chroot http://http.debian.net/debian

Le chroot sera donc situé dans notre cas dans /srv/chroot/cuckoo_chroot.

L’installation se lance, cela peut prendre plusieurs minutes.

Pour plus d’information sur les chroot ou en cas de problème : https://wiki.debian.org/fr/Chroot

Entrons y :

sudo chroot /srv/chroot/cuckoo_chroot

Si tout va bien, quelque chose comme ça s’affiche :

root@debian:/#

Dans la suite de ce post, on va distinguer les commandes à taper sur le système principal de celles à entrer sur le chroot par un code de couleur (couleur des encadrés).

Sur le système principal
Dans le chroot en tant qu'utilisateur root
Dans le chroot en tant qu'utilisateur cuckoo

Il faut ensuite installer le logiciel de virtualisation dans lequel les malwares seront exécutés, nous utiliserons virtualbox mais vous pouvez prendre n’importe quel autre (KVM, VMware, …).

Installation de Virtualbox

Commencez par éditer le fichier /etc/apt/sources.list, ajoutez y la ligne :

deb http://http.debian.net/debian testing contrib non-free

Puis installez :

apt-get install virtualbox

Il est possible de rencontrer des problèmes à l’installation de virtualbox, c’est récurrent. Pour les résoudre je vous conseille de copier le message d’erreur sur un moteur de recherche, de nombreux sujets sur des forums existent. La Documentation debian donne aussi des solutions.

Erreurs courantes :

The character device /dev/vboxdrv does not exist.

Solution :

modprobe vboxdrv
VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory

Solution :

modprobe vboxnetadp

Installation de Cuckoo

Un certain nombre de dépendances sont nécessaires, il faut aussi que tcpdump puisse se lancer avec des droits de super-utilisateur (pour capturer le trafic).

apt-get install python python-sqlalchemy python-dpkt python-jinja2 python-magic python-pymongo python-libvirt python-bottle python-pefile tcpdump libcap2-bin
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

On crée un utilisateur,

adduser cuckoo
usermod -G vboxusers cuckoo

Il faut maintenant télécharger cuckoo : ici
On extrait le contenu du fichier cuckoo-current.tar.gz téléchargé dans notre chroot.

sudo tar xzfv cuckoo-current.tar.gz -C /srv/chroot/cuckoo_chroot/home/cuckoo/

Cuckoo est installé.
Attention aux droits, exécutez la commande suivante dans le dossier de l’utilisateur cuckoo pour qu’il soit propriétaire des fichiers (change the owner).

chown cuckoo * -R

Configuration de Virtualbox

xhost +

Cela vous permettra de lancer des applications graphiques depuis le chroot.

En utilisant le compte que l’on a créé, on va pouvoir lancer virtualbox.

su cuckoo
virtualbox&

A vous maintenant de créer une machine virtuelle, j’ai choisi d’utiliser Windows XP SP3 (si vous avez déjà une machine virtuelle de créée, vous pouvez l’importer dans le chroot) mais libre à vous de prendre un autre système (Vista, 7, 8, …).

Sur la machine virtuelle, désactiver le pare-feu et les mises à jour automatiques. Puis installer python : http://www.python.org/getit/

Sur Virtualbox allez dans Machine -> Configuration -> Dossiers partagés -> Ajouter un dossier partagé. Ajouter le dossier /home/cuckoo/cuckoo/agent et cocher montage automatique.

Virtualbox création dossier partagé

Redémarrez la machine. Depuis le dossier monté, placer le fichier agent.py dans le dossier de démarrage automatique de Windows et le renommer en agent.pyw.

Dossier démarrage machine virtuelle

Passons maintenant à la configuration réseau, éteignez la VM. Dans la fenêtre principale de virtualbox aller dans Fichier -> Paramètres -> Réseau -> Ajouter réseau privé hôte. (il est possible que vous soyez obligés d’effectuer cette manipulation après chaque redémarrage)

Dans la configuration de la machine, sur l’onglet Réseau choisissez le mode d’accès réseau privé hôte.

Virtualbox créer réseau privé

Allumez votre machine virtuelle, elle fait maintenant parti d’un réseau privé qui lui permettra de communiquer avec cuckoo. On va lui attribuer une adresse IP fixe. Dans les options internet, vous pouvez lui donner l’adresse 192.168.56.101.

Configuration réseau machine virtuelle

La configuration de la machine virtuelle est terminée, assurez vous qu’aucun programme parasite ne se lance, prenez ensuite un instantané de la machine après son démarrage (une fois que tout est bien chargé). Vous pouvez fermer virtualbox.

On n’oubliera pas d’autoriser cuckoo et la machine virtuelle à communiquer. Cette commande n’est pas permanente, il faudra l’ajouter à votre script de configuration d’iptables ou la retaper à chaque utilisation de cuckoo.

sudo iptables -A INPUT -i vboxnet0 -j ACCEPT

Configuration de Cuckoo

Aller dans le dossier de cuckoo puis dans conf. On y trouve plusieurs fichiers .conf avec des explications.

Modifier le fichier virtualbox.conf pour y indiquer votre machine virtuelle.

label = nom_de_votre_machine_virtuelle

Dans le fichier reporting.conf vous pouvez choisir quels types de rapports seront générés.

Maintenant, lançons cuckoo.

python cuckoo.py&

Démarrage cuckoo

Voilà ce que vous devriez avoir si tout va bien !

Pour analyser un fichier, il vous suffit de faire :

./utils/submit.py chemin_vers_le_fichier

Ou bien :

./utils/submit.py --url http://www.malware.com

Cuckoo fonctionnement

Les rapports d’analyses sont situés dans storage/analyses.

Cuckoo résultat html

Cuckoo résultat json

Dans les rapports on trouvera par exemple :

  • Les appels à l’API Win32
  • Les fichiers créés, supprimés ou téléchargés
  • La capture du trafic réseau
  • Les clés de registre crées, supprimées ou modifiées
  • Des captures d’écran de la machine
  • Une analyse Virustotal

Si vous souhaitez analyser de nombreux malwares, vous pouvez lire le billet suivant : Analyser un lot de malwares.

Bien d’autres possibilités existent, vous trouverez tout une documentation dans le dossier cuckoo/docs/book.
Vous pouvez par exemple donner à la machine virtuelle un accès à internet et ainsi capturer le trafic, demander à cuckoo de faire un dump mémoire, …

Pour toutes questions ou commentaires, vous pouvez aller sur le forum. ici

3 thoughts on “Cuckoo Sandbox – Installation

  1. Pingback: Analyse de malwares avec Cuckoo | Security-X

  2. Pingback: Cuckoo – Analyser un lot de malwares | Security-X

  3. Pingback: Cuckoo – Traiter le résultat avec Gephi | Security-X

Comments are closed.