Xploit47
by aloc999
README.md
# Xploit47
**Systematic, AI-powered penetration testing reasoning engine (MCP server)** for attack path planning, CTF/HTB solving, and authorized pentest workflows.
Features **Beam Search**, **Monte Carlo Tree Search (MCTS)**, attack step scoring, tool recommendations, and critical-path highlighting.
---
## What is Xploit47?
Xploit47 is a **Model Context Protocol (MCP)** server that turns an LLM into a structured, methodical pentest planner and advisor. It does **not** run exploits against targets — it reasons about attack chains, scores steps, and recommends next actions and tools.
| Capability | Description |
|---|---|
| Beam Search | Fixed-width exploration of the most promising attack paths |
| MCTS | Simulation-based exploration for uncertain / complex scenarios |
| Deterministic scoring | Same input → same score; explainable breakdown (no randomness) |
| Kill-chain phase | Auto-classifies recon → enum → vuln → exploit → privesc → post-ex |
| Tool recommendation | Auto-suggests tools (nmap, enum4linux, searchsploit, …) with confidence |
| Asset extraction | Pulls IP/hostname from step text when not provided |
| Path chaining | Auto-links sequential steps; returns full path + pathScore |
| Critical path | Auto-flags high-impact steps (CVE exploit, privesc, …) |
| Next-step hints | Phase-aware planning suggestions |
| MCP-native | Works with Claude Desktop, Cursor, Grok, and other MCP clients |
---
## How it works
1. **Input** — You (or your AI) provide the current attack step/state
e.g. `"Enumerate SMB on 10.10.10.10"`
2. **Reasoning** — Xploit47 uses Beam Search or MCTS to score and track the path
3. **Output** — Returns step metadata, score, strategy used, and tree statistics
### Example HTB-style workflow
| # | Input step | Suggested direction | Tool |
|---|---|---|---|
| 1 | Start recon on target | Full port scan | nmap |
| 2 | nmap complete | Enumerate SMB on 445 | enum4linux |
| 3 | SMB enum done | Search public SMB CVEs | searchsploit |
| 4 | CVE found | Authorized exploit path | metasploit |
| 5 | Shell as user | Priv-esc enumeration | winPEAS / linpeas |
| 6 | Need root | Check common misconfigs | manual |
---
## Installation
```bash
git clone https://github.com/aloc999/Xploit47.git
cd Xploit47
npm install
npm run build
```
Requirements: **Node.js ≥ 18**
---
## Usage (MCP client config)
Add to your MCP client (Claude Desktop, Cursor, Grok, etc.):
```json
{
"mcpServers": {
"Xploit47": {
"command": "node",
"args": ["/absolute/path/to/Xploit47/dist/index.js"]
}
}
}
```
Or run directly:
```bash
npm start
# equivalent: node dist/index.js
```
### Tool: `xploit47`
| Parameter | Type | Required | Description |
|---|---|---|---|
| `attackStep` | string | yes | Current attack step description |
| `attackStepNumber` | integer ≥ 1 | yes | Current step number |
| `totalAttackSteps` | integer ≥ 1 | yes | Estimated total steps |
| `nextAttackStepNeeded` | boolean | yes | Whether another step is needed |
| `strategyType` | `"beam_search"` \| `"mcts"` | no | Search strategy (default: beam_search) |
| `asset` | string | no | Target asset (auto-extracted if omitted) |
| `recommendedTool` | string | no | Tool (auto-recommended if omitted) |
| `critical` | boolean | no | Critical flag (auto-detected if omitted) |
| `parentId` | string | no | Explicit parent node (auto-links sequential steps) |
---
## Search strategies
### Beam Search (`beam_search`)
- Keeps a fixed-width set of the best attack paths
- Best for methodical exploit chaining and known patterns
- Use for: enumeration sequences, CVE chaining, linear CTF paths
### Monte Carlo Tree Search (`mcts`)
- Simulation-based exploration with UCB1 selection
- Balances exploring new vectors vs exploiting known weaknesses
- Use for: complex networks, uncertain outcomes, multi-stage APT-style planning
---
## Ethics & legal
Xploit47 is a **reasoning / planning** tool only. Use it only on systems you are **authorized** to test (your own labs, CTF platforms, or programs with written permission / safe harbor). Unauthorized access is illegal.
---
## Development
```bash
npm run dev # tsx src/index.ts
npm run build # tsc → dist/
npm start # node dist/index.js
```
### Project layout
```
Xploit47/
├── src/
│ ├── index.ts # MCP server entry (stdio)
│ ├── reasoner.ts # Strategy orchestration + auto parent links
│ ├── scoring.ts # Deterministic score + kill-chain phase
│ ├── recommend.ts # Tool / asset inference + next-step hints
│ ├── engine.ts # Lightweight beam engine
│ ├── state.ts # Node cache / path state
│ ├── types.ts # Shared types & config
│ └── strategies/
│ ├── base.ts # Shared evaluation + response builder
│ ├── beam-search.ts # Beam Search
│ ├── mcts.ts # Monte Carlo Tree Search
│ └── factory.ts # Strategy factory
├── scripts/smoke-test.mjs # Accuracy + MCP integration tests
├── tot-engine.js # Standalone Tree-of-Thought helper
├── state-manager.js # Standalone session helper
├── package.json
└── README.md
```
---
## License
MIT — see [LICENSE](./LICENSE).
TDQS
A3.7/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion or overlap.
Naming Consistency5/5
A single tool name cannot be inconsistent; it trivially follows a pattern.
Tool Count1/5
A single tool for a complex domain like pentesting is extremely thin and insufficient.
Completeness1/5
The tool only covers reasoning/planning, leaving major pentest stages uncovered.
Maintenance
ActivityStale
ResponsivenessNo issues