Instalando e utilizando o Cuckoo Sandbox

Cristian Souza
5 min readJan 24, 2023

--

Quando falamos em análise de malware, inúmeras ferramentas estão disponíveis gratuitamente para realização tanto da análise estática quanto da análise dinâmica. Durante a minha graduação, por exemplo, desenvolvi o Freki, uma solução para análise estática automatizada e de fácil deploy via Docker.

Nesse cenário, o Cuckoo Sandbox se apresenta como uma excelente ferramenta para facilitar a vida dos analistas de malware e engenheiros reversos, visto que ela provê recursos automatizados para análise estática e dinâmica de artefatos maliciosos, além de centralizar os resultados em uma interface intuitiva.

Neste artigo, irei apresentar o processo de instalação, configuração e um pouco do uso do Cuckoo Sandbox.

Pontos importantes:

  • Para a instalação do Cuckoo, utilizarei como software de virtualização o VMware 16 em um sistema hospedeiro Windows 11.
  • A máquina virtual terá 32 GB de RAM, 8 cores de CPU e 256 GB de armazenamento. Essas configurações podem ser customizadas de acordo com o seu hardware, mas recomendo alocar uma boa quantidade de recursos para um melhor desempenho.
  • O sistema operacional convidado será um Ubuntu 18.04.6.

Visão geral

De forma geral, nossa arquitetura será a seguinte:

Visão geral da arquitetura

Perceba que as máquinas Windows estarão isoladas do sistema hospedeiro. Essas máquinas serão controladas pelo Cuckoo e estarão em uma rede host-only, visando garantir a proteção do sistema operacional principal e da rede interna.

Configuração do VMware

Recomendo a utilização de uma boa quantidade de RAM e de processadores, visto que o Cuckoo criará máquinas virtuais dentro da nossa VM principal.

Configuração do VMware

Habilite a opção “Virtualize Intel VT-x/EPT or AMD-V/RVI”, pois iremos instalar o VirtualBox dentro da máquina do Cuckoo. Inicie a VM e instale o Ubuntu normalmente, utilize como usuário “cuckoo” e uma senha forte.

Uma boa prática é sempre tirar snapshots da máquina virtual a cada mudança significativa do ambiente.

Snapshot após a instalação do Ubuntu

Instalação das dependências

Uma vez logado no sistema, abra um terminal e instale as dependências do Cuckoo:

$ sudo apt update
$ sudo apt install python python-pip python-dev libffi-dev libssl-dev python-virtualenv python-setuptools libjpeg-dev zlib1g-dev swig mongodb python-pip virtualbox tcpdump apparmor-utils
$ sudo apt install vim git unzip

Instalação do Cuckoo

Siga com a instalação do Cuckoo propriamente dita:

$ sudo aa-disable /usr/sbin/tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
$ pip install -U pip pycrypto distorm3

$ git clone https://github.com/volatilityfoundation/volatility
$ cd ~/volatility/
$ sudo python setup.py install

$ cd ~/
$ virtualenv cuckoo
$ source cuckoo/bin/activate
$ pip install -U yara-python==3.6.3 cuckoo

$ cuckoo

Configuração do VirtualBox

Abra o VirtualBox dentro do Ubuntu e configure uma rede host-only, lembre-se de desabilitar o DHCP para essa interface:

Rede host-only no VirtualBox

Crie uma máquina virtual e realize a instalação de uma versão do Windows, utilizarei o Windows 7. Lembre-se de colocar a VM na rede host-only criada anteriormente.

Instalação do Windows 7

Utilize um usuário chamado “cuckoo”. Após a instalação, configure um IP estático para a máquina, vou utilizar o 192.168.56.10. Também é interessante desabilitar o firewall e as atualizações do Windows.

Configuração de um IP estático

O próximo passo é instalar o Python e o agente do Cuckoo nessa máquina. Em seu Ubuntu, baixe o Python 2.7 e copie o agente do Cuckoo para a pasta de downloads. Após isso, inicie um servidor web, baixe os arquivos na máquina Windows 7:

Arquivos que serão baixados no Windows 7
Download do Python e do agente do Cuckoo no Windows 7

Execute o agente do Cuckoo em um prompt de comando com privilégios administrativos:

Execução do agente do Cuckoo no Windows 7

No Ubuntu, abra um terminal e tire um snapshot da máquina em execução:

$ VBoxManage snapshot "windows7" take "windows7_snap" --pause
$ VBoxManage controlvm "windows7" poweroff
$ VBoxManage snapshot "windows7" restorecurrent

Sua máquina virtual ficará com o estado de salva:

Máquina virtual Windows 7

Configuração do Cuckoo

O último passo é configurar o Cuckoo. Inicialmente vamos alterar o arquivo /home/cuckoo/.cuckoo/conf/virtualbox.conf:

  • Na linha mode = headless, altere o modo para gui.
  • Na linha machines = cuckoo1, utilize o nome da sua máquina virtual (windows7).
Configuração do arquivo virtualbox.conf
  • Crie um bloco de configuração para a máquina Windows 7 no final do arquivo:
[windows7]
label = windows7
platform = windows
ip = 192.168.56.10
snapshot = windows7_snap

No arquivo /home/cuckoo/.cuckoo/conf/reporting.conf, habilite o MongoDB:

Configuração do arquivo reporting.conf

Executando o Cuckoo

Em um terminal, inicie o Cuckoo:

source cuckoo/bin/activate
cuckoo --debug

Inicie a interface web em outro terminal:

source cuckoo/bin/activate
cuckoo web runserver

No seu navegador, acesse http://127.0.0.1:8000/ e você terá a interface gráfica do Cuckoo:

Interface web do Cuckoo

Para analisar um artefato, basta enviá-lo ao Cuckoo e realizar algumas configurações básicas. Após isso, a ferramenta automaticamente irá analisar o arquivo enviado:

Tela de configuração da análise
Execução da análise (modo gui) no Windows 7

Uma boa prática é rodar o comando cuckoo community para baixar as assinaturas providas pela comunidade. Dessa forma, o Cuckoo irá ranquear os artefatos analisados e apresentar estatísticas interessantes:

Resultados da análise
Assinaturas do artefato analisado

Conclusão

Nesse artigo abordamos o processo de instalação e configuração do Cuckoo Sandbox, uma das principais ferramentas para análise automatizada de malware.

A partir desse ponto, você já é capaz de executar malwares de maneira controlada em seu próprio laboratório de análise. Divirta-se!

--

--