O grupo de hackers iraniano Nimbus Manticore foi associado a duas famílias de malware até então não documentadas, o que evidencia a evolução contínua de seu conjunto de ferramentas e, possivelmente, amplia seu alcance para infectar sistemas Linux e Apple macOS com trojans de acesso remoto multiplataforma desenvolvidos em Node.js e JavaScript.
A empresa russa de cibersegurança Kaspersky monitora essas amostras pelos nomes NodeRabbit e PollCat. A primeira amostra do NodeRabbit foi descoberta em um sistema no Afeganistão, e depois houve registros em duas máquinas distintas localizadas no Egito e na Etiópia.
“Seus operadores entregam o [NodeRabbit] por meio de mensagens de spear phishing no LinkedIn e em outras plataformas de busca de emprego, com arquivos de desafios de programação adulterados”, disse o pesquisador de segurança da Kaspersky Omar Amin. “Assim como o NodeRabbit, o PollCat é um RAT multiplataforma, mas escrito em JavaScript ofuscado e também distribuído por meio de arquivos de desafios de programação adulterados.”
Embora o Nimbus Manticore tenha usado historicamente malware escrito em C, C++ e Go, além de recorrer a técnicas de sequestro da ordem de busca de DLL para implantá-los, as descobertas mais recentes mostram a investida do threat actor em ferramentas multiplataforma para atingir seus objetivos.
A evolução ocorre em meio à rápida expansão do arsenal de malware do grupo nos últimos meses, incluindo:
- Um backdoor para Windows chamado NightLedger
- Dois tunelizadores WebSocket personalizados, BridgeHead e ArcBridge
- Uma ferramenta de tunelamento SSH reverso
- Um backdoor com sobreposições em comum com TWOSTROKE
O ponto de partida da atividade suspeita observada no sistema no Afeganistão é um arquivo ZIP, “Front-Technical-Challenge.zip”, hospedado na AWS e considerado parte de uma proposta de emprego para uma vaga de engenharia. O threat actor teria se passado por um especialista em recrutamento de uma grande empresa de tecnologia para abordar um engenheiro de software e convidá-lo a concluir uma tarefa técnica.
Vale destacar que o Nimbus Manticore também é acompanhado sob o nome Iranian Dream Job pelo uso de iscas com temática de recrutamento para induzir vítimas em potencial a infectar os próprios computadores, uma tática já explorada há muito tempo pelo Lazarus Group, ligado à Coreia do Norte.
O arquivo contém o código-fonte de uma ferramenta de gestão de projetos chamada Taskflow e orienta os candidatos a “encontrar e corrigir todos os bugs no código do frontend” como parte de um “desafio de engenharia” em até três horas e sem recorrer a ferramentas assistidas por IA.
As instruções pedem especificamente que os candidatos não alterem o componente de servidor da aplicação (“server.js”), sob a alegação de que ele está “sem bugs e funciona corretamente”. No entanto, é nesse arquivo que o código malicioso está embutido.
“A primeira linha de server.js importava um pacote npm adulterado chamado colorized_terminal, versão 2.1.0”, disse a Kaspersky. “Os atacantes incluíram o pacote diretamente no diretório node_modules do arquivo do desafio, em vez de publicá-lo no registro npm. Quando importado, o pacote iniciava silenciosamente um implant de node_modules/.cache/.320697f1/index.js como um processo em segundo plano desacoplado.”
O implant em questão é o NodeRabbit, que se comunica com um de três endereços de command and control (C2) hospedados na Azure, “plugplay.azurewebsites[.]net”, “rgbteller.azurewebsites[.]net” e “wslwebui.azurewebsites[.]net”, por meio de três endpoints de API distintos:
- /api/rabbit/checkin, para registrar informações do agente e do host
- /api/rabbit/task, para consultar comandos
- /api/rabbit/result, para enviar resultados das tarefas
O malware suporta 11 comandos que permitem coletar detalhes do host, listar processos em execução, executar comandos de shell arbitrários, enumerar diretórios, ler um arquivo em partes e devolver dados codificados em Base64, decodificar texto em Base64 e gravá-lo em um local escolhido do arquivo, excluir um arquivo ou apagar recursivamente um diretório, criar diretórios de forma recursiva, enumerar adaptadores, endereços MAC, endereços IP e configurações de DNS, além de alterar o intervalo do beacon.
Outra capacidade relevante do NodeRabbit é gravar um script Node.js codificado em Base64 em um arquivo “.tmp” com nome aleatório, executá-lo e, em seguida, apagá-lo para ocultar vestígios da atividade maliciosa.
A Kaspersky disse ter identificado mais duas variantes do NodeRabbit com a mesma linhagem de código, ambas recuperadas do Egito e da Etiópia:
- Uma segunda variante que usa um pacote npm adulterado diferente, chamado pretty-log, versão 2.1.0, no lugar de colorized_terminal, além de encerrar a execução caso perceba que está em um ambiente de análise e implementar parcialmente suporte a proxy corporativo
- Uma terceira variante, também iniciada com o pacote npm pretty-log, mas que usa um conjunto diferente de endpoints de API para executar as mesmas tarefas:
- /sdk/v2/ready
- /sdk/v2/config
- /sdk/v2/events
A persistência é obtida de acordo com o sistema operacional: uma chave Run no Registro do Windows, no Windows; uma entrada cron no Linux; e um launch agent no macOS. O mecanismo de persistência imita uma atualização do navegador Microsoft Edge, na primeira variante, ou o Intel Driver & Support Assistant, na segunda.
A terceira variante, por sua vez, não se passa por nenhum software legítimo, mas também leva em conta o Windows Subsystem for Linux (WSL) para criar uma tarefa diária do Windows às 10h que inicia um arquivo Visual Basic Script por meio de wscript.exe e “wsl.exe”. Além disso, ela traz 12 novos comandos para:
- Enumerar letras de unidades do Windows acessíveis ou unidades montadas no WSL
- Executar um processo
- Encerrar um processo por PID ou nome da imagem
- Substituir o servidor de C2 ativo e tentar manter a nova configuração
- Retornar o servidor de C2 atual
- Coletar endereços de contas a partir de artefatos OST e PST do Outlook
- Tentar instalar uma falsa extensão do VS Code chamada “GitHub Copilot Helper” e um valor Run do Windows para aumentar a persistência
- Verificar indicadores de persistência selecionados do VS Code, de tarefas agendadas e da chave Run
- Remover a falsa extensão
- Procurar repositórios Git em locais recentes e comuns de desenvolvimento
- Injetar um carregador nos hooks Git de um repositório para aumentar a persistência
- Remover o carregador marcado nos hooks Git
Também foi observado o uso pelo Nimbus Manticore de iscas com desafios de programação, como “RankChallenge-react-6uJSX3-main.zip”, distribuídas por avaliações de desenvolvedor com tempo limitado para entregar o PollCat.
“Embora o exercício visível não seja um CTF de segurança, o projeto usa a terminologia de CTF em vários pontos”, disse a Kaspersky. “O pacote raiz se chama ctf-server, o backend exibe ‘CTF server running’, o frontend usa várias chaves de armazenamento ctf-* e o tutorial faz referência a path/to/ctf.”
“Esses rótulos repetidos, somados a instruções que não correspondem totalmente à aplicação entregue, são compatíveis com um projeto gerado por IA ou por modelo. Uma possível explicação é que o atacante tenha solicitado a um assistente de codificação com IA a criação de uma plataforma React no estilo CTF e depois inserido os componentes maliciosos.”
Um tutorial em PDF presente no arquivo orienta a vítima a clicar em Continuar, inserir uma senha de uso único de seis dígitos fornecida pelo atacante, atualizada a cada 30 segundos, e concluir o desafio dentro de uma sessão de uma hora. O cronograma comprimido para ativar a avaliação provavelmente busca criar uma falsa sensação de urgência e fazer com que a vítima execute o projeto o quanto antes, aumentando a chance de infecção.
Apesar da janela de uma hora, o PollCat opera de forma independente do processo de autenticação por OTP, sem ser afetado pelo sucesso ou pela falha da validação. Uma validação malsucedida impede o acesso às funções protegidas do desafio, enquanto uma validação bem-sucedida emite um JWT e inicia uma instância adicional do PollCat.
Para persistência, o malware cria uma tarefa agendada diária no Windows, Linux ou macOS e então se conecta a um servidor de C2 para enviar informações básicas do host e aguardar novas instruções. Ele suporta 22 comandos e se comunica por meio de sete endpoints de API:
- /beacon, para registrar o cliente e obter um socketId
- /gate/hello, para enviar informações de host, usuário, domínio, sistema operacional e nível atual de privilégio
- /gate/fetch?token=<socketId>, para consultar comandos
- /gate/submit, para enviar uma estrutura codificada em Base64 com o resultado do comando
- /vault/<uuid>, para buscar um arquivo hospedado e gravá-lo na máquina da vítima
- /vault/push, para enviar um arquivo local ou um trecho de arquivo ao C2
- /gate/track, para relatar o progresso do envio de fragmentos
Os comandos cobrem o conjunto típico de um backdoor, permitindo ao operador realizar operações com arquivos, executar comandos de shell, fazer upload e download de arquivos, executar JavaScript, carregar DLLs, criar ou extrair um arquivo ZIP e enumerar processos em execução, unidades, volumes ou pontos de montagem. Três comandos, WS_DOWNLOAD, REQUEST_ELEVATION e PERSIST, ainda não foram implementados.
O PollCat também procura pastas que correspondam a 24 strings hardcoded associadas a fornecedores de software e segurança, incluindo Google, Microsoft, Palo Alto Networks, Cisco, VMware, Fortinet, Citrix, Check Point, Juniper Networks, LogMeIn, Sophos, Symantec, Trend Micro, McAfee, Kaspersky Lab, ESET, Bitdefender, Avast, CrowdStrike, SentinelOne, Malwarebytes, Brave, Tencent e Naver.
Quando encontra uma pasta correspondente, o malware faz o inventário do conteúdo raiz da pasta, mas não examina recursivamente o diretório do produto. Os resultados são então transmitidos em formato JSON para o endpoint “/api/system-details/result”.
Os vínculos da atividade com o Nimbus Manticore decorrem das semelhanças estruturais, de busca de comandos, de temporização do beacon e do conjunto de comandos entre o PollCat e o MiniFast, também chamado MiniUpdate ou Retrograde, um backdoor anteriormente atribuído ao grupo, além do uso de domínios apoiados por Azure Websites e Cloudflare para C2.
“A mudança para scripting multiplataforma dá aos operadores uma única base de código que funciona em Windows, Linux e macOS, com payloads que se misturam naturalmente às estações de trabalho de desenvolvedores”, disse a Kaspersky. “O mecanismo de entrega, porém, continua consistente com o histórico operacional do Mirage Kitten: o uso de personas de recrutador no LinkedIn para atingir setores críticos no Oriente Médio e na África com fins de espionagem cibernética.”
Publicidade
Vibecoding cria 10x mais sistemas, 20x mais vulneráveis. E quem ganha com isso é a galera do hacking ético e pentest. Quer ser pago para invadir sistemas? Então você tem que aprender com a Solyd que são os melhores do Brasil. Saiba mais...