Skip to the content.

Página Inicial || Próximo || Anterior

Strings

Durante análise manual de um malware é necessário entender o comportamento do vírus. Existem muitas maneiras de realizar essa análise e neste artigo vou falar sobre a ferramenta Strings que oferece uma forma rápida e fácil de identificar o conteúdo do vírus. Quando o arquivo malicioso é capturado e analisado dentro de um ambiente isolado podemos executar essa ferramenta para “varrer” o arquivo resultando em uma lista de strings encontradas. Por exemplo, se o malware realiza acesso a uma URL ou servidor externo, esse endereço pode ser exportado no resultado da ferramenta.

No entanto, o resultado do scan com a ferramenta Strings retorna informações interessantes apenas quando o malware não é “Empacotado” ou “Ofuscado”. Isto é, quando técnicas de ofuscação e empacotamento (Obfuscation e Packing) não foram empregadas na compilação do malware. Na maioria dos casos, ataques sofisticados farão uso dessas técnicas para dificultar a análise e a detecção pelo antivírus. Neste caso, o scan da ferramenta Strings não será muito útil e provavelmente apenas informações disponíveis no cabeçalho não empacotado do malware serão retornadas. Felizmente existem outras ferramentas que conseguem ler arquivos de malware ofuscado e essas técnicas serão explicadas em outros artigos quando o assunto for análise dinâmica e avançada de malware.

A ferramenta Strings é nativa nas distribuições Ubuntu do Linux e para as máquinas Windows, ela faz parte do pacote SysInternals e o download pode ser feito no endereço oficial da Microsoft aqui

Analisando Malware

No exemplo desse artigo, eu utilizo um arquivo executável de malware do tipo Keylogger. Neste arquivo as técnicas de empacotamento e ofuscação não foram empregadas. O objetivo desse exemplo é demostrar o uso da ferramenta Strings em uma análise manual básica. O ambiente de teste que estou utilizando é uma máquina Windows 7 virtualizada no VirtualBox.

No Powershell o comando .\strings64.exe Lab01-01.exe > scan.txt é executado direcionando a saída para o arquivo scan.txt

comando strings

Ao iniciar a análise do resultado é possível identificar os termos .text, .rdata, .data Esses termos são sessões do cabeçalho do arquivo executável e a descrição de cada sessão pode ser vista abaixo:

resultado I

Continuando a análise, no final do arquivo são apresentadas as funções importadas durante a execução do malware. Ao analisar cada uma das funções é possível conhecer o comportamento do malware. Na figura abaixo são mostradas as funções importadas pelo Keylogger.

resultado II

O objetivo desse artigo foi falar sobre a ferramenta Strings e mais detalhes sobre as funções utilizadas pelos malwares pode ser encontrado aqui