Análise de Malware: RAT E-mail/Browser InfoStealer
101
2

Análise de Malware: RAT E-mail/Browser InfoStealer

O artigo de hoje será feito encima de um arquivo enviado por um seguidor meu do Instagram!! Se você não me acompanha, sugiro começar, pois no mesmo eu costumo compartilhar muito sobre a temática de Malwares.

Carlos Adriano de Souza Jorge
6 min
101
2
Fonte:https://www.howtogeek.com/wp-content/uploads/2019/04/hero.png?height=200p&trim=2,2,2,2
Fonte:https://www.howtogeek.com/wp-content/uploads/2019/04/hero.png?height=200p&trim=2,2,2,2

O artigo de hoje será feito em cima de um arquivo enviado por um seguidor meu do Instagram!! Se você não me acompanha, sugiro começar, pois no mesmo eu costumo compartilhar muito sobre a temática de Malwares.

Ok, Vamos para o que nos interessa! tenho que admitir, fui pego totalmente de surpresa pois não costumo analisar arquivos feitos em .NET, entretanto desafios são feitos para serem enfrentados confere!?

Ao receber o arquivo malicioso, comecei a executar a etapa de identificação, para entender que tipo de ameaça eu estaria analisando. Então o arquivo foi enviado para ser analisado pelo Vírus Total, se o mesmo for identificado já sabemos que o mesmo é conhecido. 

Figura 01 - Vírus Total.
Figura 01 - Vírus Total.

E como já era esperado o nosso camarada é bem conhecido! muitos antivírus o classificaram como Trojan-Spy.Agent (Trojan = software malicioso que se disfarça como inofensivo, Spy.Agent = funciona como um software agente,  sendo utilizado como coletor de informações) e também como Trojan.Win32.Generic ((Trojan = software malicioso que se disfarça como inofensivo,Win32 = Win32 é uma API desenvolvida para sistemas operacionais baseados no Windows NT (Windows XP, Windows 7, etc.) que oferece suporte à execução de aplicativos de 32 bits, .Generic = Trojan genérico). O mais interessante é que ele se denomina em sua descrição como uma ferramenta poderosa de "Data Recovery" (risos).

 Figura 02 - File Version Information.
 Figura 02 - File Version Information.

Ao enviar esse arquivo ao DIE (Detect It Easy), foi possível identificar que o arquivo foi feito em .NET e tem ofuscação nas suas strings, logo a Engenharia Reversa desse arquivo será feita utilizando o dnSpy.

Figura 03 - DIE, Identificando que o arquivo foi feito em .NET.
Figura 03 - DIE, Identificando que o arquivo foi feito em .NET.
Figura 04 - DIE, demonstração de strings ofuscadas.
Figura 04 - DIE, demonstração de strings ofuscadas.

Fazendo análise do arquivo dentro de uma Sandbox foi possível identificar algumas TTPs (táticas técnicas e procedimentos) que o mesmo utiliza, entre eles o que chama mais atenção é a utilização da técnica Process Hollowing (uma forma diferente de injetar carga útil na memória), além da Execução de um processo onde foi feita a injeção de código (evidenciado abaixo).

Figura 05 - TTPs.
Figura 05 - TTPs.

O Process Hollowing ocorre quando um Malware esvazia o código legítimo da memória do processo de destino e sobrescreve este espaço de memória do processo (segundo a sandbox, no processo a850de0705c0f6095910aa1d.exe) com um executável malicioso.

Figura 06 - Process Hollowing.
Figura 06 - Process Hollowing.

Análise Dinâmica 

Não satisfeito com as informações que as sandboxes utilizadas trouxeram de informação, foi executado então uma Análise Dinâmica manual do arquivo.

Utilizando o Procmon foi possível mapear alguns pontos interessantes das ações que o arquivo fez ao ser executado. Abaixo podemos visualizar que o artefato em questão tenta buscar informações de E-mail  e do Browser no computador.

Figura 07 - Busca de informações sobre dados de E-mail.
Figura 07 - Busca de informações sobre dados de E-mail.

Pelo o que aparece o Malware em questão foca em roubar informações de login de Email e do Browser, utilizei então o Process Hacker para conseguir ter acesso as strings do arquivo em tempo real, dessa forma é possível visualizar praticamente todas as strings que o arquivo possui, pois a análise dos mesmos está sendo feita direta na memória do processo em execução. Se a análise de strings fosse feita de forma estática possivelmente não conseguiríamos visualizar tudo, visto que o arquivo tem ofuscação nas strings.

Ao analisar as strings foi possível fortalecer as teorias de que o Malware tem como foco extrair informações  de E-mail e senha dos Browser do computador: 

Figura 08 - De alguma forma ele está utilizado as funções PK11 do mozilla para alguma atividade.
Figura 08 - De alguma forma ele está utilizado as funções PK11 do mozilla para alguma atividade.
Figura 09 - Strings envolvendo serviços de E-mail e @gmail/@yahoo, além de outras strings suspeitas.
Figura 09 - Strings envolvendo serviços de E-mail e @gmail/@yahoo, além de outras strings suspeitas.

Mesmo depois de executar todo esse processo de análise, ainda não ficou claro do que realmente este arquivo é capaz. Então foi necessário executar uma Engenharia Reversa (minha parte favorita) no executável, afim de dar o diagnóstico final!

Engenharia Reversa

Ao colocar o arquivo no dnSpy podemos visualizar as informações iniciais do arquivo:

Figura 10 - Informações sobre o arquivo.
Figura 10 - Informações sobre o arquivo.

Mas como já sabemos, essas informações não são verídicas, pois o arquivo é um Malware. Ao selecionar o ponto de entrada, o programa nos direciona para a main(), e aqui descobrimos todas as funções existentes dentro do artefato:

Figura 11 - Funções presentes no arquivo.
Figura 11 - Funções presentes no arquivo.

Em cima é possível visualizar uma estrutura de um custom RAT, onde o atacante pode escolher quais funções ele quer ativar no executável. Entre todas essas funções apenas as funções abaixo estão ativadas:

  • GetCurrentWindow: Serve para obter a janela atual.
Figura 12 - GetCurrentWindow.
Figura 12 - GetCurrentWindow.
  • RecordKeys: Capturar o que está sendo digitado. 
Figura 13 - RecordKeys.
Figura 13 - RecordKeys.
  • ClipboardLogging: Serve para capturar as informações da Área de Transferência (Ctrl C)
Figura 14 - ClipboardLogging.
Figura 14 - ClipboardLogging.
  • PasswordRecovery: Tem como finalidade Recuperar dos navegadores abaixo as informações de login e senha.
Figura 15 - PasswordRecovery.
Figura 15 - PasswordRecovery.

Ao adentrar a função que captura informações do Outlook podemos visualizar uma função de redirecionamento (FandS) para captura de informações de E-mail, Password, Server e Application  dos correios eletrônicos:

Figura 16 - FandS.
Figura 16 - FandS.
Figura 17 - Captura de informações.
Figura 17 - Captura de informações.

Já ao adentrar alguma das funções focadas em navegadores podemos visualizar a função de redirecionamento (FandS) para captura de informações de User Name, Password, URL e nome do Web Browser:

Figura 18 - FandS.
Figura 18 - FandS.
Figura 19 - Captura de informações.
Figura 19 - Captura de informações.

É possível visualizar na função acima uma outra função denominada Send.SendLog() que possui dentro dela uma variável denominada "P_Link", ao clicar nela o software nos redireciona a uma variável publica contendo uma URL [http://ziraat-helpdesk[.]com/components/com_content/limpopapa/], a mesma faz parte do Comando e Controle do Malware:

Figura 20 - URL de Comando e Controle.
Figura 20 - URL de Comando e Controle.

Por meio de ferramentas de correlação foi possível visualizar a infraestrutura de Comando e Controle e outros arquivos maliciosos que se relacionam com essa infraestrutura:

Figura 21 - Infraestrutura.
Figura 21 - Infraestrutura.

A URL encontrada dentro do Malware possui uma infraestrutura contendo correlações/resoluções para IPs da Alemanha, França e Estados Unidos, ambos correlacionados com vários arquivos  e outras URLs maliciosas.

Ao aprofundar no código, existe uma função chamada RecoverMail(), ela cita uma função denominada ReadMail(): 

Figura 22 - ReadMail().
Figura 22 - ReadMail().

E nela podemos visualizar a chamada ao arquivo "Mails.txt", visualizada anteriormente na etapa de Análise Dinâmica.

Figura 23 - Mails.txt.
Figura 23 - Mails.txt.

E pode ser identificado que ele está tentando armazenar o conteúdo dos E-mails neste arquivo. Mas antes de armazenar, o programa precisa passar pelo processo de extração de informações dos E-mails. E pelo o que pude observar perante a estrutura a mesma aparenta ser uma rotina de descriptografia simétrica (mas infelizmente não consegui entrar em detalhes).

Analisando o classe Send(), foi possível mapear a função SendLog(), que é responsável por mandar para o Comando e Controle as informações do teclado capturadas (tanto do que foi digitado quanto o que está na área de transferência), além das senhas extraídas. 

Obs: O desenvolvedor colocou varias strings de forma reversa para dificultar na hora de análises estáticas básicas.

Figura 24 - SendLog().
Figura 24 - SendLog().
Figura 25 - Strings de forma reversa.
Figura 25 - Strings de forma reversa.
Figura 26 - Strings de forma reversa.
Figura 26 - Strings de forma reversa.

Conclusão

Foi possível por meio desta análise evidenciar que o Malware em questão é categorizado como um RAT customizado, com funções de extração de informação de variados correios eletrônicos (Outlook, NetScape, Thunderbird, Eudora e Incredimail) e Browsers  (Firefox, Chrome, InternetExplorer, Opera e Safari).

Redes Sociais

Instagram

Linkedin

IOCs

  • 142.93.110.250
  • 209.99.40.223
  • 185.145.128.177
  • http://ziraat-helpdesk[.]com/components/com_content/limpopapa/
  • a850de0705c0f6095910aa1d5ed0e73a49581aa7427fcfaf2ff5144e93b047c1
  • a94db326ff43f02242fe5c3aef0cfc877f44f1bed56df0a75f21185c6b52bad7
  • b6ee2cd29b9fea1859338ffb98c6e1fcf5985fc8fefd4764223fa7d8b99456a0
  • 0848485b1d6394733b191ea8c9cdb01a9a86ac5f9f10219d230aa709dcb3058f
  • ce18db33997f539ce07d81e3b7bccbca2c3c4c832437d06c76b4075d009351ed
  • 5e8dc62c4e33e25cc3adcd263d247e9c4a0c51d2c55ba4bdc130d7e169781c28
  • 0c9776c0dad9df141b8d0a2a4e444fcc51bd8dc6950cb3976ed211b58492634b
  • b7a4709b1091cf85c3fae9e0d7f4703960d9b844830210270e1e613d1703af6a
  • 703b669423cc5cdbcda7137dfd67e90acb7fc858ce57fb3e00d473c11df2ddd7
  • dd121313141f8d551d0ddbeea5b9d56d3acf73fef49a4fff3698769a962db44d
  • db2fdaa59cc7c6bc7bed412ba5638bde7611a204e04e1b13c3e5435542839af1
  • 8ece3ce00a84b7365b96487f215cbbea379a8df57ed7c23a2add8758858fba6e
  • a51b5c3f5ad7b5942dc85b2bbfdd5fd73e19d0ffb08923e79c74bec523bb423c
  • 34ff2148d45d05296f3e4448390cc3522608ef6c571ef3ebf840323689986d2e
  • 460c5c16ff7ed27c348f7b2025f8fa1a76a6d3c3804b531f16cf2852c8ff6b2a
  • 22d90d6854d79d2a62d1d8c777098567eea4300a4ac8a1e3c8d550ffcf841d03
  • f3f192beafd9adce3e4a41cf54d70ec9940f17815bd3489aaaaf2ab9e41d4983
  • 8942a996e392a852aaca71a457d936a11d188c99bc72bab377bae428fbf92cf9
  • 148adef7e0529dd73df083a8026de0b9460a35600817c762c96c927b7cdbfb61
  • 7c8cb66e9e5ac66415273a48528e1b2f781003f2109b5d704254b9e91d745a34
  • 1b44460401a79b05958aa6270c9862f8dca5383137cd1ab0baf10b71671fef26