内容
# Xploit47
**系统化、人工智能驱动的渗透测试推理引擎(MCP服务器)**,用于攻击路径规划、CTF/HTB问题解决和授权渗透测试工作流程。
特点包括 **Beam Search**、**Monte Carlo Tree Search(MCTS)**、攻击步骤评分、工具推荐和关键路径高亮。
---
## 什么是Xploit47?
Xploit47是一个 **Model Context Protocol(MCP)** 服务器,它将大型语言模型(LLM)转变为结构化、系统化的渗透测试规划器和顾问。它 **不** 运行针对目标的攻击 — 它推理攻击链、评估步骤并推荐下一步行动和工具。
| 功能 | 描述 |
|---|---|
| Beam Search | 固定宽度的最有希望的攻击路径探索 |
| MCTS | 不确定/复杂场景的模拟探索 |
| 确定性评分 | 相同的输入 → 相同的分数;可解释的分解(无随机性) |
| 攻击链阶段 | 自动分类侦察 → 枚举 → 漏洞 → 利用 → 提权 → 后渗透 |
| 工具推荐 | 自动建议工具(nmap、enum4linux、searchsploit等)并提供置信度 |
| 资产提取 | 从步骤文本中提取IP地址/主机名(当未提供时) |
| 路径链接 | 自动链接顺序步骤;返回完整路径 + 路径分数 |
| 关键路径 | 自动标记高影响步骤(CVE利用、提权等) |
| 下一步提示 | 阶段感知的规划建议 |
| MCP原生 | 与Claude Desktop、Cursor、Grok等MCP客户端配合使用 |
---
## 工作原理
1. **输入** — 您(或您的AI)提供当前的攻击步骤/状态
例如 `"枚举10.10.10.10上的SMB"`
2. **推理** — Xploit47使用Beam Search或MCTS评估和跟踪路径
3. **输出** — 返回步骤元数据、分数、使用的策略和树统计信息
### 示例HTB风格工作流程
| # | 输入步骤 | 建议方向 | 工具 |
|---|---|---|---|
| 1 | 对目标启动侦察 | 全端口扫描 | nmap |
| 2 | nmap完成 | 枚举445上的SMB | enum4linux |
| 3 | SMB枚举完成 | 搜索公开的SMB CVE | searchsploit |
| 4 | 找到CVE | 授权利用路径 | metasploit |
| 5 | 以用户身份获取Shell | 权限提升枚举 | winPEAS / linpeas |
| 6 | 需要root权限 | 检查常见配置错误 | 手动 |
---
## 安装
```bash
git clone https://github.com/aloc999/Xploit47.git
cd Xploit47
npm install
npm run build
```
要求: **Node.js ≥ 18**
---
## 使用(MCP客户端配置)
将以下内容添加到您的MCP客户端(Claude Desktop、Cursor、Grok等):
```json
{
"mcpServers": {
"Xploit47": {
"command": "node",
"args": ["/绝对路径/to/Xploit47/dist/index.js"]
}
}
}
```
或直接运行:
```bash
npm start
# 等效于:node dist/index.js
```
### 工具:`xploit47`
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| `attackStep` | 字符串 | 是 | 当前攻击步骤描述 |
| `attackStepNumber` | 整数 ≥ 1 | 是 | 当前步骤编号 |
| `totalAttackSteps` | 整数 ≥ 1 | 是 | 预估总步骤 |
| `nextAttackStepNeeded` | 布尔值 | 是 | 是否需要另一个步骤 |
| `strategyType` | `"beam_search"` \| `"mcts"` | 否 | 搜索策略(默认:beam_search) |
| `asset` | 字符串 | 否 | 目标资产(如果省略,则自动提取) |
| `recommendedTool` | 字符串 | 否 | 工具(如果省略,则自动推荐) |
| `critical` | 布尔值 | 否 | 关键标志(如果省略,则自动检测) |
| `parentId` | 字符串 | 否 | 显式父节点(自动链接顺序步骤) |
---
## 搜索策略
### Beam Search(`beam_search`)
- 保持固定宽度的最佳攻击路径集合
- 适用于有条理的利用链和已知模式
- 用于:枚举序列、CVE链、线性CTF路径
### Monte Carlo Tree Search(`mcts`)
- 基于模拟的探索,带有UCB1选择
- 平衡探索新向量和利用已知弱点
- 用于:复杂网络、不确定的结果、多阶段APT风格规划
---
## 伦理和法律
Xploit47仅是一个 **推理/规划** 工具。请仅在您 **授权** 测试的系统上使用它(您自己的实验室、CTF平台或具有书面许可/安全港的程序)。未经授权的访问是违法的。
---
## 开发
```bash
npm run dev # tsx src/index.ts
npm run build # tsc → dist/
npm start # node dist/index.js
```
### 项目布局
```
Xploit47/
├── src/
│ ├── index.ts # MCP服务器入口(stdio)
│ ├── reasoner.ts # 策略协调 + 自动父链接
│ ├── scoring.ts # 确定性分数 + 攻击链阶段
│ ├── recommend.ts # 工具/资产推理 + 下一步提示
│ ├── engine.ts # 轻量级Beam引擎
│ ├── state.ts # 节点缓存/路径状态
│ ├── types.ts # 共享类型和配置
│ └── strategies/
│ ├── base.ts # 共享评估 + 响应构建器
│ ├── beam-search.ts # Beam Search
│ ├── mcts.ts # Monte Carlo Tree Search
│ └── factory.ts # 策略工厂
├── scripts/smoke-test.mjs # 准确性 + MCP集成测试
├── tot-engine.js # 独立的Tree-of-Thought助手
├── state-manager.js # 独立的会话助手
├── package.json
└── README.md
```
---
## 许可证
MIT — 请参阅 [LICENSE](./LICENSE)。