返回 MCP 目录
public公开dns本地运行

pentestthinkingmcp

PentestThinkingMCP是一个基于大型语言模型和MCP协议的自动化渗透测试框架,能够通过Beam Search和MCTS算法规划攻击路径,为CTF、HTB及真实渗透测试提供步骤推理、工具推荐和关键路径分析。

article

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 机器的示例工作流程

  1. 侦察阶段 输入:attackStep: "Start with initial recon on 10.10.10.10" 输出:Run nmap -p- 10.10.10.10(推荐工具:nmap)
  2. 枚举阶段 输入:attackStep: "Run nmap -p- 10.10.10.10" 输出:Enumerate SMB on port 445(推荐工具:enum4linux)
  3. 漏洞分析阶段 输入:attackStep: "Enumerate SMB on port 445" 输出:Search for public SMB exploits (CVE - 2017 - 0144)(推荐工具:searchsploit)
  4. 利用阶段 输入:attackStep: "Search for public SMB exploits (CVE - 2017 - 0144)" 输出:Exploit SMB with EternalBlue (CVE - 2017 - 0144)(推荐工具:metasploit)
  5. 提权阶段 输入:attackStep: "Got shell as user" 输出:Run winPEAS for privilege escalation checks(推荐工具:winPEAS)
  6. 获取根权限/标志阶段 输入:attackStep: "Found user.txt, need root" 输出:Check for AlwaysInstallElevated misconfiguration(推荐工具:手动调查)

高级用法

在复杂的网络渗透测试或具有不确定结果的场景中,可使用蒙特卡罗树搜索(MCTS)进行攻击路径探索。例如,在模拟高级持续威胁(APT)时,MCTS 可以平衡对新攻击向量的探索和对已知弱点的利用。

📚 详细文档

渗透测试的搜索策略

波束搜索

  • 维护一组固定宽度的最有前景的攻击路径或漏洞链。
  • 适用于逐步开发利用程序和匹配已知漏洞模式。
  • 最适合:枚举攻击向量、系统地进行漏洞链接、逻辑利用路径查找。

蒙特卡罗树搜索(MCTS)

  • 基于模拟探索潜在的攻击面。
  • 平衡对新攻击向量的探索和对已知弱点的利用。
  • 最适合:复杂的网络渗透测试、结果不确定的场景、高级持续威胁(APT)模拟。

算法细节

  1. 攻击向量选择
    • 波束搜索:评估和排名多个潜在的攻击路径或利用链。
    • MCTS:使用 UCT 进行节点选择(潜在的利用步骤)和随机滚动(模拟攻击进展)。
  2. 证据/漏洞评分基于
    • 可利用性的可能性
    • 潜在影响(CIA 三元组)
    • CVSS 分数或类似指标
    • 攻击链中的连接强度(例如,漏洞 A 启用利用 B)
  3. 过程管理
    • 基于树的攻击进展状态跟踪
    • 对成功/失败的模拟攻击路径进行统计分析
    • 对照渗透测试目标进行进度监控

使用场景

  • 自动化漏洞识别和链接
  • 利用路径查找和优化
  • 攻击场景模拟和“假设”分析
  • 红队策略开发和完善
  • 通过建议潜在途径协助手动渗透测试
  • 探索复杂攻击向量的决策树
  • 优化实现特定渗透测试目标的策略(例如,数据泄露、提权)

🔧 技术细节

攻击向量选择

  • 波束搜索:对多个潜在的攻击路径或利用链进行评估和排序。
  • 蒙特卡罗树搜索(MCTS):使用 UCT(Upper Confidence Bound applied to Trees)进行节点选择(即潜在的利用步骤),并通过随机滚动(模拟攻击进展)来探索攻击空间。

证据/漏洞评分依据

  • 可利用性的可能性:评估漏洞被成功利用的概率。
  • 潜在影响:基于 CIA 三元组(保密性、完整性、可用性)评估漏洞可能造成的影响。
  • CVSS 分数或类似指标:参考通用漏洞评分系统或其他相关指标。
  • 攻击链中的连接强度:例如,漏洞 A 能够使利用 B 成为可能,这种关联的强度会影响评分。

过程管理

  • 基于树的状态跟踪:对攻击进展进行基于树的状态跟踪,清晰记录攻击过程中的各个状态。
  • 统计分析:对成功和失败的模拟攻击路径进行统计分析,以便更好地了解攻击策略的有效性。
  • 进度监控:对照渗透测试的目标进行进度监控,确保攻击行动朝着预期目标推进。

📄 许可证

本项目采用 MIT 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端