REM-0101 - brbbot.exe

Quando um malware como o age nas sombras, é a análise precisa que traz à luz seus movimentos ocultos
Após concluir o curso FOR610: Reverse-Engineering Malware: Malware Analysis Tools and Techniques da SANS Institute, decidi aprofundar meus conhecimentos com estudos práticos, aplicando as técnicas de análise reversa em amostras reais de malware. Neste post, apresento um estudo inicial sobre o brbbot.exe, um trojan detectado a cerca de três anos. Detalhes podem ser encontrados no VirusTotal.
O foco está na análise comportamental do malware, que segue os princípios aprendidos no curso FOR610 e utiliza algumas ferramentas para realizar a engenharia reversa. O objetivo é descrever as fases de análise estática e dinâmica, apontando as técnicas e ferramentas usadas em cada etapa.
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
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 - Ativação do malware:
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 break pont 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 obfuscado:
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 encodado, 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 netpad:
O tixe foi inserido para encerrar a execução de aberturas do programa.
Desta forma, é possível inferir com 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 exfiltrados. 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.