código desenvolvimento

NuGet malicioso rouba credenciais de devs .NET

Uma campanha de ataque à cadeia de suprimentos direcionada a desenvolvedores ASP.NET foi descoberta, envolvendo quatro pacotes NuGet criados para roubar credenciais de login e plantar backdoors persistentes em aplicações web. Os pacotes maliciosos foram publicados entre 12 e 21 de agosto de 2024 pelo usuário “hamzazaheer” e, juntos, acumularam mais de 4.500 downloads.

Engenharia e técnicas de evasão

Os pacotes identificados são NCryptYo, DOMOAuth2_, IRAOAuth2.0 e SimpleWriter_. O NCryptYo utiliza typosquatting para se passar pela biblioteca de criptografia NCrypto, amplamente utilizada. Seu nome de arquivo, NCrypt.dll, imita o provedor de criptografia nativo do Windows, e seu namespace espelha as APIs oficiais da Microsoft. O pacote executa um construtor estático no momento em que o assembly é carregado, implantando um proxy oculto na porta local 7152 que redireciona o tráfego para um servidor externo controlado pelo atacante.

Pesquisadores da Socket.dev rastrearam a campanha ao identificar infraestrutura compartilhada entre todos os pacotes. DOMOAuth2_, IRAOAuth2.0 e SimpleWriter_ contêm um token de autenticação codificado byte a byte, confirmando a mesma autoria. Análise no VirusTotal mostrou que apenas 1 de 72 fornecedores de segurança detectou o NCrypt.dll, evidenciando a eficácia da ofuscação.

Coleta de dados e mecanismo de infecção

Após ativação, DOMOAuth2_ e IRAOAuth2.0 coletam silenciosamente dados do ASP.NET Identity, incluindo IDs de usuário, funções e permissões, roteando-os para o servidor do atacante via proxy local. O SimpleWriter_, disfarçado de ferramenta de conversão de PDF, grava arquivos controlados pelo agente malicioso em disco e executa processos ocultos sem janela visível. O objetivo final não é apenas a estação de trabalho do desenvolvedor, mas todas as aplicações em produção que utilizarem as bibliotecas comprometidas.

O NCryptYo emprega uma técnica de sequestro do compilador JIT (Just-In-Time) para manter seu comportamento oculto. O código malicioso só é descriptografado no momento da execução, tornando-se invisível para análise estática. O DLL é protegido por ofuscação .NET Reactor, possui um cronômetro de expiração de 14 dias e verificações anti-debugging.