🔍 Contexte
Publié le 27/10/2026 sur GitHub (baguette168/nmg), cet article présente NMG (. NET Memory-shell Generator), un outil offensif open source sous licence MIT destiné aux équipes red team et aux tests de sécurité.
🛠️ Description de l’outil
NMG génère des payloads memory shell .NET paramétrés qui s’injectent dans des applications IIS/ASP.NET sans laisser de fichiers sur le disque. Il est présenté comme l’équivalent .NET de JMG (Java Memory-shell Generator).
L’architecture se décompose en plusieurs couches :
- CLI (
nmg.exe) avec sous-commandesgenerate,probe,version,help - Couche protocole : support de Godzilla (AES-128), Behinder (AES-128), AntSword (Base64)
- Couche template : VPP (IIS hook via VirtualPathProvider), Route (MVC/WebAPI), HttpListener (standalone/SYSTEM)
- Moteur de compilation : Roslyn → DLL (net40/net472), avec obfuscation XOR et randomisation déterministe
- Couche de sortie : injector ASPX, Base64, DLL brute
💉 Méthodes d’injection
- Méthode ASPX : upload d’un fichier
.aspxgénéré dans un répertoire accessible en écriture, accès unique pour déclencherAssembly.Load+ enregistrement VPP, puis suppression du fichier - Méthode Base64 (RCE) : exécution via
Assembly.Load(Convert.FromBase64String("<payload>"))à tout point d’exécution de code
🔐 Protocoles supportés
| Protocole | Client | Chiffrement |
|---|---|---|
| Godzilla | Godzilla 4.x | AES-128 (clé = MD5(pass+key)[0:16]) |
| Behinder | Behinder 4.x | AES-128 (clé = MD5(pass)[0:16] raw bytes) |
| AntSword | AntSword | Base64 |
🎯 Principes de conception
- Aucun résidu fichier après injection
- Idempotent : les injections répétées n’empilent pas les enregistrements
- Déterministe : mêmes paramètres + même seed = sortie byte-identique
- Pas de compilation dynamique sur la cible : payload pré-compilé, évite la détection par pattern
ASP.xxx_aspx+ClassName - Toutes les exceptions sont silencieusement absorbées (try-catch)
📋 Type d’article
Il s’agit d’une publication d’outil offensif open source (nouveaux outils), destinée à la communauté red team, présentant les fonctionnalités, l’architecture et les modes d’emploi de NMG.
🧠 TTPs et IOCs détectés
TTP
- T1505.003 — Server Software Component: Web Shell (Persistence)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1620 — Reflective Code Loading (Defense Evasion)
- T1059.005 — Command and Scripting Interpreter: Visual Basic (Execution)
- T1140 — Deobfuscate/Decode Files or Information (Defense Evasion)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
IOC
- Fichiers :
nmg.exe - Fichiers :
probe.aspx - Fichiers :
payload.b64
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 27 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
- NMG (.NET Memory-shell Generator) (tool)
- Godzilla (framework)
- Behinder (framework)
- AntSword (framework)
🟡 Indice de vérification factuelle : 40/100 (moyenne)
- ⬜ github.com — source non référencée (0pts)
- ✅ 6172 chars — texte complet (fulltext extrait) (15pts)
- ✅ 3 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 6 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://github.com/baguette168/nmg