Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
nmg — 生成参数化的 .NET 内存 Shell 载荷(VPP、MVC 路由、HttpListener),兼容 Godzilla、Behinder 和 AntSword 客户端,用于红队测试。 | Kitploit
工具/GitHubGitHub/baguette168/nmg
防御工具Payload生成持久化机制Web应用程序漏洞利用后渗透利用Web安全渗透测试红队远程访问工具Shellcode 生成Payload 开发
71913天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
baguette168/nmg

nmg

生成参数化的 .NET 内存 Shell 载荷(VPP、MVC 路由、HttpListener),兼容 Godzilla、Behinder 和 AntSword 客户端,用于红队测试。

查看仓库

NMG - .NET 内存马生成器

.NET Tests License Platform

参数化 .NET 内存马生成器 | 红队 / 安全测试 | .NET 版的 JMG 等价工具

架构

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

什么是 NMG?

NMG 生成参数化的 .NET 内存马 payload,可注入到 IIS/ASP.NET 应用程序中,而不会在磁盘上留下文件。注入后,你使用现有的 webshell 管理器(Godzilla / Behinder / AntSword)进行连接——NMG 只负责让服务器端正常工作。

可以这样理解:输入参数 -> 编译 payload -> 注入 -> 使用客户端连接

功能特性

内存马类型

类型目标.NET Framework触发点
vppIIS/ASP.NET2.0+VirtualPathProvider.GetCacheKey
routeMVC/WebAPI3.5+RouteBase.GetRouteData
httplistener独立/SYSTEM2.0+HttpListener(独立于 IIS)

Shell 协议

协议客户端加密已验证
godzillaGodzilla 4.xAES-128(key=MD5(pass+key)[0:16])✅ 端到端
behinderBehinder 4.xAES-128(key=MD5(pass)[0:16] 原始字节)✅ 端到端
antswordAntSwordBase64✅ 端到端

输出格式

格式使用场景
aspx上传到可写目录,访问一次以完成注入
b64用于通过反序列化/表达式注入进行 RCE 投递
dll用于自定义加载器的原始 DLL

子命令

命令用途
generate生成内存马 payload
probe生成环境检测 aspx(报告 CLR/信任级别/MVC/VPP)
version显示版本
help显示用法

Web UI

内置 Web 界面,采用 Inset Dark 主题(Linear 风格极简主义):

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

快速开始

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

注入方法

方法 1 — ASPX 注入器:

  1. 将生成的 .aspx 文件上传到目标上任意可写目录
  2. 在浏览器中访问一次(触发 Assembly.Load + VPP 注册)
  3. 删除该 aspx 文件
  4. 使用你的 webshell 客户端连接到站点上任意现有的 .aspx/.ashx/.asmx

方法 2 — Base64(RCE 投递): 在任意代码执行点执行:

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

Probe

上传生成的 probe.aspx 并访问一次。它会返回包含以下内容的 JSON:

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

用它来确定使用哪种内存 shell 类型和协议。

设计原则

  1. 宿主安全:所有执行路径均包裹在 try-catch 中,任何异常都会静默地让请求通过
  2. 幂等:重复注入不会叠加注册
  3. 无文件残留:注入后,Web 目录中不会产生新文件
  4. 确定性:相同参数 + 相同种子 = 字节完全一致的输出(NFR-5)
  5. 目标端无动态编译:Payload 已预编译,避免 ASP.xxx_aspx+ClassName 检测
  6. 双重注册:VPP 优先使用官方 API,在 IIS 集成模式下回退到直接字段替换

构建

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

项目结构

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

参考文献

  • BeichenDream/GodzillaMemoryShellProject.NET
  • yzddmr6 的 ASP.NET 内存马系列 — filter、route、HttpListener、VirtualPath
  • yzddmr6/ASP.NET-Memshell-Scanner
  • pen4uin/jmg — Java 内存马生成器

许可证

MIT

下载工具