🔍 Contexte

Publié le 26 octobre 2026 par Dream Research (source : dreamgroup.com), cet article détaille la découverte d’une campagne d’attaque sophistiquée identifiée le 25 octobre 2026 via l’outil de threat hunting autonome Hero. La campagne a compromis 25 serveurs dans plusieurs pays, dont des systèmes affiliés au gouvernement américain.

🎯 Vecteur d’attaque et vulnérabilités

L’attaquant a développé une chaîne d’exploitation combinant deux vulnérabilités :

  • CVE-2026-109618 / CVE-2026-109619 (PHP2Shell) : exploitation du mécanisme session.upload_progress de PHP 8.0.30 sur le serveur de gestion appweb d’un pare-feu (vendeur non divulgué). L’attaque se déroule en 4 étapes orchestrées (épuisement mémoire ~383 Mo, fuite d’information via OOM, référence stale ~500 Mo, exécution de code via HashTable forgé) aboutissant à une RCE en tant qu’utilisateur nobody.
  • CVE-2026-46300 (Fragnesia) : LPE kernel via le sous-système XFRM ESP-in-TCP, permettant d’écraser /etc/pam.d/su avec pam_permit.so via des écritures page-cache, contournant SELinux pour obtenir un accès root complet.

La chaîne complète s’exécute en moins de 15 minutes via une seule requête HTTPS non authentifiée.

📊 Déroulement de la campagne (8 octobre – 24 octobre 2026)

  1. Découverte globale : ~19 000 pare-feux exposés identifiés via FOFA
  2. Fingerprinting de version : ~5 000 appareils actifs identifiés (200 threads concurrents)
  3. Filtrage géographique et version : 240 cibles retenues (US, Japon, Taïwan, Corée du Sud, PHP 8.0.30)
  4. Exploitation automatisée : 24 serveurs rootés (batch de 5 cibles, timeout 30 min), webshell PHP 103 octets planté
  5. Triage : 22 serveurs « parqués », 2 serveurs gouvernementaux US priorisés
  6. Pivot réseau : tunnel SSH reverse 8 ports (LDAP, LDAPS, RDP, SOCKS5), persistance via systemd et rc.local
  7. Exploitation interne : serveur de gestion des pare-feux compromis via la même chaîne PHP2Shell+Fragnesia (total : 25 serveurs)
  8. Attaque Active Directory : décryptage du mot de passe LDAP, énumération complète, password spray (lockoutThreshold=0), tentatives de création de comptes backdoor, analyse ACL, extraction clé SAML Keycloak

🛠️ Infrastructure et outillage

  • Claude Code installé sur l’infrastructure attaquante
  • aiscan (plateforme offensive IA) configurée avec DeepSeek et Kimi (LLMs chinois)
  • FOFA (reconnaissance internet, service chinois)
  • iox (utilitaire de tunneling d’origine chinoise)
  • ~40 scripts post-exploitation personnalisés avec style suggérant une assistance IA
  • 11 fichiers JSON de profils de version avec offsets précis, hashes SHA256 et ELF build IDs

🌐 Attribution

Aucun acteur nommé n’est attribué. Les indicateurs pointant vers une opération à nexus chinois incluent : ciblage exclusif US/Japon/Taïwan/Corée du Sud, usage de FOFA, iox, DeepSeek et Kimi, horloge infrastructure en UTC+8, et messages en langue chinoise dans les logs aiscan.

📋 Type d’article

Publication de recherche technique et rapport d’incident détaillé, visant à documenter une campagne active et à alerter les défenseurs gouvernementaux sur l’étendue de la compromission.

🧠 TTPs et IOCs détectés

TTP

  • T1190 — Exploit Public-Facing Application (Initial Access)
  • T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
  • T1505.003 — Server Software Component: Web Shell (Persistence)
  • T1572 — Protocol Tunneling (Command and Control)
  • T1090.001 — Proxy: Internal Proxy (Command and Control)
  • T1021.001 — Remote Services: Remote Desktop Protocol (Lateral Movement)
  • T1021.002 — Remote Services: SMB/Windows Admin Shares (Lateral Movement)
  • T1078 — Valid Accounts (Defense Evasion)
  • T1110.003 — Brute Force: Password Spraying (Credential Access)
  • T1003 — OS Credential Dumping (Credential Access)
  • T1087.002 — Account Discovery: Domain Account (Discovery)
  • T1069.002 — Permission Groups Discovery: Domain Groups (Discovery)
  • T1136.001 — Create Account: Local Account (Persistence)
  • T1136.002 — Create Account: Domain Account (Persistence)
  • T1543.002 — Create or Modify System Process: Systemd Service (Persistence)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1590 — Gather Victim Network Information (Reconnaissance)
  • T1596 — Search Open Technical Databases (Reconnaissance)
  • T1588.006 — Obtain Capabilities: Vulnerabilities (Resource Development)

IOC

  • CVEs : CVE-2026-109618 — NVD · CIRCL
  • CVEs : CVE-2026-109619 — NVD · CIRCL
  • CVEs : CVE-2026-46300 — NVD · CIRCL
  • Chemins : /etc/pam.d/su
  • Chemins : /etc/rc.local

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 29 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

  • PHP2Shell (other)
  • Fragnesia (other)
  • aiscan (framework)
  • iox (tool)
  • Claude Code (tool)

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

  • ⬜ dreamgroup.com — source non référencée (0pts)
  • ✅ 18663 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 5 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 19 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ✅ 3/3 CVE(s) confirmée(s) (CIRCL) (5pts)

🔗 Source originale : https://dreamgroup.com/blog/chained-php2shell-exploit-roots-25-servers