Por Threat Intelligence Team
Na última semana, a equipe de Threat Intelligence da Tempest identificou a disseminação do trojan bancário Vadokrist por meio de uma campanha de spear phishing que usa o Pix como mote. A ameaça, que tem como alvo os clientes dos principais bancos brasileiros, abusa da técnica de DLL Injection no seu processo de infecção e faz uso da plataforma GitHub para hospedar e consultar informações necessárias ao funcionamento da campanha.
Distribuição da ameaça
Beneficiando-se da popularização do Pix, os operadores iniciam a distribuição do trojan por meio de uma campanha de spear phishing que tenta persuadir o usuário a baixar e executar um arquivo ZIP em anexo com a promessa de proteger o computador contra fraudes e pagamentos indevidos. Para dar mais credibilidade à engenharia social aplicada aos e-mails, os operadores comprometeram previamente alguns domínios legítimos e fizeram uso da técnica de Email Spoofing, além de usarem domínios recém criados usando o TLD .com. br com menção ao Pix.
Infecção, persistência e comando e controle
A infecção com o Vadokrist se inicia com a execução de um arquivo de instalação no formato MSI, o qual executa um script JavaScript ofuscado que é responsável por fazer o download de uma DLL maliciosa e de um arquivo executável legítimo e assinado pela empresa Macro Recorder. Este executável injeta a DLL maliciosa no sistema por meio da técnica de DLL Injection e, em seguida, cria uma tarefa de persistência adicionando uma entrada para uma chave de registro do Windows, fazendo com que a ameaça seja executada com o mesmo nível de permissão da conta do usuário corrente sempre que for efetuado o login no sistema. Enquanto a persistência é criada, a DLL injetada consulta um arquivo hospedado no GitHub que contém strings cifradas referentes aos endereços IP do servidor de comando e controle (C2) e a URL de download da última porção da ameaça; um segundo arquivo MSI com funções de backdoor, que será baixado, decifrado e executado pela DLL.
Após a infecção, a ameaça permanece em “modo de espera” aguardando a vítima acessar a página web de alguma instituição bancária que faça parte da sua lista de alvos. Quando esse acesso é identificado, a comunicação com o C2 é estabelecida e o malware aguarda a vítima digitar as credenciais para então capturá-las e enviá-las ao servidor. Além de credenciais de serviços bancários, o trojan também envia informações sobre a máquina infectada, como a versão do sistema operacional, do navegador de Internet, do malware que atingiu o sistema, dentre outras coisas.
Decifragem de strings
Para analisar o comportamento do Vadokrist, a Tempest desenvolveu um script em Python com a função de decifrar as strings do malware. Isto foi possível, pois o algoritmo utilizado na criptografia das strings é bem semelhante ao de outras famílias de malware latino-americanas e, além disso, as chaves necessárias para a decifragem foram identificadas entre os binários do malware. Algumas das strings decifradas tratavam-se de endereços IP dos servidores controlados pelo atacante e da URL de download da última parte da ameaça.
Conclusão
Apesar do trojan Vadokrist ser pouco reportado pela mídia especializada, a Tempest tem observado uma constante atualização no modo de operação e na engenharia social aplicada às campanhas promovidas por este trojan.
O uso da temática do Pix evidencia o esforço dos operadores em atingir o maior número de vítimas possível, expandindo o alcance de distribuição da ameaça. No entanto, a Tempest reforça que esse abuso se limitou apenas à campanha de spam, não sendo identificados processos, strings ou quaisquer tentativas de captura de chaves Pix em nenhuma etapa de execução do malware.
Essa nova versão conta com métodos de ofuscação robustos para proteger suas configurações, além de fazer uso de uma plataforma pública como o GitHub para armazenar, sob a forma de strings cifradas, as informações necessárias a execução da campanha.
Embora o Vadokrist seja direcionado a alvos no Brasil, a Tempest acredita que esse direcionamento possa ser mais amplo em atualizações futuras, pois este trojan compartilha várias características com outras famílias de malware que atingem a América Latina.
IOCs
URLs
[http://13[.]65[.]56[.]28/findP]
[http://157[.]55[.]80[.]194/newT[.]ZIP]
[http://104[.]214[.]65[.]89/JobCompressS[.]ZIP]
[http://summergs[.]worse-than[.]tv/MelaMEOMSJ1029192Ds[.]php]
[http://vaigama[.]scrapping[.]cc/BertolmeLAMES0190[.]php]
[http://vaiost[.]ftpaccess[.]cc/Vasftlomber901gtdma[.]php]
Github
https://github[.]com/rodolfocarlos/produtcs-api
[https://raw[.]githubusercontent[.]com/rodolfocarlos/produtcs-api/main/updater[.]md]
[https://github[.]com/rodolfocarlos/produtcs-api/blob/main/DISCOVERYP[.]md]
[https://github[.]com/rodolfocarlos/produtcs-api/blob/main/DISCOVERYM[.]md]
[https://github[.]com/rodolfocarlos/produtcs-api/blob/main/DISCOVERYL[.]md]
E-mails utilizados no spam
IPs
104[.]41[.]1[.]116
35[.]223[.]36[.]252
151[.]101[.]0[.]133
13[.]89[.]234[.]31
191[.]234[.]186[.]245
70[.]37[.]101[.]247
20[.]52[.]58[.]124
Hashes
Filename: PIX-SEC30.ZIP
Md5: 1854de6a97f87bc723011722e799d016
Sha1: c6644ea2d60762b209bef23905bfa226f7be7d11
Sha256: 3b4f844359e5af7a78da08293f4d29bb1c301c3a12159f98e2a8820e91ebe7c4
Filename: PIX-SEC30.msi
Md5: 6fd80f160afc4641fce125735d32d065
Sha1: 63cae2b9a36f42355d4b09849668a0ec661137e8
Sha256: fb240b75af99c31735eae08e5d1f631d6932268dcfae290058bab4e483743040
Filename: Keys Recorder15.ZIP
Md5: 6892225255a998ad93b82ab740fab072
Sha1: c6ecf20a88079ea4c09a0f9cbea95fa9d5011e5c
Sha256: d321a2472e99fa6f41128cca7d671f1e1561003c004162acbc7fe61a878c73da
Filename: MacroRecorder.exe (Binário legítimo)
Md5: 67ced7026bfe75d93263a70fdef5b9c5
Sha1: 9673baf1ee29d2d2a8176715c3e6c6f54140d95f
Sha256: 93a359ddf66b4867493e6c5a90cf607da2b45bc83f1ce740aa1c7cdb0131244e
Filename: mrkey.dll
Md5: 14336c3ba1a725c2ea035ac251724445
Sha1: 526faed6e386fc4cc0a367488a4b3874c59cec1f
Sha256: 83d9aca673ae2415b57d7c631be1334d4259cc00aee17f84d710868a1186f377
Filename: findP.msi
Md5: 4294c873d792baf09b747b07cccefc01
Sha1: 3e7a69ea1a34361eaa94d4e4744d560edacaa268
Sha256: 48f8d0ccded94533fd38b98031e31187c49728314015cdb09c48ed79dc474dae