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:
- Uma cópia de um aplicativo legítimo (EXE)
- Um injetor (DLL)
- 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.
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.
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).
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.
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.
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.
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. |