2023/01/24

Instalando e utilizando o Cuckoo Sandbox

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:

Visão geral

De forma geral, nossa arquitetura será a seguinte:

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.

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.

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:

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.

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.

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:



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

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:

Configuração do Cuckoo

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

[windows7]
label = windows7
platform = windows
ip = 192.168.56.10
snapshot = windows7_snap

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

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:

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:



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:



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!