A Microsoft identificou o NeedyMantis em intrusões direcionadas contra operadoras de telecomunicações, universidades, organizações médicas sem fins lucrativos, organismos intergovernamentais e contratantes de governo, com atividade registrada desde pelo menos outubro de 2025. Trata-se de uma família modular de malware pós-comprometimento: ela não entrega o acesso inicial, mas é implantada depois que o invasor já conquistou posição na rede, para sustentar esse acesso por longo prazo e apoiar operações seguintes. A ação prioritária para a equipe defensiva é revisar hosts com sinais de pós-comprometimento — DLLs inesperadas em pastas de software legítimo, mutexes no padrão usuário-processo e conexões WebSocket anômalas na porta 443 — em vez de caçar um vetor de entrada que pode ter sido qualquer um.

O que é o NeedyMantis

Segundo o relatório técnico da Microsoft, o NeedyMantis é escrito em C++ com shellcode x64 e combina múltiplos carregadores, arquivos de configuração em formato próprio, criptografia personalizada e componentes modulares carregados sob demanda. A Microsoft associou o operador observado, designado Storm-3069, à atividade ligada ao comprometimento da cadeia de suprimentos do DAEMON Tools investigado pela Kaspersky, e avalia que a origem está alinhada a atores que operam a partir da China, sem atribuir o caso a um ator estatal específico. O recorte de vítimas e a implantação seletiva indicam operação de espionagem direcionada, e não campanha de massa.

O componente principal tem poucos comandos próprios: enviar nome do computador e do usuário, manter a conexão viva e responder a ordens de carregar (1020) e descarregar (1030) módulos externos. São esses módulos que entregariam as capacidades reais da operação — e a Microsoft ressalta que elas permanecem sem confirmação, o que torna os indicadores de comportamento mais confiáveis do que qualquer suposição sobre funcionalidade futura do implant.

Como o carregamento acontece

O NeedyMantis disfarça seu carregador como uma DLL necessária ao funcionamento do programa legítimo e se instala por DLL sideloading: o binário original, sem modificação, carrega a DLL maliciosa que assume o lugar do componente de atualização ou de rede. Entre os programas abusados estão o editor de traduções Poedit, o utilitário curl, o editor Vim e o TightVNC, além de componentes que imitam DLLs da Microsoft, Broadcom, Intel e NVIDIA. Em um incidente observado, o operador usou o toolkit Impacket, em atividade hands-on-keyboard, para copiar o software legítimo, a DLL maliciosa e o arquivo de dados de um compartilhamento de rede e executá-los no host-alvo.

O carregador de primeiro estágio extrai o segundo estágio de um arquivo sem extensão, em formato de arquivo próprio, decodificado por XOR e descomprimido com a API RtlDecompressBuffer. No exemplo analisado, o segundo estágio chamava-se encryptbase64.ps1 — apesar da extensão PowerShell, continha shellcode x64. O componente principal cria um mutex no formato usuário-processo, como Contoso-Poedit.exe, para evitar instâncias duplicadas, e conversa com o servidor de comando por WebSocket.

Persistência e canal cifrado

A comunicação começa com um HTTPS GET cujo cabeçalho Set-Cookie carrega informações do sistema comprimidas — nome do computador, usuário, lista de processos e arquivos em Program Files — e depois migra para um protocolo binário sobre WebSocket, com cabeçalho de 44 bytes, chave XOR de 16 bytes, compressão e criptografia RC4 negociada no primeiro contato com o servidor. A biblioteca de comunicação, disfarçada de ws2_32.dll, usa o user-agent obsoleto firefox/21.0, um detalhe que facilita a busca em proxies e logs de tráfego. Uma versão mais antiga do malware incluía um módulo de persistência dedicado, baseado em serviços do Windows, além do componente principal.

O desenho lembra o de outros carregadores recentes que usam binários legítimos e componentes assinados para atravessar controles de execução — o Rapuncel, por exemplo, abusava de driver assinado para desativar EDR antes de roubar credenciais. A diferença do NeedyMantis é o objetivo: menos exfiltração imediata, mais residência silenciosa.

A rota do DAEMON Tools

O NeedyMantis veio à luz por um pivô sobre o comprometimento do DAEMON Tools relatado pela Kaspersky. A análise da Kaspersky descreve instaladores do DAEMON Tools trojanizados nas versões 12.5.0.2421 a 12.5.0.2434, distribuídos pelo site oficial e assinados com certificados do próprio fabricante, com a trojanização iniciada em 8 de abril de 2026. O ataque permaneceu sem detecção por cerca de um mês. Milhares de tentativas de infecção foram observadas em mais de 100 países, mas payloads de segundo estágio chegaram a apenas cerca de uma dúzia de máquinas — um recorte que confirma triagem manual e implantação seletiva, típica de espionagem.

O fornecedor reconheceu o problema após a divulgação e publicou a versão 12.6.0.2445, sem o comportamento malicioso. Para redes com versões antigas instaladas, o histórico importa: o backdoor ativava junto aos binários legítimos do produto na inicialização do sistema e usava um domínio que imitava o site oficial de download. O episódio reforça a leitura de que o acesso inicial virou insumo negociável — tema também visível no mercado de acessos a firewalls descrito no caso FortiBleed — e que o software confiável virou a ponte preferida para a residência.

Sinais para procurar

A caça não depende de antivírus: os indicadores são estruturais e aparecem em logs que a maioria das redes já coleta. A tabela abaixo resume o conjunto mínimo de busca.

Sinal Onde procurar Interpretação
WinSparkle.dll em pasta do Poedit %ProgramFiles%\Poedit Carregador de primeiro estágio disfarçado
libcurl.dll em USOShared %ProgramData%\USOShared Variante antiga do carregador
vim64.dll em VIM ou TightVNC %ProgramData%\VIM e %ProgramData%\TightVNC\VIM Arquivo de dados do malware
dbghelp.dll, jli.dll ou nvml.dll fora de contexto %ProgramData%\office, broadcom, Intel, ics Mascaramento de componente de fabricante
Mutex no padrão usuário-processo Ex.: Contoso-Poedit.exe Instância ativa do componente principal
User-agent firefox/21.0 Logs de proxy e NDR Canal WebSocket do NeedyMantis
Conexões a corp.tripswithengine[.]com Egress, DNS e firewall Servidor de comando confirmado

Qualquer um desses sinais isolado merece confirmação; dois ou mais no mesmo host devem ser tratados como comprometimento com operador humano presente, porque o relatório documenta atividade hands-on-keyboard com Impacket após a implantação.

Ações prioritárias

P1 — caçar e conter. Execute busca retroativa nos logs de rede e de endpoint desde outubro de 2025 pelo user-agent firefox/21.0, pelos caminhos de DLL da tabela e pelo domínio de comando; bloqueie o domínio no egress e nos resolvedores; ative as regras de redução de superfície de ataque recomendadas pela Microsoft contra scripts ofuscados e executáveis sem critério de prevalência, idade ou confiança; rode o EDR em modo de bloqueio para remediar artefatos pós-invasão mesmo quando o antivírus primário não detecta a ameaça.

P2 — reduzir a superfície de residência. Faça inventário do software cujas DLLs são propensas a sideloading, como WinSparkle e libcurl, e restrinja escrita e execução em ProgramData; audite o uso legítimo de Impacket na rede; remova versões do DAEMON Tools anteriores à 12.6.0.2445; e trate qualquer confirmação do NeedyMantis como incidente completo, com revisão de contas, movimentação lateral e persistência em serviços do Windows, não como detecção de malware isolada.

Fontes