NtObjectManager-MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NtObjectManager-MCPparse srvsvc.dll and show its RPC interfaces"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π°οΈ NtObjectManager-MCP
Stateful Windows RPC Research MCP β 2024β2026 CVE methodologies as one-click tools
π δΈζη
What is NtObjectManager-MCP?
A Model Context Protocol server that gives an AI agent live, stateful access to Windows RPC attack-surface research, built on James Forshaw's NtObjectManager (NtCoreLib).
Two things a generic PowerShell MCP cannot do β and the reason this exists:
Stateful RPC connections β a persistent PowerShell engine keeps parsed
RpcServerobjects and connected RPC clients alive across tool calls:rpc_connectonce,rpc_callmany times (auth handshakes, context-handle chains, session variables survive).CVE methodology as fixed tools β the standard hunting workflows from 2024β2026 public research are one-click, not prompt-engineering:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI Agent (Claude Code / OpenCode / any MCP client) β
β β MCP (stdio, 22 tools) β
β βΌ β
β server.py ββ snippets.py (PS templates, @@TOKEN@@ + ps_str escape)β
β β β
β βΌ β
β ps_engine.py ββ persistent powershell.exe (base64 + __MCP_DONE__) β
β β state: $RPCMCP = @{ Servers; Clients; vars } β
β βΌ β
β NtObjectManager / NtCoreLib βββΊ RPC runtime (ALPC / pipe / TCP) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββRelated MCP server: Win MCP Server
Tool Matrix (22)
Core stateful pipeline
Tool | Purpose |
| Parse a PE for RPC servers, cache (keys |
| Cached servers + live sessions |
| Procedures, NDR params, context handles, strictness |
| EPM query (local or remote) |
| Live process/service enumeration |
| Generate + connect client (stateful) |
| Signatures with opnum mapping |
| Reflection invoke; |
| Drop session |
2024β2026 CVE methodology tools
Tool | Methodology source |
| Context-handle type confusion β CVE-2025-48815 pattern (whereisk0shl 2026) |
| Attack-surface inventory + EPM cross-check β MS-RPC-Fuzzer phase 1 (CVE-2025-26651) |
| Primitive-only default-value fuzzing with ok/denied/error classification β dry-run by default |
| Unregistered interfaces of stopped services β EPM poisoning / RPC-Racer (CVE-2025-49760/59200/59230) |
| Clients calling dead servers β PhantomRPC (Kaspersky 2026), admin required |
| ALPC SD / anonymous-ACE audit β MS-NRPC null session (SafeBreach/Securelist 2025) |
|
|
| Export generated C# client source (offline grep workflow) |
| Build NDR complex types as session vars |
| ALPC port squat + connection capture (race validation primitive) |
| User-startable tasks (Dark-Elevator chain material, CVE-2026-66804 pattern) |
| Session-variable and cache management (eviction cap 150) |
Every tool call is appended to output/mcp_audit.log.
Field-Tested (real machine, full hunting round)
Candidate | Result |
| Identified as XactSrv (XsOpenPrinter/XsClosePrinter/XsAddJob/XsScheduleJob) β single printer-handle type; live probe: non-admin connect OK but |
| All 20 context handles strict β patched state on current builds |
51-module sweep | 31 findings, 6 HIGH, all "one producer β many consumers"; NDR layer cannot prove multi-type handles (needs RE) |
EPM hijack surface | 10 stopped services with unregistered interfaces (AppIDSvc, ClipSVC, dcsvcβ¦) |
Task chains | 44 user-startable SYSTEM tasks inventoried |
Verdict | No confirmable exploitable vuln on the tested host β with per-step evidence |
π Quick Start
# 1) Prerequisites (one-time)
Install-Module NtObjectManager -Scope CurrentUser -Force
pip install -r requirements.txt # mcp>=1.2.0 (1.x / 2.x compatible)
# 2) Verify β three suites, all green
python tests\smoke_test.py # 17 checks (live MCP stdio round-trip)
python tests\var_test.py # 10 checks (store_as / __var__ mechanics)
python tests\audit.py # 43 checks (edge cases, hostile paths, concurrency)
# 3) Run the server
python server.py # stdio MCPClaude Code:
claude mcp add ntobjectmanager-rpc -- python C:\path\to\ntobjmanager-mcp\server.pyAny MCP client (e.g. OpenCode opencode.json):
{
"mcp": {
"ntobjectmanager-rpc": {
"type": "local",
"command": ["python", "C:\\path\\to\\ntobjmanager-mcp\\server.py"],
"enabled": true
}
}
}Example: context-handle type confusion (CVE-2025-48815 pattern)
1. rpc_parse C:\Windows\System32\target.dll [symbol_path optional]
2. rpc_scan_context_handles ["C:\\Windows\\System32\\target.dll"]
3. rpc_get_interface target_0 β producer ([out] ctx) / consumer ([in] ctx) pairs
4. rpc_connect s1 target_0 β auto-discovers binding via EPM
5. rpc_methods s1 β opnum-mapped signatures
6. rpc_call s1 XsOpenPrinter-like args store_as="h" β keep the raw handle object
7. rpc_call s1 XsClosePrinter-like [{"__var__":"h"}] β feed it to the other typestore_as / {"__var__"} is the core chain primitive: RPC return objects flow
between calls without serialization round-trips, which is exactly what
producerβconsumer handle-confusion testing needs.
π Project Structure
ntobjmanager-mcp/
βββ server.py # 22 MCP tools + audit logging wrapper
βββ snippets.py # PowerShell templates (@@TOKEN@@ render + ps_str escaping)
βββ ps_engine.py # Persistent engine: base64 cmds + __MCP_DONE__ markers, timeouts
βββ wrapper.ps1 # PS-side loop (state lives in $RPCMCP)
βββ tests/
β βββ smoke_test.py # 17 checks β live stdio end-to-end
β βββ var_test.py # 10 checks β store_as/__var__ object passing
β βββ audit.py # 43 checks β hostile inputs, concurrency, engine kill/restart
β βββ hunt.py # Full dogfood hunting round (safe policy)
β βββ hunt2_static.py # Deep-dive: symbols + producer/consumer map
β βββ hunt2_wide.py # 51-module sweep
β βββ hunt2_probe.py # Safe runtime probes (exposure / task cross-ref)
βββ ARCHITECTURE.md # Engine protocol + design decisions
βββ CHANGELOG.md # Decision history (R1βR12)
βββ SECURITY.md # Authorized-use policy + MSRC disclosure
βββ CONTRIBUTING.md # Development invariants
βββ LICENSE # MITπ‘οΈ Honest Capability Boundaries
Claim | Status |
Stateful clients across tool calls | Yes β persistent engine + |
Context-handle chaining (producer β consumer) | Yes β |
Auto-confirm type confusion | No β NDR cannot prove distinct handle types; verify via RE (see XactSrv case) |
Full rogue-RPC hosting | No β NtObjectManager 2.0.1 ships no server builder; |
ETW tracing / ALPC SDDL | Requires admin (logman / SeDebugPrivilege) |
Symbol-resolved procedure names | Environment-dependent (symsrv chain); heuristic fallback names otherwise |
Runs anywhere but Windows PS 5.1 | Not yet (pwsh 7 untested) |
π Documentation
ARCHITECTURE.md β engine protocol, state model, design decisions
CHANGELOG.md β R1βR12 decision history incl. two PS 5.1 marshaling bugs
SECURITY.md β authorized use, VM isolation, MSRC disclosure
CONTRIBUTING.md β development invariants and test requirements
β οΈ Disclaimer
For lawful security research, education, and authorized testing only.
rpc_call invokes real RPC methods and can crash services β run it against an
isolated VM, never a production or daily-driver host. Vulnerabilities found
through this tool must follow responsible disclosure (MSRC).
π License
MIT β Copyright (c) 2026 ntobjmanager-mcp Contributors
This server cannot be deployed
Maintenance
Related MCP Connectors
Hunt zero-days by talking to binaries. 40+ tools. Hosted, OAuth + SSO, invite: hi@byteray.ai
Hyperion β MCP tool marketplace for AI agents: web, OSINT, security, research via one key.
Execute PowerShell commands securely with controlled timeouts and input validation. Retrieve systeβ¦
Offline methodology engine for authorized penetration testing, CTF, and security research.
Related MCP Servers
- FlicenseCqualityDmaintenanceA Model Context Protocol server that enables AI assistants to execute PowerShell commands, retrieve system information, manage modules, and run scripts on Windows systems.62-
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to securely manage and execute commands on remote Windows servers via WinRM, including PowerShell execution, system information retrieval, and service management.5MIT
- AlicenseAqualityAmaintenanceEnables AI agents to run PowerShell commands and manage Windows services without intrusive console windows, while also supporting remote execution via SSH and WinRM.1076 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables Windows-native developer orchestration for Claude Code and Codex with PowerShell discovery, capability routing, safety-gated execution, package management, and sandbox-based isolation.MIT