Pesquisadores de segurança cibernética detalharam o funcionamento interno de um malware ladrão de criptomoedas. Essa malware vinha sendo distribuído por meio de 13 pacotes NuGet maliciosos como parte de um ataque à cadeia de suprimentos direcionado aos desenvolvedores .NET.
Malware ladrão de criptomoedas
A sofisticada campanha de typosquatting, que foi detalhada pelo JFrog no final do mês passado, representava pacotes legítimos para executar o código PowerShell projetado para recuperar um binário de continuação de um servidor codificado. O ataque em dois estágios culmina na implantação de um backdoor persistente baseado em .NET, chamado Impala Stealer, que é capaz de obter acesso não autorizado às contas de criptomoedas dos usuários.
A carga útil usou uma técnica de ofuscação muito rara, chamada ‘compilação .NET AoT’, que é muito mais furtiva do que usar ofuscadores ‘prontos para uso’, ao mesmo tempo em que dificulta a engenharia reversa do binário.
JFrog
A compilação .NET AoT é uma técnica de otimização que permite que os aplicativos sejam compilados antecipadamente para o código nativo. Os aplicativos AOT nativos também têm um tempo de inicialização mais rápido e ocupam menos memória e podem ser executados em uma máquina sem o tempo de execução .NET instalado.
A carga útil de segundo estágio vem com um mecanismo de atualização automática que permite recuperar novas versões do executável de um local remoto. Além disso, ele alcança persistência injetando código JavaScript em aplicativos Discord ou Microsoft Visual Studio Code, ativando assim o lançamento do binário ladrão.
O binário então procura a instalação do aplicativo de desktop Exodus Wallet e insere o código JavaScript em vários arquivos HTML para colher e exfiltrar dados confidenciais para um webhook do Discord codificado. O fragmento de JavaScript, por sua vez, é obtido de um site de colagem on-line de onde já foi excluído.
Suspeita-se que o código possa ter sido usado para roubar credenciais de usuários e acessar outras informações de interesse. As descobertas surgem quando Phylum desenterrou um pacote npm malicioso chamado mathjs-min que foi carregado no repositório em 26 de março de 2023 e descobriu que abrigava um ladrão de credenciais que pega senhas do Discord do aplicativo oficial, bem como navegadores da web como o Google Chrome, Corajoso e Ópera.
“Este pacote é, na verdade, uma versão modificada da amplamente usada biblioteca matemática de Javascript mathjs, e foi injetado com código malicioso depois de ser bifurcado”, disse a empresa de segurança da cadeia de suprimentos de software. “A versão modificada foi então publicada no NPM com a intenção de passá-la como uma versão reduzida da genuína biblioteca mathjs.”