Engenharia Reversa do Malware Trojan Downloader.Win32.Agent.dlfu

MD5: 729CECA18BE2E24744408733D8B28A5E

Mais uma vez realizei a análise desse malware buscando encontrar informações que levassem à identificação do autor do mesmo. A investigação desse foi bastante trabalhosa, então vou dividi-la em dois artigos.

No primeiro artigo analisarei o malware do tipo Loader (ou Downloader conforme o título atribuído pela Kaspersky), que é o responsável por entrar no computador da vítima e fazer download de outros malwares. Essa é literalmente a função de um cavalo de tróia, assim como aconteceu na lenda grega.

Vamos começar então!

Recebi um email de spam phishing que tinha os campos “Subject: Atualização do seu Software Emissor NF-e.” e “from:fazenda@gov.br”. No corpo do email a pessoa era induzida a clicar num link denominado “Atualização Emissor de NF-e” cujo endereço apontava para o download do arquivo:

http://www.atozhandicraftz.com/ftp/EmissorNF-e/EmissorNF-e5.4.1.exe

* Obs.: nesse artigo vou manter alguns nomes originais para facilitar a leitura, os links já se encontram desativados.

Cliquei no link para fazer o download e o arquivo que veio foi o “AtualizacaoEmissorNF-e5.4.1.exe”. Salvei-o em uma pasta para realizar posteriormente a engenharia reversa do executável.

Antes de tentar ver o que havia dentro do EXE, o rodei no RDG Packer Detector para verificar se havia a presença de algum compactador de executável (packer PE).

O RDG Packer Detector não acusou nada.


Já o Exeinfo PE acusou que o arquivo estava compactado com o “Thinstall 2.4x – 2.5x”.


Sabendo que o unpacker genérico do PEiD conseguia descompactar esse packer, conforme pude constatar em outro artigo, submeti o arquivo a ele.

Para minha surpresa o PEiD retornou o erro “Debugee exited...” e não conseguiu retirar a proteção Thinstall.


Possivelmente o malware deveria ter alguma proteção para o unpacker genérico do PEiD e ele não conseguiu rodar.

Lembrei então da dica Lamer :) que o programa Exeinfo PE exibiu quando mostrou a proteção Thinstall, que era para procurar pelo “unthinstall”.

Depois de muito pesquisar no Google encontrei em um site japonês, eu acho, a ferramenta feita para tirar a proteção do packer Thinstall. Fiz o download da mesma e submeti o malware a ela.


Obtive resultado positivo, agora o malware estava livre do packer. O UnThinstall atribuiu ao EXE “unpacked” o nome “AtualizacaoEmissorNF-e5.4.1.exe.dump”

Agora era a hora de abrir nosso arquivo suspeito no OllyDbg para buscar informações úteis.

Ao abrir o arquivo descompactado no OllyDbg já próximo ao Entry Point foi possível visualizar algumas strings suspeitas. Geralmente quando encontramos dentro de um malware uma cadeia de caracteres que forma uma sequência de letras e números aleatórios pode-se suspeitar que seja algum tipo de obfuscação de código ou criptografia.

Foi isso que notei ao abrir o arquivo, havia algumas strings com esse padrão e logo após elas um caminho de arquivo executável no Windows.

Veja a figura abaixo:


Destacadas na cor laranja no lado direito da imagem estão as strings criptografadas. Destacados em azul ainda na direita estão os caminhos de arquivos executáveis. Agora no lado esquerda da imagem destacado de vermelho é possível notar um padrão de comandos que se repetem.

A string criptografada é atribuída ao registrador EAX, em seguida é chamada a função 0044C558, mais abaixo novamente é atribuído ao EAX outra string criptografada e novamente é chamada a função 0044C558. Após isso é chamada a função URLDownloadToFileA URLMON.dll que faz parte da API do Windows. E por fim é chamada a função WinExec da API kernel32.dll.

Abaixo um trecho simplificado do código para facilitar o entendimento:

MOV EAX, 0044CA84 ; ASCII “GpfSLqbEH4zNKrnpUNDqPM...”
CALL 0044C558
MOV EAX, 0044CA64 ; ASCII “Q7HqS3elBtTtToviQMvhRsviQM...”
CALL 0044C558
CALL URLMON.URLDownloadToFileA
CALL kernel32.WinExec ; “C:\WINDOWS\system\Winbdn.exe”

Esse padrão se repete quatro vezes no código.


Agora ficou fácil imaginar o que esse trecho do programa faz. Passa duas strings criptografadas como parâmetro para a função 0044C558 descriptografar, após a descriptografia possivelmente é retornada uma URL onde o malware então faz download, salva na pasta “system” dentro de “WINDOWS” e executa com a função WinExec.

Certo, mas temos que provar se realmente é isso que acontece. Uma forma simples que pensei foi posicionar um breakpoint no final da quarta repetição desse padrão para verificar o que essas funções retornam.

Coloquei o breakpoint no offset 0044C9E6, para isso no OllyDbg selecionei a linha e apertei F2. Então só apertar F9 para rodar o programa e verificar o resultado. O programa parou a execução no meu breakpoint e...


Conforme imaginado, eram mesmo URLs de mais quatro malwares que o programa faria download, destacado em vermelho da parte inferior direita da imagem.

A partir daí se iniciaria uma nova etapa da investigação, que seria realizar manualmente o download dessas quatro pragas e verificar através da engenharia reversa o que elas faziam.

Isso contarei no próximo artigo dentro de poucos dias, e já adianto que consegui resultados significativos em um desses arquivos, aguardem!

Comentário

Foi possível notar quão trabalhoso é o processo de engenharia reversa de malwares, os fraudadores estão sempre inventando novas técnicas para dificultar o trabalho da investigação. Para descobrir apenas quatro URLs foram necessárias algumas horas de trabalho.

Para quem está iniciando nessa área gostaria de deixar claro que a engenharia reversa não é a única forma de análise de malwares, é apenas mais uma ferramenta à disposição dos investigadores.

Demonstrei a técnica empregada nesse caso para que possamos nos familiarizar mais com os malwares, com assembly, debuggers, packers, etc. Porém no caso específico desse artigo para descobrir as mesmas informações seria mais rápido e fácil rodar um sniffer de rede tipo o tcpdump e depois verificar quais endereços o malware acessou.

Existem inúmeras formas de analisar malwares, conhecê-las e usá-las em conjunto é a chave para o sucesso na investigação.

É isso aí!

Leia a continuação dessa investigação aqui.

Ronaldo Lima

14 comentários:

  1. Boa!
    E se me permite a ignorância: os quatro links apontam para .jpg's, por quê?

    ResponderExcluir
  2. Obrigado pelo comentário.

    Na verdade o JPG é apenas um nome qualquer que o fraudador utilizou para dificultar um pouco a identificação de seus malwares. Tanto é que já tentei abrir esses arquivos como imagem pelo navegador e nada acontece porque são binários executáveis.

    Nesse caso o Loader baixava o arquivo supostamente JPG e já renomeava e executava no Windows como um EXE comum.

    Abraço!

    ResponderExcluir
  3. Muito boa explanação, suas matérias são de grande ajuda venho acompanhando e gosto muito, parabéns

    ResponderExcluir
  4. Parabéns pelos os posts são de grande valia para evangelização de novos profissionais ao combate ao crimeciberneticos

    ResponderExcluir
  5. Belo artigo merece parabéns. Como realmente voce comentou acima seria bem mais rápido usar uma máquina e sniffer. O canivete suiço é chave da análise de malwares.

    ResponderExcluir
  6. Putz...trampo com contabilidade e envio de arquivos para o site do NFP..e um email desses serai fatal! Parabens pelos site!
    @decarvalho

    ResponderExcluir
  7. Em poucas palavras gostaria de parabenizá-lo pelo artigo, estava a procura de artigos relacionados a este assunto a muito tempo.

    ResponderExcluir
  8. ótimo post! após baixa o exeinfoPE meu antivírus após rodar o executável do programa acusou uma possível ameaça, trata-se de um falso positivo?

    obrigado Ronaldo, não estou incomodando? irei fazer varias perguntas, hehe. sou faminto nesses assuntos!

    até breve

    ResponderExcluir
  9. Os antivírus às vezes identificam o Exeinfo PE e o RDG como malicioso, mas é falso positivo.

    Porém, utilize uma máquina virtual pra analisar arquivos maliciosos e desconhecidos, tem que tomar algumas medidas de segurança, não faça isso na sua máquina normal.

    Não está incomodando não. Suas dúvidas podem ser as mesmas de outros que também lêem o blog.

    Abraços!

    ResponderExcluir
  10. Obrigado Ronaldo, estou usando uma maquina virtual sim para experimentos, obrigado pelo esclarecimento!

    ResponderExcluir
  11. não gostaria de chover no molhando em dizer que seu artigo está de parabéns, mas é necessário fazê-lo pois torna claro a importância de seu trabalho para nós que estamos iniciando.

    Forte abraço.

    ResponderExcluir
  12. muitobom amigao!! alias eu sempre apanha pra descompactar alguns exes mas com suas dicas ja dispertou bastante uma previa integraçao para analises futuras desses 'fud '.exe... valew.

    ResponderExcluir
  13. meu pc ta com o win32 downloader-spa adw
    sabem me dizer oque ele fais? (raphael.pta@hotmail.com

    ResponderExcluir
  14. preciso baixar este unthinstal alguem me manda no fabiano_vd@ig.com.br por favor

    ResponderExcluir

Related Posts Plugin for WordPress, Blogger...