Midnight Hackings apoia o fim da escala 6x1.

Todos nós trabalhadores devemos ter direito à vida além do trabalho! Trabalhadores unidos mudam o mundo.

Laboratório Seguro para Análise de Malware - Análise de Malware 0x01

Escrito por: Mateus Gualberto (Midnight Reverser) Licença: livre, como todo conhecimento deve ser.

Introdução

Nesse artigo será apresentada uma abordagem para criação de um laboratório seguro local para análise de artefatos suspeitos ou maliciosos. É recomendado que o leitor siga o passo-a-passo na seção Passo-a-passo à risca, para evitar qualquer problema de configuração

Para seguir a parte prática desse artigo, é recomendado um computador de 64-bits Intel/AMD (arquitetura amd64/x86-64, não funcionará bem nos hardwares ARM, como MacBooks M1), com pelo menos 8GB de RAM, e um software Hypervisor - recomendamos o Oracle VirtualBox. A virtualização deve estar disponível e obrigatoriamente ativa no computador que hospedará o laboratório.

O laboratório construído nesse artigo é o alicerce para futuros artigos que tratarão da análise de malwares reais, em especial para análise dinâmica de malwares Windows.

Laboratório para análise de malwares

Primeiramente, o leitor deve estar se perguntando, mas o que seria um laboratório para análise de malwares e por que eu devo ter um?

Um laboratório para análise de malwares é um ambiente isolado, reiniciável e sem ligação com dados sensíveis ou importantes do analista/organização (OPSEC), em que arquivos e comandos podem ser analisados estática e dinamicamente de forma segura - sem afetar sua identidade nem comprometer os dados ou ativos da sua organização.

Esse ambiente deve ser construído por qualquer profissional de segurança da informação ou pesquisador que tenha que lidar no cotidiano com arquivos suspeitos. Utilizá-lo trará mais segurança e confiabilidade ao trabalho desempenhado.

Não necessariamente o próprio laboratório é um ambiente seguro! A interação com ele sim deve ser segura, mas ele por si só tem fraquezas - como softwares vulneráveis rodando; não há nenhum software antivírus, firewalls e configurações de segurança - como o User Account Control (UAC) nele. Qualquer arquivo “esquecido” ou encontrado após um estado não confiável - como após executar algum código - deve ser tratado com extrema cautela. Em resumo, trate o ambiente como sempre infectado.

Há duas abordagens principais para construção de laboratórios seguros:

Abordagem 0x00 - Laboratório físico

Nesse cenário, é necessário pelo menos uma máquina física que irá executar os softwares maliciosos. Ela não deve estar conectada à rede local padrão de uso cotidiano, podendo estar conectada apenas em uma rede isolada ou sem conexão alguma. É uma abordagem atípica e menos utilizada.

✅ Vantagens desse modelo:

❌ Desvantagens:

Abordagem 0x01 - Laboratório virtual

Nesse cenário, um laboratório mínimo pode ser criado através da instalação de uma máquina virtual Windows através de um Hypervisor (residente em um computador “host”), que contém todas as ferramentas, mas tem sua conexão de rede isolada ou desconectada totalmente. Essa configuração é a padrão utilizada por analistas de malware.

✅ Vantagens de se construir um laboratório virtual:

❌ Desvantagens:

A abordagem virtual é a que iremos seguir nesse artigo.

Arquitetura do laboratório virtual

Com o objetivo de complementar as análises realizadas através da emulação de protocolos (para casos de análise de troca de informações com o C2, por exemplo), torna-se necessário adicionar uma máquina virtual a mais no laboratório, além da máquina Windows. Adicionaremos uma máquina GNU/Linux, também isolada, mas inserida nesse ambiente e com conectividade para a máquina Windows.

Por que não fazer a análise de pacotes de rede usando o próprio host vítima? Para uma boa parte dos casos, não há problemas em realizar a emulação no próprio host - e existem ferramentas para isso, como o Fiddler.

Entretanto, caso o malware aplique técnicas que alterem como os pacotes são enviados através das APIs padrão (ou nem utilize-as), ferramentas de captura de pacotes podem não ser suficientes para identificar e decodificar esses pacotes. Além disso, ferramentas para emulação de serviços e redirecionamento como o fakenet, fakedns, inetsim e muitas outras já têm versões para Linux facilmente instaláveis.

c93f228afa375892231e371d137ba91e.png

Nesse diagrama, temos a máquina Host, que executará um Hypervisor. Nesse hypervisor, teremos:

Passo-a-passo

Nessa seção será mostrado um passo-a-passo para a construção e configuração do laboratório no VirtualBox. É necessário que o leitor tenha conhecimento prévio do processo de virtualização, do hypervisor utilizado - caso queira utilizar outro que não seja o VirtualBox - além do processo de instalação comum de um Sistema Operacional.

Download REMnux

O REMnux pode ser obtido por esse link. Faça o download da OVA do VirtualBox e tenha certeza que a extensão do arquivo é .ova antes de prosseguir para o próximo passo.

f6a8ed532389bb04d5d6d102b50db075.png

Após obter a OVA, acesse a opção File > Import Appliance no VirtualBox e selecione a OVA. Deixe as opções padrão em Settings durante a importação, ou, caso deseje, altere os valores de RAM e CPU. Conclua a importação e siga os próximos passos.

76986e183f0cfc9c38b5102c0797c1eb.png

4ffdc497f0adeeb53630e71ebfedd0b9.png

Download Windows

Faça o download da ISO do Windows 10 através desse link. A página irá redirecionar para o download de uma ISO caso seu Sistema Operacional seja diferente de Windows, e para o download de um software criador de ISOs Windows, caso contrário.

88d8e6cfe5cd96d7bda005ff33956837.png

Caso deseje, é possível utilizar Windows 11 - vantajoso devido a deprecação do Windows 10 ainda esse ano. Porém, como veremos à frente, a desativação do Windows Defender é mais complexa no Windows 11, por isso que foi decidido a instalação do Windows 10 nesse laboratório.

Crie a máquina Windows como o de costume: configure a RAM, processadores e disco, e pule a instalação desassistida. É recomendado pelo menos 4GB de RAM, 2 processadores e 70GB de disco.

147efefb7887a2ec3c3a5f916e6b0c41.png

c690db07bc931576717e34936ddf5131.png

94a639469b153423f2600f50de8db3e0.png

Siga a instalação do Windows normalmente, porém não faça login com uma conta Microsoft; crie uma conta local.

Instalação das ferramentas e configuração do ambiente

Softwares utilizados

A maior parte das nossas ferramentas será instalada automaticamente através do projeto retoolkit. Faça o download da release mais recente e execute o EXE.

É provável que o download seja marcado como não seguro devido à natureza das ferramentas contidas no pacote. Prossiga com a instalação normalmente.

A instalação padrão já é satisfatória para o laboratório. Caso queira mudar a localização padrão da instalação, recomendamos que seja colocado em C:\retoolkit, para facilitar a localização das ferramentas.

4e3390f5dd3148f1765faf82ec56cfc3.png

Além do retoolkit, faça o download dos seguintes softwares:

Extraia apenas o Regshot-x64-Unicode.exe, os demais não são necessários.

04d14bfae4905429729ad104892f75af.png

Baixe e extraia os arquivos Autoruns64.exe e Procmon64.exe.

fb20ba54138c8d342692efc82de87737.png

Baixe e execute o instalador.

Baixe e execute o instalador. O Visual Studio Code ajudará na construção de scripts simples durante a extração de configuração de certos malwares, por exemplo.

Também é importante instalar pacotes de uma linguagem de programação, como o Python. Entretanto, sinta-se livre para instalar a(s) linguagem(ns) de programação que preferir.

Configuração do explorer

Na configuração do explorer, na aba View, é interessante deixar todas as três checkboxes abaixo ativas, para mostrar as extensões dos arquivos e arquivos ocultos. Isso ajudará a identificar mais facilmente arquivos dropados.

d59ab5d7bc517794b59b6be43a025e64.png

Desativação Windows Defender no Windows 10/11

A desativação do Windows Defender é essencial para a análise dos malwares. Não podemos deixar que um antivírus atrapalhe as análises, remova nossas ferramentas e scripts e faça ações automáticas, como bloqueio e envio de arquivos suspeitos para a Microsoft.

Windows 10 - Desativação via gpedit.msc

Essa técnica é a mais comum para Windows 10, mas nem sempre funciona - provavelmente devido a certas configurações gerados durante a instalação/builds específicas do SO.

Para usar essa técnica:

02580f2a6cbfe5c02b78019087e68870.png

39659239acbc373797e740f8da9b7466.png

bdc569ba9c5708cd92b04896d6292701.png

511ce501c58b0f1d928104ac0e42504c.png

Caso a desativação não funcione, é recomendável testar o método de desativação no Windows 11. Ele deve funcionar corretamente.

Windows 11 - Desativação via safe boot

Essa técnica foi compartilhada pelo OALabs no seu vídeo de criação de um ambiente de análise de malware em macs M1 (quem sabe, em breve, tenhamos um artigo sobre?). Clique aqui para acessar o vídeo na minutagem em que começa a remoção do Windows Defender.

Em resumo: essa técnica consiste em mudar as permissões de C:\ProgramData\Microsoft\Windows Defender para que ninguém, nem mesmo Administrators ou SYSTEM tenha acesso ao diretório, evitando o funcionamento correto do Windows Defender.

Segue o passo-a-passo:

Execute msconfig.exe e vá na aba de Boot. Selecione Safe boot e clique em OK. Após isso, reinicie o computador.

ee28c6631df06f77f770874dbf1e8fdf.png

Quando a máquina reiniciar, ela não terá carregado vários drivers e o leitor terá um privilégio alto nos diretórios sensíveis do Windows.

24e5e7ce736193a062299132b3c1e12b.png

No explorer, vá até C:\ProgramData\Microsoft\, selecione o diretório Windows Defender e clique em propriedades.

036aabb666e3c03e173cedfafd7e150c.png

Na aba Security, clique em Advanced:

bfc749aafa4445ad2b117df24672604b.png

Na janela que abrir, clique para mudar o Owner de SYSTEM para Administrators - irá abrir uma outra janela pedindo o nome do usuário/grupo que será o novo dono. Dessa forma, seu usuário terá acesso de mudar as demais configurações desse diretório.

dbbca645ac430bd964b1e11aebb55ead.png

Após isso, clique em Replace all child object permission entries with inheritable permission entries from this object e remova TODAS as permissions entries, inclusive dos Administrators. Isso resultará em erro de leitura/escrita pelo serviço do Windows Defender, impedindo seu funcionamento.

02517225a6bc731d0bad9c1f8e499365.png

Por fim, execute o msconfig.exe novamente, removendo o Safe Boot e reiniciando a máquina.

9b854b4216e7f9299cf82939902f01d8.png

Após reiniciar a máquina, verifique se o Windows Defender está ativo ainda, e caso esteja, siga para a próxima seção.

Windows 10/11 - Caso nenhuma outra técnica funcione…

Para essa técnica que desenvolvi, torna-se necessário executar o seguinte passo:

9177be0fc2d905b5c9caba8f9a1b2ac2.png

Antes de analisar um malware, execute a seguinte linha em um PowerShell como administrador:

while($true){Set-MpPreference -DisableRealtimeMonitoring $true; sleep 60}

Essa opção desativará o Windows Defender temporariamente, a cada 60 segundos, enquanto o processo do PowerShell que executar o comando continuar ativo. Ou seja, caso o processo seja encerrado por qualquer motivo, ou o computador reinicie, o Windows Defender será reativado automaticamente. Esse é o principal ponto negativo dessa técnica.

Também é possível adicionar todo o disco C:\ na lista de diretórios a não serem varridos pelo Windows Defender - que é uma técnica efetiva para arquivos, mas certas funcionalidades antimalware, como o AMSI, continuarão ativas e detectando e bloqueando comandos maliciosos.

Uma última opção é procurar por scripts, como esse, que se propõem a realizar a remoção forçada do Windows Defender. Para isso, é necessário pesquisar e estudar os efeitos colaterais dos scripts, bem como buscar uma versão atualizada - muitos deles não funcionam após algumas releases do Windows.

Desativação do Firewall

O firewall padrão do Windows pode ser desativado facilmente através da pesquisa pela palavra firewall no menu pesquisar e clicar em Firewall & network protection.

40b637fe2ac65252a622a82342fc9336.png

Desative o firewall para todos os tipos de rede que estiverem presentes:

128d6be008e414c1903ad0deb9609147.png

Desativação do User Account Control

O UAC é uma medida que requisita autorização de um usuário Administrador para ações de alto privilégio no sistema - famoso por aquele prompt de sim/não quando um software quer executar algo como administrador.

Para isso, pesquise por “UAC” no menu pesquisar do Windows, selecione “User Account Control Settings” e coloque “Never notify”. Confirme com OK.

c836cd083878eb00e9a7b34eaad63bfc.png

Desativação do Windows Update

Para evitar problemas como a restauração do Windows Defender, é interessante desativar o Windows Update. Isso também irá diminuir tentativas de conexão aos serviços Microsoft legítimos na captura de pacotes. Caso o leitor tenha obtido suas ferramentas via retoolkit via instalação padrão, o Windows Update já está desativado.

Configuração da rede

Muita atenção à essa parte! A configuração correta da rede é fundamental para a segurança do host e da rede doméstica em que ele está inserido. Em resumo, iremos configurar uma rede interna, sem acesso algum à internet ou ao host. Isso significa que iremos mudar o adaptador de rede do hypervisor para uma rede interna (VirtualBox) ou hostonly configurada sem adaptador para o host (VMware).

Siga à risca os passos para as VMs explicitados nas seções que seguem para evitar problemas de segurança.

Windows Malware

No VirtualBox, selecione a VM Windows, clique em Settings e navegue até a aba “Network”:

e03737c8dc50caa1fce8bdb17b6f65f3.png

Troque o tipo do adaptador 1 de “NAT” para “Internal Network”, e coloque um nome como malware_internal na sua rede. Clique em OK.

No VirtualBox, quando se nomeia uma rede, ela é criada automaticamente e fica disponível para configuração nas demais VMs.

3a1a26efd65cd6e51ea0889b2228596e.png

Execute o painel de controle do Windows e navegue até Network and Internet > Network and Sharing Center > Change adapter settings. Clique com o botão direito no adaptador de Ethernet (deve ser o único que está conectado no ambiente) e clique em propriedades:

37bd1418940bf66ba5d96c0db60219dc.png

Pesquise por Internet Protocol Version 4 (TCP/IPv4) e clique em propriedades:

810e5f2e0eff72dd090531efa5398e5e.png

Coloque as exatas informações que estão na imagem abaixo na janela que abrir. Basicamente estamos definindo o IP do Windows como 172.16.0.2, e todo o tráfego deverá ir para o gateway 172.16.0.1 (REMnux, que iremos configurar abaixo). Clique nos dois OKs após configurar.

8d9cad9deb3173b94b088e02404ef533.png

REMnux

Na REMnux, altere as configurações do adaptador como feito na Windows. Nesse caso, a rede poderá ser selecionada sem a necessidade da digitação do nome dela novamente no campo Name.

3f878c77c912efbdc383cccce38fc712.png

6d37ba63db61e5bf4e61551a8d76bf7a.png

Caso o layout do seu teclado seja o padrão brasileiro (ABNT/ABNT2), execute o comando setxkbmap br em um terminal para configurar temporariamente o REMnux para utilizar esse padrão.

Edite o arquivo /etc/netplan/01-netcfg.yaml com um editor de texto (pode utilizar o nano ou o vim, por exemplo). O arquivo deve se parecer com esse abaixo. Lembre-se de editar com privilégios root!

Por exemplo, sudo nano /etc/netplan/01-netcfg.yaml

a7293fc3a1bfaaa39818b3dc7063a663.png

O conteúdo deve ser exatamente o seguinte - com exceção do nome do adaptador, caso ele seja diferente do seu laboratório. Lembre-se de indentar corretamente com 2 espaços ou o YAML poderá não ser lido com sucesso.

Estamos definindo uma configuração de rede estática para nossa VM REMnux, em que ela terá o IP 172.16.0.1.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      addresses: [172.16.0.1/24]
      gateway4: 172.16.0.1
      nameservers:
        addresses: [172.16.0.1]

Exemplo da configuração correta do arquivo está na imagem abaixo.

71651f326bea807548985022e3d81db4.png

Por fim, execute o comando sudo netplan apply para aplicar as configurações.

Testando a configuração

Após a configuração realizada nas duas VMs, inicie as duas e abra um terminal/cmd nas duas e tente realizar um ping para o IP da outra (REMnux deve realizar o ping para 172.16.0.2 e o Windows para 172.16.0.1). Ele deve ser efetuado com sucesso, ou então há algum problema com sua configuração.

a7a1025f652f3c9410bf1c05744be511.png

Snapshots

Após a instalação correta das ferramentas, definição das configurações e rede, seria muito chato rodar um malware nesse ambiente e ter que refazer todo o ambiente novamente, não é mesmo?

Para evitar isso, utilizaremos uma funcionalidade essencial para laboratórios virtuais: Snapshots. Eles servem para salvar a máquina virtual, suas configurações, sua RAM e seu contexto de execução em um dado momento. A partir daí, é possível retornar quando quiser a esse contexto, de maneira rápida e facilitada.

Para a análise de malware, snapshots são interessantes para salvar o estado inicial, limpo, apenas com as ferramentas e configurações feitas, para que o laboratório sempre possa ser restaurado para um estado não infectado facilmente. Além disso, snapshots em pontos diferentes da análise de um malware podem ser úteis para entender melhor o funcionamento de certas partes do código malicioso, sempre podendo retornar a um estado anterior ou próximo.

Nessa seção, vamos fazer o snapshot do estado limpo que criamos para as VMs. É possível fazer o snapshot enquanto a máquina está rodando - e isso conta com vantagens na análise, conforme explicado em Medidas adicionais - mas demorará mais tempo para ser criado e mais armazenamento.

Por esses motivos, faremos o snapshot desse primeiro estado com as VMs desligadas. Fica a cargo do leitor decidir se seguirá dessa forma ou com a máquina ativa - não há problemas de segurança quanto a isso.

Para realizar o snapshot, clique em qualquer VM do laboratório e após isso clique no menu “hambúrguer” que aparecerá ao lado da VM selecionada. Selecione “Snapshots” para mostrar as informações e controles de snapshots para aquela VM na tela.

0041c0292424e58119df73601ea5513f.png

Após isso, clique em “Take” e nomeie o snapshot com algum nome que faça sentido - como “main” para o estado limpo, padrão da VM. Clique em OK.

11af0a1b1a9ef4ad29dbc4c1773eb26e.png

Após alguns segundos, o snapshot será criado:

febc47c9e03c55f585e687a1aa1e6d2f.png

Caso necessite restaurar o snapshot, clique no snapshot criado e em “Restore”. Faça isso sempre que terminar de analisar um malware ou desejar analisar vários estados de um malware que estão em snapshots diferentes.

6aa80aba8e2452e958dd2d56e9ba95a8.png

Faça o mesmo processo para a outra VM (REMnux ou Windows). Após isso, o laboratório está 100% pronto para receber malwares!

Precauções de uso do laboratório

As precauções abaixo devem ser seguidas para evitar infecção descontrolada, escape de malware para o host ou movimentação lateral na rede doméstica.

Medidas adicionais

Para um laboratório eficiente, é interessante que o ambiente seja moldado para parecer o mínimo possível com um laboratório. Para esse objetivo:

Seu ambiente pode ser testado para demais técnicas utilizadas por malwares em variados contextos (Debugging, Sandbox etc) através do seguinte projeto:

Conclusão

Nesse ponto, caso o leitor tenha seguido o passo-a-passo completo, ele terá consigo um laboratório simples e reiniciável e apto a realizar análises de artefatos suspeitos e malwares, com possibilidade de simulação de serviços e captura de pacotes de rede de forma confiável.