🔍 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-commandes generate, 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

  1. Méthode ASPX : upload d’un fichier .aspx généré dans un répertoire accessible en écriture, accès unique pour déclencher Assembly.Load + enregistrement VPP, puis suppression du fichier
  2. 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