ClickFix ao MaaS: Dentro de um RAT Modular para Windows e Seu Painel de Controle
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O Netskope Threat Labs observou uma campanha ClickFix entregando um RAT personalizado para Windows construído em Node.js via instaladores MSI maliciosos. A carga útil mantém módulos-chave na memória e usa streaming gRPC sobre Tor para C2. Um erro de OPSEC expôs o protocolo do painel de administração, apontando para um modelo de malware-como-serviço com rastreamento de carteira. A persistência é configurada via um valor de execução HKCU em nível de usuário.
Investigação
Os pesquisadores capturaram o MSI, decodificaram o bootstrap em PowerShell e rastrearam o carregamento dinâmico de módulos Node.js. Eles extraíram e descriptografaram o blob de configuração para recuperar um endereço C2 .onion. Um arquivo admin.proto vazado revelou funções MaaS como gerenciamento multi-operador e monitoramento de carteira, e os analistas notaram um watchdog auto-recuperador além do uso de Tor para tráfego anonimizado.
Mitigação
Bloqueie a execução de MSI não assinados de fontes não confiáveis e monitore HKCU…Run para novas entradas suspeitas. Detecte PowerShell que faça download de cargas MSI de domínios como cloud-verificate.com. Alerta sobre conhost.exe ou node.exe lançados com argumentos ocultos e sobre tor.exe surgindo em endpoints que não o exigem.
Resposta
Isole hosts afetados, colete a memória para análise de módulos na memória e remova a persistência do HKCU Run. Revise %LOCALAPPDATA%LogicOptimizer para artefatos de preparação e qualquer atividade agendada de tor.exe, depois bloqueie o endpoint onion e domínios/IPs relacionados. Busque em toda a empresa pelos mesmos artefatos de instalador e cadeias de processos.
Fluxo de Ataque
Detecções
Executável NodeJS a partir de Localização Incomum (via linha de comando)
Visualizar
Pontos Possíveis de Persistência [ASEPs – Software/NTUSER Hive] (via evento de registro)
Visualizar
Download ou Upload via PowerShell (via linha de comando)
Visualizar
LOLBAS Conhost (via linha de comando)
Visualizar
MsiExec Iniciado por Processo de Shell (via linha de comando)
Visualizar
Tentativas de Comunicação com Domínios de Verificação de IP Possíveis (via DNS)
Visualizar
Possíveis Ferramentas de Rede Tor (via linha de comando)
Visualizar
Detecção de Execução do Conhost para Iniciar Nó para Script Bootstrap [Criação de Processo Windows]
Visualizar
Execução de Comando PowerShell Malicioso para Download e Instalação de MSI [PowerShell Windows]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação Prévia de Telemetria & Base de Referência deve ter sido aprovada.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visar a geração da telemetria exata esperada pela lógica de detecção.
-
Narrativa & Comandos do Ataque:
- Objetivo: O atacante deseja iniciar uma carga maliciosa Node.js (
bootstrap.js) sem levantar suspeitas. - Método: Use um binário assinado do Windows (
conhost.exe) como um proxy para lançarnode.exeem modo sem cabeça, passando o script bootstrap como um argumento. - Etapas:
- Soltar um malicioso
bootstrap.jsem um diretório gravável (por exemplo,%TEMP%). - Invoque
conhost.execom a string de argumento exata que a regra está vigiando. - O comando é executado sob o contexto do usuário atual, imitando uma reprodução legítima de processo.
- Soltar um malicioso
# 1. Soltar bootstrap.js malicioso (conteúdo inofensivo simulado para teste) $bootstrapPath = "$env:TEMPbootstrap.js" Set-Content -Path $bootstrapPath -Value "// espaço reservado para bootstrap malicioso" # 2. Execute conhost.exe para iniciar node.exe com as flags requeridas $conhost = "$env:windirsystem32conhost.exe" $args = '--headless "node.exe" "bootstrap.js"' Start-Process -FilePath $conhost -ArgumentList $args -WorkingDirectory $env:TEMP - Objetivo: O atacante deseja iniciar uma carga maliciosa Node.js (
-
Script de Teste de Regressão:
# ------------------------------------------------- # Teste de Regressão: Trigar Conhost → Bootstrap de Nó # ------------------------------------------------- # Certifique-se de que o Sysmon está em execução e registrando eventos ProcessCreate. # Solte um script bootstrap fictício $bootstrap = "$env:TEMPbootstrap.js" Set-Content -Path $bootstrap -Value "// conteúdo de teste do bootstrap" # Defina a linha de comando exata que a regra de detecção procura $conhostPath = "$env:windirsystem32conhost.exe" $cmdLine = '--headless "node.exe" "bootstrap.js"' # Inicie conhost com os argumentos que parecem maliciosos Start-Process -FilePath $conhostPath -ArgumentList $cmdLine -WorkingDirectory $env:TEMP Write-Host "Simulação concluída – verifique o SIEM para alerta." -
Comandos de Limpeza:
# Pare todos os processos de node ou conhost remanescentes iniciados pelo teste Get-Process -Name node, conhost -ErrorAction SilentlyContinue | Stop-Process -Force # Remova o script temporário bootstrap Remove-Item -Path "$env:TEMPbootstrap.js" -Force -ErrorAction SilentlyContinue Write-Host "Limpeza concluída."