📅 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