AM-0103 - Análise de Malware em Ambiente Controlado

Do fingerprint inicial à identificação de indícios de persistência, comunicação e ofuscação em uma amostra
Quando nos deparamos com um artefato suspeito, o primeiro passo seguro é realizar a análise estática. Essa etapa permite extrair informações valiosas do malware sem executá-lo, evitando riscos desnecessários e fornecendo pistas iniciais sobre seu funcionamento.
- A análise estática responde perguntas fundamentais:
- O que posso descobrir apenas inspecionando o arquivo?
- Existem indícios de comportamento malicioso já visíveis no binário?
- Como planejar a análise dinâmica ou de código com base nesses primeiros achados?
A análise estática consiste em examinar as propriedades de um arquivo malicioso sem a necessidade de executá-lo. Ela permite obter detalhes como:
- Hashes (MD5, SHA256 etc.)
- Strings embutidas (ASCII e Unicode)
- Tabela de imports/exports das APIs utilizadas
- Seções do executável e estrutura do PE (Portable Executable)
- Detecção de packers ou ofuscação
- Recursos embutidos (imagens, certificados, DLLs auxiliares)
- Informações de assinatura digital
Esses elementos ajudam a construir um perfil inicial do malware, gerar indicadores de comprometimento (IOCs) e direcionar as próximas etapas da análise.
Ao analisar um binário suspeito identificado como brbbot.exe, seguimos as etapas clássicas da análise estática. Abaixo, descrevemos o processo com as ferramentas e seus respectivos objetivos:
- pestr (REMnux): Extração de strings ASCII e Unicode
- PeStudio: Análise do cabeçalho PE e APIs utilizadas
- peframe: Análise rápida de propriedades maliciosas
- Detect It Easy (DIE) / Exeinfo PE: Verificação de packers ou ofuscação
1 - Coleta de informações (fingerprint):
A primeira etapa da análise é coletar o máximo de informações sobre o arquivo suspeito. Para isso, usamos o peframe, uma ferramenta que nos ajuda a obter dados básicos do binário:
peframe brbbot.exe | more


A extração de strings costuma ser o primeiro passo, e nesse caso encontramos:
- brbconfig.tmp - provável arquivo de configuração ou temporário utilizado pelo malware
- \CurrentVersion\Run - sugestão de persistência via registro do Windows
- %s?i=%s&c=%s&p=%s - padrão de parâmetro URL, sugerindo comunicação com C2 via HTTP
- Mozilla/4.0… - um User-Agent específico, potencialmente usado para mascarar a comunicação
Essas strings fornecem pistas valiosas sobre o comportamento da ameaça. O peframe nos revela informações importantes sobre as seções e as dependências do binário.
Exeinfo PE no Windows:
Para complementar, utilizamos o Exeinfo PE no Windows para identificar o packer ou compilador utilizado:

Outra ferramenta útil é o diec (Detect It Easy), usada para obter mais detalhes sobre o compilador:
diec brbbot.exe

2 - Execução controlada da amostra:
Após a coleta de informações preliminares, passamos para a etapa de ativação do malware. Para isso, é necessário preparar o ambiente de análise com os seguintes aplicativos:
- Wireshark no Remnux
- RegShot
- Process Hacker
- Process Monitor
Realizar primeiro snapshot do host Windows:
O primeiro passo é realizar um snapshot do sistema utilizando o RegShot, para podermos comparar as mudanças após a execução do malware:

Configuração do Fakedns e Wireshark:
Iniciamos o fakedns no Remnux e preparamos o Wireshark para capturar o tráfego gerado pelo malware:


Execução do malware
O próximo passo é descompactar o brbbot.exe no diretório AppData\Roaming, criando um atalho na área de trabalho com permissões de administrador:

Com o malware pronto, iniciamos o Process Hacker e o Process Monitor para monitorar a atividade do sistema, enquanto o Wireshark captura o tráfego.
Após 30 segundos, finalizamos a execução do malware e interrompemos as ferramentas de captura:

3 - Análise Pós-Execução
Comparação de Snapshots:

Utilizamos o RegShot para comparar o sistema antes e depois da execução, identificando chaves de registro adicionadas pelo malware:


Com o Process Monitor, filtramos os eventos ligados ao brbbot.exe para rastrear a criação de arquivos:

Exportamos o log do Process Monitor e o abrimos com o ProcDOT para visualizar graficamente as atividades do malware:


4 - Análise de tráfego:
Finalmente, analisamos o tráfego capturado durante a execução. A ferramenta Wireshark permite seguir o fluxo de comunicação TCP:


Repetir o processo inicializando o serviço http, para permitir a análise de requisições do malware, remediando o "resource starvation" do malware:


Clicando em Follow TCP Stream:

Detectamos um código ofuscado sendo transmitido, além de informações do host infectado.
Análise de String:
Utilizando o comando xxd, decodificamos a string transmitida, deixando o código ofuscado para uma análise futura:

xxd -r -p file

Esse é um exemplo de como realizar uma análise detalhada de um malware em um ambiente controlado, desde a coleta de informações iniciais até a inspeção de tráfego e alterações no sistema.
5 - Análise dinâmica:
Utilizando o emulador Speakeasy:
speakeasy -t brbbot.exe -o speakeasy.json 2> speakeasy.txt


Utilizando o capa:
capa brbbot.exe | more


A opção -vv apresentará textos suprimidos, incluindo as chamadas de API.
Utilizando o x64dbg:

Setando o breakpoint na chamada de ReadFile (apertar enter depois):

Rode o programa apertando F9:

Selecionando a aba Handles e executando o refresh (F5) é possível verificar os pontos de manipulação para a criação do arquivo brbconfig.tmp:

Executando Alt + F9:

É possível visualizar a chamada da API CryptDecrypt, utilizada para decifrar dados previamente encriptados. Realizando a execução do programa até a chamada da API, clicando em "test eax,eax", abaixo da chamada, e depois F4:

As strings ficam visíveis nesse momento por estarem no buffer, apresentando possíveis comandos úteis para um Comando e Controle (C2):

Há o detalhe do parâmetro 5b, possivelmente uma chave para processo de codificação ou decodificação.
Testando uma outra abordagem utilizando o API Monitor x64 (o x64dbg deve estar fechado, bem como processos de ativação da amostra devem estar encerrados):

O API Monitor apresenta de forma mais simples e com maior rapidez os dados encriptados, caso existam:

6 - Decodificando o código ofuscado:
Com uma possível chave e o texto capturado pelo WireShark, o CyberChef, presente no host Remnux, pode ser utilizado para a tentativa de decodificação, presumindo que foi utilizada a execução de um XOR com a chave:

Analisando os parâmetros e o texto codificado, possivelmente o malware envia dados do host infectado, e está preparado para executar instruções de acordo com os parâmetros recebidos como resposta da requisição à ads.php, com um intervalo previamente definido (sleep), possivelmente de três segundos.
Realizando teste de interação, com o malware ainda ativo e inserindo um comando de execução como valor do parâmetro cexe, obtemos com sucesso a abertura do programa designado, o Notepad:

O tixe foi inserido para encerrar a execução de aberturas do programa.

Dessa forma, é possível inferir que o artefato funciona como um backdoor, efetuando comunicação direta com um C2 definido no domínio brb.3dtuts.by e preparado para receber instruções de execução, com capacidade para exfiltração de dados.
Conclusão
A análise do malware brbot.exe reforça a importância de uma abordagem sistemática ao lidar com ameaças digitais. O uso de ferramentas especializadas, como o API Monitor e Wireshark, permitiu identificar o comportamento malicioso do executável, suas conexões de rede e os dados enviados. Esse estudo prático não apenas ilustra a eficácia de metodologias de análise, mas também destaca a relevância de um ambiente controlado para explorar malwares em profundidade, contribuindo para a melhoria contínua da segurança digital.



