📅 Source : Microsoft Threat Intelligence Blog, publié le 28 septembre 2026. Cette publication présente une analyse technique approfondie de NeedyMantis, une famille de malware post-compromis modulaire découverte lors d’investigations liées à la compromission de la chaîne d’approvisionnement DAEMON Tools, précédemment rapportée par Kaspersky.
🎯 Contexte et attribution L’activité NeedyMantis remonte à au moins octobre 2025. Microsoft associe son utilisation à Storm-3069, un cluster d’activité lié à la compromission DAEMON Tools. L’activité est alignée avec des acteurs opérant depuis la Chine, sans attribution formelle à un acteur étatique chinois. Plusieurs opérateurs pourraient utiliser ce malware.
🏭 Secteurs ciblés
- Télécommunications
- Universités
- Organisations intergouvernementales
- ONG médicales
- Contractants gouvernementaux
🔧 Architecture et capacités NeedyMantis est écrit en C++ et shellcode x64 et repose sur une architecture multi-couches :
- Loader de premier niveau : DLL sideloadée, masquée en composant légitime (ex: WinSparkle.dll pour Poedit), avec anti-analyse (obfuscation de chaînes, anti-débogueur via ProcessDebugFlags et ThreadHideFromDebugger)
- Archive de fichiers personnalisée : format chiffré/compressé (XOR + RtlDecompressBuffer), contenant des composants légitimes (7-Zip, Sysinternals) et des fichiers malveillants
- Loader de second niveau : shellcode x64 déguisé en fichier .ps1, résolution dynamique d’API via hachage ROR
- Composant principal : orchestration C2, gestion des modules, mutex
<username>-<process name> - DLL de communications : WebSockets via WinINet ou Libwebsockets, user-agent codé en dur
firefox/21.0
📡 Communications C2
Le C2 utilise HTTPS puis WebSockets vers corp.tripswithengine[.]com:443. Le beacon initial envoie des informations système via un header Set-Cookie encodé en Base64/JSON. Le protocole binaire utilise XOR et RC4 pour le chiffrement, avec un échange de clés initial.
⚙️ Commandes C2
- Envoi : nom machine/utilisateur (1110), identifiant codé en dur (1112), keep-alive (1150)
- Réception : chargement/déchargement de modules (1020/1030), dispatch de données (1050/1150), désactivation de flags (1070)
🕵️ Techniques de dissimulation
- DLL sideloading via logiciels légitimes (Poedit, curl, Vim, TightVNC)
- Usurpation de DLLs système (dnsapi.dll, ws2_32.dll, msvcrt140.dll)
- Format exécutable personnalisé (PE minifié)
- Déploiement via Impacket lors d’activité hands-on-keyboard
📋 IOCs publiés
- SHA-256 : trois hachages de composants (loader, archives)
- Domaine C2 :
corp.tripswithengine[.]com
📰 Type d’article : Publication de recherche technique à visée CTI, fournissant une décomposition complète du framework NeedyMantis, des IOCs, des requêtes de chasse (KQL pour Defender XDR et Sentinel) et des détections Defender.
🧠 TTPs et IOCs détectés
Acteurs de menace
- Storm-3069 (state-sponsored) —
TTP
- T1195.002 — Supply Chain Compromise: Compromise Software Supply Chain (Initial Access)
- T1574.002 — Hijack Execution Flow: DLL Side-Loading (Defense Evasion)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1027.007 — Obfuscated Files or Information: Dynamic API Resolution (Defense Evasion)
- T1140 — Deobfuscate/Decode Files or Information (Defense Evasion)
- T1036.005 — Masquerading: Match Legitimate Name or Location (Defense Evasion)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
- T1095 — Non-Application Layer Protocol (Command and Control)
- T1132.001 — Data Encoding: Standard Encoding (Command and Control)
- T1573.001 — Encrypted Channel: Symmetric Cryptography (Command and Control)
- T1129 — Shared Modules (Execution)
- T1059.001 — Command and Scripting Interpreter: PowerShell (Execution)
- T1055 — Process Injection (Defense Evasion)
- T1083 — File and Directory Discovery (Discovery)
- T1057 — Process Discovery (Discovery)
- T1033 — System Owner/User Discovery (Discovery)
- T1082 — System Information Discovery (Discovery)
- T1105 — Ingress Tool Transfer (Command and Control)
- T1560 — Archive Collected Data (Collection)
IOC
- Domaines :
corp.tripswithengine.com— VT · URLhaus · ThreatFox - SHA256 :
e842dd7642c8e04b5ec20b6393848a9c904e4832930950c16664fe7800ba382e— VT · MalwareBazaar - SHA256 :
9cb68f986043a576e19d32184c583b7d8f571c7219d8dc0065dced1c13f077ef— VT · MalwareBazaar - SHA256 :
c82520eb03c084226be4eafbff46f56dca0aa8804a2a7f23a085a96afe71ef77— VT · MalwareBazaar - Fichiers :
WinSparkle.dll - Fichiers :
WinSparkle - Fichiers :
libcurl - Fichiers :
encryptbase64.ps1 - Fichiers :
dnsapi.dll - Fichiers :
ws2_32.dll - Fichiers :
msvcrt140.dll - Fichiers :
vim64.dll - Fichiers :
nvml.dll - Fichiers :
jli.dll - Fichiers :
dbghelp.dll - Fichiers :
libcurl.dll - Chemins :
%ProgramFiles%\Poedit\WinSparkle.dll - Chemins :
%ProgramData%\USOShared\libcurl.dll - Chemins :
%ProgramData%\VIM\vim64.dll - Chemins :
%ProgramData%\TightVNC\VIM\vim64.dll - Chemins :
%ProgramData%\office\dbghelp.dll - Chemins :
%ProgramData%\broadcom\dbghelp.dll - Chemins :
%ProgramData%\Intel\jli.dll - Chemins :
%ProgramFiles%\modifiable\nvml.dll - Chemins :
%ProgramData%\ics\nvml.dll
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 29 septembre 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
- NeedyMantis (backdoor)
- Impacket (framework)
🟢 Indice de vérification factuelle : 95/100 (haute)
- ✅ microsoft.com — source reconnue (liste interne) (20pts)
- ✅ 28378 chars — texte complet (fulltext extrait) (15pts)
- ✅ 25 IOCs dont des hashes (15pts)
- ✅ 3/4 IOCs confirmés (MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
- ✅ 19 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ✅ acteur(s) identifié(s) : Storm-3069 (5pts)
- ⬜ pas de CVE à vérifier (0pts)
IOCs confirmés externellement :
e842dd7642c8e04b…(sha256) → VT (19/76 détections)c82520eb03c08422…(sha256) → VT (4/76 détections)corp.tripswithengine.com(domain) → VT (4/91 détections)
🔗 Source originale : https://www.microsoft.com/en-us/security/blog/2026/09/28/needymantis-unpacking-a-post-compromise-malware-family-used-in-targeted-operations/?ref=metacurity.com