🔍 Contexte

Publié le 1er octobre 2026 sur le blog Sucuri, cet article présente une analyse technique approfondie d’une compromission WordPress persistante, baptisée famille SC (d’après les marqueurs SC_ dans le code injecté). L’analyse est issue de travaux de nettoyage de sites web réels.

🧩 Architecture de persistance circulaire

Le malware SC se distingue par sa capacité à survivre à toute suppression partielle grâce à 8 composants redondants qui se régénèrent mutuellement :

  • .user.ini : définit auto_prepend_file pour exécuter un loader avant chaque requête PHP
  • Shim PHP (wp-content/c1b12371.php) : inclut le fichier caché si présent
  • Loader à table de chaînes (wp-content/.c1b12371.php) : reconstruit le mu-plugin depuis 3 sources
  • Drop-in db.php : contient le payload complet en blob gzip+base64, redéploie le plugin si absent
  • Drop-in advanced-cache.php : reconstruit le plugin depuis 5 sources indépendantes (mu-plugin, plugin, mémoire partagée SysV, ZIP, base de données)
  • Injection dans functions.php du thème actif : jumeau du drop-in db.php
  • Backdoor en mu-plugin (wp-content/mu-plugins/hyper-engine-kit.php) : payload principal
  • Copie en plugin normal (wp-content/plugins/hyper-engine-kit/hyper-engine-kit.php) : redondance

💾 Persistance hors fichiers

Trois vecteurs de persistance non-fichiers ont été identifiés :

  • Base de données : payload stocké dans une option WordPress sous nom aléatoire (gzip+base64)
  • Mémoire partagée System V : segment identifié par une clé numérique fixe, survit aux suppressions de fichiers et de BDD, potentiellement partagé entre comptes
  • Tâches planifiées : hooks cron enregistrés (noms aléatoires + hook fetch connu) pour redéploiement périodique
  • Triggers de base de données : recréent un administrateur à chaque insertion dans la table users

⚙️ Capacités de la backdoor

  • Auto-dissimulation : filtre la liste des plugins, les vues admin, les mises à jour ; injection JS pour effacer l’entrée du tableau
  • C2 via blockchain : utilise ~20 passerelles RPC Ethereum publiques et des sélecteurs de méthodes de smart contracts pour recevoir des instructions
  • Fingerprinting et exfiltration : collecte URL, versions WordPress/plugins, hashes de chemins, thèmes actifs, tokens de session administrateur, chiffre et envoie le tout au C2
  • Injection de JavaScript : peut activer du skimming de paiement sur les boutiques en ligne
  • Gestion de plugins de sécurité : peut désactiver, supprimer des plugins de sécurité et élever des comptes
  • Administrateur caché : crée ou adopte un compte admin invisible, forge des cookies d’authentification valides
  • Beacon : paramètre magique de requête permettant de vérifier la présence du malware
  • Reconstruction complète : hooks sur de nombreuses actions/filtres WordPress pour réécrire tous les composants

🔎 Indicateurs de compromission notables

  • Blocs PHP dans db.php ou advanced-cache.php avec marqueurs SC_
  • Bloc délimité en bas de functions.php du thème actif
  • Directive auto_prepend_file pointant vers un fichier PHP à préfixe point
  • Faux plugin présent dans mu-plugins ET plugins avec page de paramètres factice
  • Bundle ZIP de restauration avec nom hexadécimal aléatoire
  • Option WordPress avec blob gzip+base64 de grande taille, préfixes sc_
  • Segment de mémoire partagée contenant du PHP
  • Administrateur privilégié absent de la liste des utilisateurs
  • Requêtes sortantes vers des passerelles RPC Ethereum publiques

📄 Nature de l’article

Il s’agit d’une analyse technique détaillée publiée par Sucuri, visant à documenter le fonctionnement interne de la famille SC, ses mécanismes de persistance multi-couches et la procédure de nettoyage ordonnée nécessaire pour l’éradiquer complètement.

🧠 TTPs et IOCs détectés

TTP

  • T1505.001 — Server Software Component: SQL Stored Procedures (Persistence)
  • T1505.004 — Server Software Component: IIS Components (Persistence)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1027.002 — Obfuscated Files or Information: Software Packing (Defense Evasion)
  • T1053.005 — Scheduled Task/Job: Scheduled Task (Persistence)
  • T1564.001 — Hide Artifacts: Hidden Files and Directories (Defense Evasion)
  • T1564.003 — Hide Artifacts: Hidden Window (Defense Evasion)
  • T1136.001 — Create Account: Local Account (Persistence)
  • T1078.003 — Valid Accounts: Local Accounts (Defense Evasion)
  • T1071 — Application Layer Protocol (Command and Control)
  • T1102 — Web Service (Command and Control)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1539 — Steal Web Session Cookie (Credential Access)
  • T1112 — Modify Registry (Defense Evasion)
  • T1176 — Browser Extensions (Persistence)
  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1562.001 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
  • T1608.001 — Stage Capabilities: Upload Malware (Resource Development)

IOC

  • Fichiers : c1b12371.php
  • Fichiers : .c1b12371.php
  • Fichiers : db.php
  • Fichiers : advanced-cache.php
  • Fichiers : hyper-engine-kit.php
  • Chemins : wp-content/c1b12371.php
  • Chemins : wp-content/.c1b12371.php
  • Chemins : wp-content/db.php
  • Chemins : wp-content/advanced-cache.php
  • Chemins : wp-content/themes/khorshidi/functions.php
  • Chemins : wp-content/mu-plugins/hyper-engine-kit.php
  • Chemins : wp-content/plugins/hyper-engine-kit/hyper-engine-kit.php

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 1 octobre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.

Malware / Outils

  • SC malware family (backdoor)

🟡 Indice de vérification factuelle : 40/100 (moyenne)

  • ⬜ blog.sucuri.net — source non référencée (0pts)
  • ✅ 15647 chars — texte complet (15pts)
  • ✅ 12 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 18 TTPs MITRE identifiées (15pts)
  • ⬜ date RSS ou approximée (0pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://blog.sucuri.net/2026/09/sc-wordpress-malware-a-self-healing-mesh-of-loaders-drop-ins-and-a-blockchain-controlled-backdoor.html

🖴 Archive : https://web.archive.org/web/20261001071835/https://blog.sucuri.net/2026/09/sc-wordpress-malware-a-self-healing-mesh-of-loaders-drop-ins-and-a-blockchain-controlled-backdoor.html