Pesquisadores do laboratório de malware da ESET Praga decidiram analisar de forma mais detalhada os trojans bancários conhecidos estarem direcionados ao Brasil. A partir dessa análise, os pesquisadores identificaram mais de 10 novas famílias de malware (que além do Brasil também apontam para outros países da América Latina, como México e Chile) e analisaram seu comportamento. Neste primeiro post da série sobre trojans bancários na América Latina, analisamos a primeira família de trojans: Amavaldo.

É importante notar que os trojans bancários na América Latina apresentam particularidades que os distinguem, pois além de serem voltados principalmente para países onde se fala português e espanhol, essas ameaças são escritas em Delphi, contam com características de um backdoor, aproveitam-se de programas e ferramentas legítimas para infectar suas vítimas e usam algoritmos criptográficos pouco conhecidos.

No post “Trojans bancários na América Latina: análise de novas famílias de malware”, as particularidades desse tipo de trojan são explicadas de forma mais detalhada.

Para infectar suas vítimas, esses trojans bancários usam um único downloader, que consiste em um arquivo executável do Windows que muitas vezes finge ser o instalador do software legítimo. Além disso, usam técnicas de engenharia social para fazer com que a vítima realize uma ação relacionada ao banco, como, por exemplo, a verificação de informações do cartão de crédito. Portanto, esse tipo de trojan bancário monitora as janelas ativas no computador da vítima e, no caso de detectar uma janela relacionada a uma entidade bancária, o malware entra em ação exibindo uma janela pop-up falsa que se passa pela entidade bancária mencionada para, por exemplo, roubar dados privados da vítima.

Amavaldo

Batizamos a família de malware que descrevemos neste post como "Amavaldo". Esta família ainda está em desenvolvimento ativo - a última versão que observamos (10.7) apresenta uma data de compilação em 10 de junho de 2019.

Este é um exemplo de um malware modular cuja carga útil final no arquivo ZIP contém três componentes:

  1. Uma cópia de um aplicativo legítimo (EXE)
  2. Um injetor (DLL)
  3. Um trojan bancário criptografado (descriptografa em uma DLL)

A Figura 1 mostra os conteúdos de um arquivo ZIP de exemplo contendo a carga útil final de Amavaldo.

Figura 1: Componentes de Amavaldo extraídos em uma pasta. Os componentes são: ctfmon.exe (aplicativo legítimo), MsCtfMonitor (trojan bancário criptografado), MsCtfMonitor.dll (injetor).

O downloader salva todo o conteúdo do arquivo ZIP no disco rígido na mesma pasta. O injetor tem um nome que foi escolhido para corresponder ao da DLL usada pelo aplicativo empacotado legítimo. Antes do downloader terminar a execução, executa o aplicativo legítimo. Então:

  • O injetor é executado via DLL Side-Loading
  • O injetor é injetado automaticamente no wmplayer.exe ou no iexplore.exe
  • O injetor procura o trojan bancário criptografado (um arquivo sem extensão cujo nome coincide com o do injetor DLL)
  • Se tal arquivo for encontrado, o injetor decriptografa e executa o trojan bancário

Características

Além da estrutura modular, a característica de identificação mais forte é o esquema de criptografia personalizado usado para a ofuscação de strings (Figura 2). Como pode ser visto, além da chave (verde) e dos dados criptografados (azul), o código também é preenchido com strings lixo (vermelho) que nunca são usados. Criamos um pseudocódigo simplificado na Figura 3 para destacar a lógica do algoritmo. Esta rotina de manipulação de strings é usada pelo próprio trojan bancário, pelo injetor e até pelo downloader que descreveremos mais adiante. Ao contrário de muitos outros trojans bancários na América Latina, essa rotina não parece ter sido inspirada pelo livro mencionado acima.

Figura 2: Ofuscação de string no Amavaldo.

Figura 3. Pseudocódigo de descriptografia de sequência de caracteres de Amavaldo.

Além disso, as versões mais recentes dessas famílias podem ser identificadas por um mutex que aparentemente sempre tem o mesmo nome “{D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}”.

Amavaldo primeiro coleta informações sobre a vítima como:

  • Identificação do computador e do sistema operacional
  • Que tipo de proteção bancária a vítima tem instalada? As informações são coletadas através de buscas nos seguintes caminhos do sistema de arquivos:
  • %ProgramFiles%\Diebold\Warsaw
  • %ProgramFiles%\GbPlugin\
  • %ProgramFiles%\scpbrad\
  • %ProgramFiles%\Trusteer
  • %ProgramFiles%\AppBrad\
  • %LocalAppData%\Aplicativo Itau

As versões mais recentes se comunicam através do SecureBridge, uma biblioteca em Delphi que oferece conexões SSH/SSL.

Assim como outros trojans bancários, Amavaldo suporta vários comandos backdoor. Os recursos desses comandos incluem:

  • Obter screenshots
  • Capturar fotos da vítima através da webcam
  • Registrar o texto inserido através do teclado
  • Realizar o download e executar outros programas
  • Restringir o acesso a vários sites bancários
  • Simular teclado e mouse
  • Atualização automática

Amavaldo usa uma técnica inteligente ao lançar o ataque em sua vítima que é semelhante ao que faz o Windows UAC. Depois de detectar uma janela relacionada a um banco, realiza uma captura de tela da área de trabalho e faz com que seja visto como o novo papel de parede. Em seguida, exibe uma janela pop-up falsa que é escolhida com base no texto da janela ativa, enquanto desabilita vários atalhos de teclado e impede que a vítima interaja com outra coisa que não seja a janela pop-up.

Apenas os bancos no Brasil haviam sido alvo quando encontramos pela primeira vez essa família de malware, mas a partir de abril de 2019 a ameaça ampliou seu alcance para bancos no México. Embora os bancos que foram alvo no Brasil continuem presentes no malware, de acordo com nossas análises, os operadores por trás dessa ameaça estão atualmente enfocados apenas no México.

Propagação

Foi possível observar duas cadeias de propagação - uma no início deste ano e uma segunda desde abril.

Cadeia de propagação 1: direcionada ao Brasil

Observamos essa cadeia pela primeira vez visando vítimas do Brasil em janeiro de 2019. Os autores decidiram usar um instalador MSI, VBS, XSL (Extensible Stylesheet Language) e PowerShell para sua propagação.

Toda a cadeia começa com o instalador MSI que na visão da vítima irá instalar o Adobe Acrobat Reader DC. Ele usa dois executáveis ​​legítimos: AICustAct.dll (para detectar qualquer conexão com a Internet disponível) e VmDetect.exe (para detectar ambientes virtuais).

Figura 4: Mensagem de erro quando o downloader é executado dentro de uma máquina virtual (esquerda) ou sem uma conexão com a Internet (direita).

Depois que o instalador falso é executado, ele usa um arquivo incorporado que, além dos strings, contém um downloader VBS empacotado (Figura 5). Depois de desempacotá-lo (Figura 6), baixa outro downloader VBS (Figura 7). Observe que o segundo download VBS se aproveita do WMIC.exe da Microsoft Windows para baixar o próximo estágio: um script XSL (Figura 8) com um PowerShell codificado e incorporado. Por fim, o script do PowerShell (Figura 9) é responsável pelo download da carga útil final: um arquivo zip com vários arquivos, listado na Tabela 1. Ele também garante a persistência criando uma tarefa programada chamada GoogleBol.

Figura 5: O primeiro estágio. Um download VBS compactado (destacado em vermelho) incorporado dentro do instalador MSI.

Figura 6: O primeiro estágio descompactado.

Figura 7: O segundo estágio descompactado. Aproveita-se do WMIC.exe para executar o próximo estágio.

Figura 8: O terceiro estágio. Um script XSL longo que contém um script PowerShell codificado incorporado (destacado em vermelho).

Figura 9: O quarto estágio (final). Um script do PowerShell ofuscado que faz o download da carga final e a executa.

nvsmartmaxapp.exe Legitimate application 1
NvSmartMax.dll Injector 1
NvSmartMax Payload 1
Gup.exe Legitimate application 2
libcurl.dll Injector 2
Libcurl Payload 2
gup.xml Configuration file for gup.exe

Tabela 1: Conteúdos do arquivo de carga útil final e suas descrições.

A Tabela 1 mostra dois grupos de cargas e injetores, ambos usando o método de execução descrito acima. O NvSmartMax [.dll] foi usado para executar o Amavaldo. O libcurl [.dll] não está diretamente relacionado ao Amavaldo, uma vez que ele executa uma ferramenta que é usada para registrar automaticamente um grande número de endereços de e-mail usando a plataforma de e-mail Brasil Online (BOL). Esses logins e senhas de e-mail são enviados de volta ao atacante. Acreditamos que esses dados serão usados ​​para uma nova campanha de spam.

Cadeia de propagação 2: direcionada ao México

A cadeia de infecção mais recente que observamos começa com um instalador MSI muito semelhante. A diferença é que, desta vez, ele contém um executável do Windows incorporado que funciona como um downloader. O instalador finaliza o processo com uma mensagem de erro falsa (Figura 12). Logo depois, o downloader é executado. A persistência é garantida pela criação de uma tarefa programada (como na primeira cadeia), embora desta vez seja denominada Adobe Acrobat TaskB (Figura 13). Em seguida, baixa todos os componentes de Amavaldo (desta vez não vemos nenhuma ferramenta de e-mail) e executa o trojan bancário.

Figura 10: A mensagem de erro falsa exibida pelo instalador.

Figura 11: A tarefa programada criada pelo downloader.

Acreditamos que as empresas foram alvo de campanhas de spam usando esse método. Os arquivos iniciais foram nomeados como CurriculumVitae[...].msi ou FotosPost[...].msi. Acreditamos que as vítimas são levadas a clicar em um link que vem em um e-mail que as faz com que realize o download do que elas acreditam ser um currículo. Como deve ser um PDF, executar a instalação do Adobe Acrobat Reader DC pode parecer uma ação legítima nesse contexto.

Como os autores decidiram usar o encurtador de URL bit.ly, conseguimos obter informações adicionais sobre suas campanhas (Figuras 12 e 13). Como é possível ver, a grande maioria dos cliques nessas URLs pertencem ao México. O fato do e-mail ser a referência mais frequente reforça nossa teoria sobre o spam como o principal vetor de propagação.

Figura 12: Estatísticas de uma campanha recente de Amavaldo direcionada ao México (1).

Figura 13: Estatísticas de uma campanha recente de Amavaldo direcionada ao México (2).

Conclusão

Neste post, apresentamos nossa pesquisa sobre trojans bancários na América Latina. Descrevemos o comportamento típico desse tipo de malware e como ele opera. Também apresentamos quais foram os principais recursos que usamos para estabelecer famílias de malware.

Com Amavaldo descrevemos a primeira família de malware juntamente com suas principais características e alvos, e também analisamos de forma detalhada as cadeias de propagação recentes. Amavaldo compartilha muitas das características típicas de um trojan bancário na América Latina. Ele divide suas funcionalidades em vários componentes, portanto, ter um único componente não é suficiente para a análise. Aproveita-se de aplicativos legítimos para serem executados automaticamente e detectar ambientes virtuais. Ele tenta roubar informações de bancos no Brasil e no México e também contém características de um backdoor.

Em caso de dúvidas, envie um e-mail para threatintel@eset.com. Os Indicadores de Comprometimento também podem ser encontrados no GitHub.

Indicadores de Comprometimento (IoCs)

Hashes

Hashes da primeira cadeia de propagação (Brasil)

SHA-1 Description ESET detection name
E0C8E11F8B271C1E40F5C184AFA427FFE99444F8 Downloader (MSI installer) Trojan.VBS/TrojanDownloader.Agent.QSL
12C93BB262696314123562F8A4B158074C9F6B95 Abuse legitimate application (NvSmartMaxApp.exe) Clean file
6D80A959E7F52150FDA2241A4073A29085C9386B Injector for Amavaldo (NvSmartMax.dll) Win32/Spy.Amavaldo.P trojan
B855D8B1BAD07D578013BDB472122E405D49ACC1 Amavaldo (decrypted NvSmartMax) Win32/Spy.Amavaldo.N trojan
FC37AC7523CF3B4020EC46D6A47BC26957E3C054 Abused legitimate application (gup.exe) Clean file
4DBA5FE842B01B641A7228A4C8F805E4627C0012 Injector for email tool (libcurl.dll) Win32/Spy.Amavaldo.P trojan
9A968341C65AB47BF5C7290F3B36FCF70E9C574B Email tool (decrypted libcurl) Win32/Spy.Banker.AEGH trojan

Hashes da primeira cadeia de propagação (México)

SHA-1 Description ESET detection name
AD1FCE0C62B532D097DACFCE149C452154D51EB0 Downloader (MSI installer) Win32/TrojanDownloader.Delf.CSG trojan
6C04499F7406E270B590374EF813C4012530273E Abused legitimate application (ctfmon.exe) Clean file
1D56BAB28793E3AB96E390F09F02425E52E28FFC Injector for Amavaldo (MsCtfMonitor.dll) Win32/Spy.Amavaldo.U trojan
B761D9216C00F5E2871DE16AE157DE13C6283B5D Amavaldo (decrypted MsCtfMonitor) Win32/Spy.Amavaldo.N trojan

Outros

SHA-1 Description ESET detection name
B191810094DD2EE6B13C0D33458FAFCD459681AE VmDetect.exe – a tool for detecting virtual environment Clean file
B80294261C8A1635E16E14F55A3D76889FF2C857 AICustAct.dll – a tool for checking internet connectivity Clean file

Mutex

  • {D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}

Nomes dos arquivos

  • %LocalAppData%\%RAND%\NvSmartMax[.dll]
  • %LocalAppData%\%RAND%\MsCtfMonitor[.dll]
  • %LocalAppData%\%RAND%\libcurl[.dll]

Tarefas programadas

  • GoogleBol
  • Adobe Acrobat TaskB

Servidores C&C

  • homeunix[.]com:3928
  • mine[.]nu:3579
  • game-server[.]cc:3351
  • scrapping[.]cc:3844

Técnicas de MITRE ATT&CK

Tactic ID Name Description
Initial Access T1192 Spearphishing Link The initial attack vector is a malicious link in an email that leads the victim to a web page the downloader is obtained from.
Execution T1073 DLL Side-Loading The injector component is executed by abusing a legitimate application with this technique.
T1086 PowerShell The first distribution chain uses PowerShell in its last stage.
T1047 Windows Management Instrumentation The first distribution chain abuses WMIC.exe to execute the third stage.
Persistence T1053 Scheduled Task Persistence is ensured by a scheduled task.
Defense Evasion T1140 Deobfuscate/Decode Files or Information The actual banking trojan needs to be decrypted by the injector component.
T1036 Masquerading The injector masks itself as a DLL imported by the abused legitimate application. The downloader masks itself as an installer for Adobe Acrobat Reader DC.
T1055 Process Injection The injector injects itself into wmplayer.exe or iexplore.exe.
T1064 Scripting VBS, PowerShell and XSL are used in the first distribution chain.
T1220 XSL Script Processing The first distribution chain uses XSL processing in its third stage.
T1497 Virtualization/Sandbox Evasion Downloader of Amavaldo uses third-party tools to detect virtual environment.
Credential Access T1056 Input Capture Amavaldo contains a command to execute a keylogger. It also steals contents from fake windows it displays.
Discovery T1083 File and Directory Discovery Amavaldo searches for various filesystem paths in order to determine what banking protection applications are installed on the victim machine.
T1082 System Information Discovery Amavaldo extracts information about the operating system.
Collection T1113 Screen Capture Amavaldo contains a command to take screenshots.
T1125 Video Capture Amavaldo contains a command to capture photos of the victim via webcam.
Command and Control T1024 Custom Cryptographic Protocol Amavaldo uses a unique cryptographic protocol.
T1071 Standard Application Layer Protocol Amavaldo uses the SecureBridge Delphi library to perform SSH connections.
Exfiltration T1041 Exfiltration Over Command and Control Channel Amavaldo sends the data it collects to its C&C server.