A Malwarebytes identificou o Kothamine Agent, um agente de acesso remoto ainda não documentado, com mais de 30 comandos, que entrega a invasores controle prático de estações Windows: execução de comandos, leitura e alteração de arquivos e carregamento de novas capacidades em DLLs. A distribuição está ligada a pacotes npm maliciosos, o que coloca desenvolvedores e equipes de engenharia diretamente no caminho da infecção. A ação prioritária é dupla: auditar instalações recentes de pacotes npm pouco conhecidos nas máquinas de desenvolvimento e procurar artefatos típicos da campanha, como a pasta TailscalePortable no perfil do usuário, a tarefa agendada MicrosoftEdgeUpdateTask e exclusões novas no Windows Defender.

O que é o Kothamine

O Kothamine é escrito em C e C++ e, na maioria das amostras analisadas, funciona como um injetor acompanhado de uma DLL com o agente. O injetor copia a si mesmo para o perfil do usuário com nomes que imitam componentes de atualização da Microsoft, extrai a DLL e injeta o código no explorer.exe, processo sempre presente e raramente encarado como suspeito. Um mutex chamado Local\KothamineAgentInstance impede execuções duplicadas na mesma máquina.

As builds variam em capacidade. Algumas incluem comandos de roubo de dados — cookies de navegadores, arquivos JSON ligados a jogos como Steam e Minecraft, capturas de tela, transmissão da tela em tempo real e gravação por câmera e microfone — além de um bypass de Controle de Conta de Usuário acionado pelo fodhelper.exe. Versões mais antigas, recuperadas em uploads ao VirusTotal, usavam a VPN do Tailscale como canal de comunicação, com strings em texto claro e binários baixados do site oficial ou de um repositório no GitHub. As recentes criptografam as strings com chaves XOR distintas e trocaram a VPN pelo tailcat, transportado dentro dos próprios recursos do agente.

Nesse perfil, o Kothamine integra a leva de malware voltado a credenciais e sessões, ao lado de ferramentas como o Remus, infostealer herdeiro do Lumma. O diferencial operacional é o transporte: o canal de comando não depende de um domínio fixo nem de uma conta que possa ser suspensa após denúncia.

Como o C2 fica invisível

A marca da campanha não é a sofisticação do código, e sim a escolha do transporte. O tailcat é um projeto open-source lançado pela própria Tailscale como uma espécie de netcat sobre o plano de dados do produto: criptografia WireGuard, travessia de NAT e relés DERP, sem contas, sem endereços IP e sem plano de controle. A Tailscale apresenta a ferramenta para conexões curtas entre máquinas — acesso remoto temporário, transferência pontual de arquivos, sessões de CI — sem registro, sem identidade declarada e sem governança central. São exatamente as propriedades que a tornam útil para malware: o acesso depende apenas da posse de um endereço tailcat e das chaves públicas que identificam os nós conectados.

No host infectado, o agente extrai o tailcat dos próprios recursos, grava tailcat.exe em uma pasta TailscalePortable dentro do perfil do usuário e o executa em modo de encaminhamento, publicando uma porta local — 18080 na amostra analisada — que direciona o tráfego para a porta 4444 do nó do operador. O agente conversa com 127.0.0.1:18080 por funções de socket padrão, troca mensagens cifradas em AES-GCM e envia keep-alives periódicos enquanto aguarda ordens.

Do ponto de vista da rede corporativa, o tráfego sai como conexões legítimas do tailcat: UDP WireGuard quando o furo de NAT funciona e TCP para relés DERP quando não funciona. Não há payload inspecionável, não há domínio de comando e controle para bloquear no proxy e não há lista clássica de indicadores de rede para alimentar o firewall. Os relés hospedados pela Tailscale registram metadados, o que impede anonimato absoluto, mas isso não gera bloqueio prático, porque a mesma infraestrutura serve clientes honestos. O relatório técnico da Malwarebytes, publicado em 25 de setembro, registra ainda que uploads ao VirusTotal e commits no GitHub sugerem desenvolvimento ou distribuição desde julho, e que três pacotes npm publicados pelo mesmo desenvolvedor já foram removidos do registro.

Persistência e silenciamento

Antes de qualquer comando remoto, o injetor adiciona exclusões ao Windows Defender por meio do PowerShell, cobrindo a área de trabalho do usuário, os binários disfarçados de atualização do Edge e o processo ativo, para que varreduras locais ignorem os arquivos da campanha. A persistência vem de um script up.ps1 criado na pasta temporária, que registra a tarefa agendada MicrosoftEdgeUpdateTask para executar o injetor a cada logon, com nível de execução limitado — o bastante para manter o acesso sem pedir elevação. Nas builds que elevam privilégios, um script elevated.ps1 acionado pelo fodhelper.exe inicia a conexão sem mostrar prompt ao usuário.

O efeito combinado é um agente que sobrevive a reinicializações, escapa do antivírus local por política, e não por furtividade de arquivo, e mantém o processo principal escondido na memória do explorer.exe. A cadeia segue a mesma lógica de outras campanhas em curso, como o falso CAPTCHA que instala stealer com driver vulnerável: o ambiente é acalmado primeiro, e a carga final chega depois, já sem oposição local.

Para equipes de resposta, a consequência direta é que a ausência de alerta do antivírus não equivale à ausência de comprometimento. A investigação precisa partir de artefatos do host — arquivos, tarefas, exclusões e processos — e não apenas de telemetria de rede.

Sinais de comprometimento

A caça ao Kothamine gira em torno de poucos artefatos de alto valor, todos verificáveis com ferramentas que a maioria das equipes já possui. A tabela resume o que procurar, onde e com que urgência.

Indicador Onde procurar Prioridade
MicrosoftEdgeUpdateCore.exe e.dll na pasta Roaming do perfil Varredura de endpoints P1
Pasta TailscalePortable com tailcat.exe no perfil do usuário Varredura e inventário de software P1
Tarefa agendada MicrosoftEdgeUpdateTask com gatilho de logon Consulta de tarefas e política de auditoria P1
Chamadas a Add-MpPreference fora de fluxos aprovados Logs de PowerShell e eventos do Defender P1
Mutex Local\KothamineAgentInstance Análise de processos em memória P2
Conexões para 127.0.0.1 em porta alta iniciadas por processo do perfil Telemetria que liga processo e rede P2
Hashes SHA-256 do injetor e do agente divulgados pela Malwarebytes Varredura retroativa de 90 dias P1

Os dois hashes SHA-256 divulgados no relatório cobrem o injetor e o agente analisados. Como as builds variam, a busca por hash precisa ser complementada pelos indicadores comportamentais, e não substituída por eles.

Ações prioritárias

P1, ainda esta semana: rode a busca pelos indicadores da tabela em todas as estações de desenvolvimento, com janela retroativa mínima de 90 dias. Alerte sobre qualquer uso de Add-MpPreference fora dos fluxos de administração aprovados: a modificação de exclusões do antivírus por processos do usuário é o sinal mais precoce desta cadeia. Revise os pacotes npm instalados recentemente nas máquinas de engenharia, priorizando pacotes novos, com pouco histórico de downloads e mantenedores sem repositório verificável — o pacote dotnet-runtime-base citado no relatório já saiu do registro, mas o mesmo desenvolvedor publicou outros. E bloqueie, por controle de aplicativos, a execução de binários gravados em pastas de perfil do usuário.

P2, ao longo do trimestre: leve o tráfego de saída do tailcat e do Tailscale à visibilidade do proxy, ainda que o conteúdo não seja inspecionável — a meta é contexto, não bloqueio. Registre a linha de comando completa dos processos do usuário e a criação de tarefas agendadas como eventos duráveis no SIEM. Inclua a revisão de tarefas e de exclusões de antivírus no runbook padrão de resposta a incidentes, porque ambos sobrevivem à remoção do binário original.

Fontes

Os indicadores, comandos e hashes citados neste artigo provêm do relatório técnico da Malwarebytes de 25 de setembro de 2026; as propriedades do tailcat foram verificadas na publicação oficial da Tailscale.