README
🚀 PentestThinkingMCP
PentestThinkingMCP 是一个先进的模型上下文协议(MCP)服务器,旨在赋能人类和人工智能渗透测试人员。它借助大语言模型(LLM)与 MCP 服务器,为自动化的初始访问侦察、枚举和利用提供了实用框架,解决了渗透测试中复杂推理和路径规划的难题,提升了渗透测试的效率和准确性。
🚀 快速开始
安装
git clone https://github.com/ibrahimsaleem/PentestThinkingMCP.git
cd PentestThinkingMCP
npm install
npm run build
使用
- 将其作为服务器添加到你的 MCP 客户端(如 Cursor、Claude Desktop 等):
{
"mcpServers": {
"pentestthinkingMCP": {
"command": "node",
"args": ["path/to/pentestthinkingMCP/dist/index.js"]
}
}
}
- 通过发送攻击步骤并接收下一步建议、工具建议和攻击路径树与之交互。
✨ 主要特性
- 双搜索策略进行攻击建模:
- 具有可配置宽度的波束搜索(用于系统地发现利用链)
- 用于复杂决策空间的蒙特卡罗树搜索(MCTS)(适用于具有未知因素的动态攻击场景)
- 证据/漏洞评分和评估:基于可利用性可能性、潜在影响(CIA 三元组)、CVSS 分数或类似指标以及攻击链中的连接强度进行评分。
- 基于树的攻击路径分析:对攻击进展进行基于树的状态跟踪,并对成功/失败的模拟攻击路径进行统计分析。
- 潜在攻击向量的统计分析:帮助更好地理解攻击场景和制定策略。
- MCP 协议合规:确保与其他系统的兼容性。
📦 安装指南
git clone https://github.com/ibrahimsaleem/PentestThinkingMCP.git
cd PentestThinkingMCP
npm install
npm run build
💻 使用示例
基础用法
解决 HTB 机器的示例工作流程
- 侦察阶段
输入:
attackStep: "Start with initial recon on 10.10.10.10"输出:Run nmap -p- 10.10.10.10(推荐工具:nmap) - 枚举阶段
输入:
attackStep: "Run nmap -p- 10.10.10.10"输出:Enumerate SMB on port 445(推荐工具:enum4linux) - 漏洞分析阶段
输入:
attackStep: "Enumerate SMB on port 445"输出:Search for public SMB exploits (CVE - 2017 - 0144)(推荐工具:searchsploit) - 利用阶段
输入:
attackStep: "Search for public SMB exploits (CVE - 2017 - 0144)"输出:Exploit SMB with EternalBlue (CVE - 2017 - 0144)(推荐工具:metasploit) - 提权阶段
输入:
attackStep: "Got shell as user"输出:Run winPEAS for privilege escalation checks(推荐工具:winPEAS) - 获取根权限/标志阶段
输入:
attackStep: "Found user.txt, need root"输出:Check for AlwaysInstallElevated misconfiguration(推荐工具:手动调查)
高级用法
在复杂的网络渗透测试或具有不确定结果的场景中,可使用蒙特卡罗树搜索(MCTS)进行攻击路径探索。例如,在模拟高级持续威胁(APT)时,MCTS 可以平衡对新攻击向量的探索和对已知弱点的利用。
📚 详细文档
渗透测试的搜索策略
波束搜索
- 维护一组固定宽度的最有前景的攻击路径或漏洞链。
- 适用于逐步开发利用程序和匹配已知漏洞模式。
- 最适合:枚举攻击向量、系统地进行漏洞链接、逻辑利用路径查找。
蒙特卡罗树搜索(MCTS)
- 基于模拟探索潜在的攻击面。
- 平衡对新攻击向量的探索和对已知弱点的利用。
- 最适合:复杂的网络渗透测试、结果不确定的场景、高级持续威胁(APT)模拟。
算法细节
- 攻击向量选择
- 波束搜索:评估和排名多个潜在的攻击路径或利用链。
- MCTS:使用 UCT 进行节点选择(潜在的利用步骤)和随机滚动(模拟攻击进展)。
- 证据/漏洞评分基于:
- 可利用性的可能性
- 潜在影响(CIA 三元组)
- CVSS 分数或类似指标
- 攻击链中的连接强度(例如,漏洞 A 启用利用 B)
- 过程管理
- 基于树的攻击进展状态跟踪
- 对成功/失败的模拟攻击路径进行统计分析
- 对照渗透测试目标进行进度监控
使用场景
- 自动化漏洞识别和链接
- 利用路径查找和优化
- 攻击场景模拟和“假设”分析
- 红队策略开发和完善
- 通过建议潜在途径协助手动渗透测试
- 探索复杂攻击向量的决策树
- 优化实现特定渗透测试目标的策略(例如,数据泄露、提权)
🔧 技术细节
攻击向量选择
- 波束搜索:对多个潜在的攻击路径或利用链进行评估和排序。
- 蒙特卡罗树搜索(MCTS):使用 UCT(Upper Confidence Bound applied to Trees)进行节点选择(即潜在的利用步骤),并通过随机滚动(模拟攻击进展)来探索攻击空间。
证据/漏洞评分依据
- 可利用性的可能性:评估漏洞被成功利用的概率。
- 潜在影响:基于 CIA 三元组(保密性、完整性、可用性)评估漏洞可能造成的影响。
- CVSS 分数或类似指标:参考通用漏洞评分系统或其他相关指标。
- 攻击链中的连接强度:例如,漏洞 A 能够使利用 B 成为可能,这种关联的强度会影响评分。
过程管理
- 基于树的状态跟踪:对攻击进展进行基于树的状态跟踪,清晰记录攻击过程中的各个状态。
- 统计分析:对成功和失败的模拟攻击路径进行统计分析,以便更好地了解攻击策略的有效性。
- 进度监控:对照渗透测试的目标进行进度监控,确保攻击行动朝着预期目标推进。
📄 许可证
本项目采用 MIT 许可证。
Scan to contact