🔍 Contexte
Publié le 3 juin 2026 par Vincent Li (FortiGuard Labs), cet article présente l’analyse technique détaillée de C0XMO, un nouveau variant du botnet Gafgyt découvert en mars 2026. La cible initiale était une entreprise technologique japonaise, mais l’adresse IP source de l’attaque a été tracée en Allemagne.
🎯 Vecteur d’infection initial
Le malware se propage en exploitant CVE-2021-27137, un stack buffer overflow dans le service UPnP des firmwares DD-WRT antérieurs au changeset 45723. La vulnérabilité est déclenchée via des requêtes M-SEARCH malformées envoyées sur le port UDP 1900, exploitant une mauvaise gestion des valeurs ST:uuid: surdimensionnées par le parseur SSDP.
🧬 Architecture et persistance
C0XMO se distingue des variants Gafgyt précédents par son architecture modulaire :
- Persistance en 4 étapes : vérification du chemin d’exécution via
/proc/self/exe, copie dans des chemins cachés (/tmp/.sys,/var/tmp/.sys,/dev/shm/.sys,$HOME/.sys), création de cron jobs toutes les 15 minutes, injection dans les profils shell (~/.bashrc,~/.profile,~/.bash_profile) - Auto-relance si le processus est terminé
- Élimination des botnets concurrents : scan de
/proc, comparaison à une blacklist interne, suppression des binaires rivaux et de leurs mécanismes de persistance (cron, rc.local, init.d, services système)
📡 Communication C2
Après persistance, C0XMO se connecte au C2 : 85.215.131.70 via un handshake personnalisé :
- Envoi de la magic string
669787761736865726500+ secret partagéFS2@SA__=A23cAxs3S3@23AF@A3454DFSA0D - Réponse serveur :
HANDSHAKE_OK - Envoi de
BOT→ réponseOK - Envoi de la séquence hex
FF FF FF FF 75→ message de bienvenue
💥 Capacités DDoS
C0XMO supporte 19 méthodes d’attaque DDoS : UDP Bypass Flood, TCP Flood, SYN Flood, NTP Amplification, Memcached Amplification, HTTP GET Flood, Cloudflare Bypass HTTP Flood, Ping of Death, Discord Voice UDP Flood, FiveM Game Flood, OVH Bypass, ICMP Flood, etc.
🔄 Propagation latérale (scanner Python)
La fonction de scan est isolée dans un script Python indépendant (/tmp/scanner.py) téléchargé depuis 217.160.125.125:15527. Ce script utilise les packages requests, paramiko, beautifulsoup4 et cible les ports : 23, 22, 80, 443, 8080, 5555, 5511, 5554, 4443, 81, 8000, 7547, 8081, 8443, 8888.
Le scanner exploite :
- Brute-force Telnet/SSH avec credentials faibles
- Exploits HTTP : CVE-2021-27137, CVE-2015-2051 (D-Link HNAP), CVE-2022-35914 (GLPI htmLawed), CVE-2025-34054 / CVE-2016-15047 (AVTECH DVR), injections CGI/SOAP, Zyxel SysTools RCE, NVMS-9000
- ADB (Android Debug Bridge) pour compromettre des appareils Android exposés
- Détection d’architecture cible pour déployer le payload adapté (ARM, MC68000, MIPS R3000, PowerPC, SuperH, x86, AMD64)
🛡️ Détections Fortinet
Signatures antivirus : ELF/Gafgyt.SORA!tr, ELF/Gafgyt.C0MOX!tr, ELF/Mirai.EGX!tr, Python/Gafgyt.C0MOX!tr
📋 Type d’article
Il s’agit d’une analyse technique approfondie publiée par FortiGuard Labs, visant à documenter l’architecture, les mécanismes de propagation et les capacités offensives du botnet C0XMO pour la communauté CTI.
🧠 TTPs et IOCs détectés
TTP
- T1190 — Exploit Public-Facing Application (Initial Access)
- T1110.001 — Brute Force: Password Guessing (Credential Access)
- T1059.006 — Command and Scripting Interpreter: Python (Execution)
- T1053.003 — Scheduled Task/Job: Cron (Persistence)
- T1543 — Create or Modify System Process (Persistence)
- T1546.004 — Event Triggered Execution: Unix Shell Configuration Modification (Persistence)
- T1036.005 — Masquerading: Match Legitimate Name or Location (Defense Evasion)
- T1564.001 — Hide Artifacts: Hidden Files and Directories (Defense Evasion)
- T1562.001 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
- T1057 — Process Discovery (Discovery)
- T1046 — Network Service Discovery (Discovery)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
- T1095 — Non-Application Layer Protocol (Command and Control)
- T1498 — Network Denial of Service (Impact)
- T1570 — Lateral Tool Transfer (Lateral Movement)
- T1105 — Ingress Tool Transfer (Command and Control)
IOC
- IPv4 :
217.160.125.125— AbuseIPDB · VT · ThreatFox - IPv4 :
176.100.37.91— AbuseIPDB · VT · ThreatFox - IPv4 :
85.215.131.70— AbuseIPDB · VT · ThreatFox - URLs :
http://217.160.125.125:15527— URLhaus - SHA256 :
444a9d34a9f59dc7975dfabefb47d789813a4497bbac9127c4806dd816e85211— VT · MalwareBazaar - SHA256 :
9394666007fac4014a4641fdae150c1b969ed2bc4299876318a336fd386abf59— VT · MalwareBazaar - SHA256 :
450ea44da0c9d96a2e8f4d6bad34f1c35cd35743295b8cd2defa9f7a9884685d— VT · MalwareBazaar - SHA256 :
d452f22dacab9785539484245c13e9cce58df23fc82eeef205684fcd196da20b— VT · MalwareBazaar - SHA256 :
20042f1efb59c99e3addf822a3e9e5a496f0b701362df038a50a32a9f504a136— VT · MalwareBazaar - SHA256 :
7413cbb6eab4d6b10346f71be5dd76d7cf2f4817f7776367b162f83755aefa1f— VT · MalwareBazaar - SHA256 :
b6f835ced11059d341222eba11fff3a4672f4de47a3a4d791fad86059a2b06d4— VT · MalwareBazaar - SHA256 :
b61a5508847a2167b737d31193dc393e92c5be2aa5141bbe4b7ea6f440fd4799— VT · MalwareBazaar - SHA256 :
dff0edae6e8854ddd3e617054ee0bd74c696c91411f704dff60aabaec839bec9— VT · MalwareBazaar - SHA256 :
ea44138b9701fce1b2fe13de8f9e00681c007c9adc625edc9f507f177704c2e8— VT · MalwareBazaar - SHA256 :
3ddb67ab079509dd1e7ac77fc4cfed25a271526668c68f8a2221e96a4cc21812— VT · MalwareBazaar - SHA256 :
f02b1d8010dac35b007796def0cbd5d0c9414df790e2b55b105c95df2f2ffa91— VT · MalwareBazaar - SHA256 :
8fc2d35b66c692d37a85ae9d30dc5c7f06f0b3eaf01112a5a6398a1a0feb3aee— VT · MalwareBazaar - SHA256 :
eead44c0af7ddb12cece1a6125cf213bab3c22511cd59aff9d63dcfddb7d4386— VT · MalwareBazaar - SHA256 :
41e8e327abbf2ba721be677ad8a416a7295708257b39688a0af03275fb199cec— VT · MalwareBazaar - CVEs :
CVE-2021-27137— NVD · CIRCL - CVEs :
CVE-2015-2051— NVD · CIRCL - CVEs :
CVE-2022-35914— NVD · CIRCL - CVEs :
CVE-2025-34054— NVD · CIRCL - CVEs :
CVE-2016-15047— NVD · CIRCL - Fichiers :
scanner.py - Fichiers :
bot.x86_64 - Fichiers :
blacklist.txt - Fichiers :
failed.txt - Chemins :
/tmp/.cache - Chemins :
/tmp/.sys - Chemins :
/var/tmp/.sys - Chemins :
/dev/shm/.sys - Chemins :
/tmp/scanner.py
Malware / Outils
- C0XMO (botnet)
- Gafgyt (botnet)
🟢 Indice de vérification factuelle : 90/100 (haute)
- ✅ fortinet.com — source reconnue (liste interne) (20pts)
- ✅ 16669 chars — texte complet (fulltext extrait) (15pts)
- ✅ 33 IOCs dont des hashes (15pts)
- ✅ 5/7 IOCs confirmés (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
- ✅ 16 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ 0/5 CVE(s) confirmée(s) (0pts)
IOCs confirmés externellement :
217.160.125.125(ip) → VT (13/91 détections)176.100.37.91(ip) → VT (10/91 détections)85.215.131.70(ip) → VT (14/91 détections) + ThreatFox (Bashlite)444a9d34a9f59dc7…(sha256) → VT (38/75 détections)9394666007fac401…(sha256) → VT (38/75 détections)
🔗 Source originale : https://www.fortinet.com/blog/threat-research/inside-cross-platform-propagation-of-new-gafgyt-variant-c0xmo