返回市场
渗透测试思考MCP

渗透测试思考MCP

作者:ibrahimsaleem24 星标更新:2025-08-30

项目介绍

PentestThinkingMCP

这是研究论文的主要和基础实现:

LIMA:利用大型语言模型和MCP服务器进行初始机器访问

该项目作为论文中描述的主要和基本系统,提供了一个实用框架,用于通过大型语言模型(LLMs)与模型上下文协议(MCP)服务器协同工作,自动化初始访问侦察、枚举和利用任务。


研究背景

此仓库是论文《LIMA:利用大型语言模型和MCP服务器进行初始机器访问》中引用的主要代码库。该研究介绍了LIMA,这是一个模块化系统,将现成的LLMs与MCP服务器配对,以自动化渗透测试任务,如侦察、枚举、漏洞评估和利用。项目展示了如何使用LLMs自主推理攻击路径、生成利用程序,并在HackTheBox公共机器和自定义环境中完成初始访问挑战,只需最少的人工干预。

研究亮点:

  • 对于某些任务,LIMA比专家测试者快2倍,包括自动解决CAPTCHA和执行攻击链。
  • 该系统提供了AI增强型渗透测试在初始访问阶段的第一个定量基准。
  • 模块化设计允许轻松集成其他LLMs,用于未来的研究和发展。

更多详情,请参阅全文或本仓库中的摘要。


PentestThinkingMCP是什么?

PentestThinkingMCP 是一个高级模型上下文协议(MCP)服务器,旨在赋能人类和AI渗透测试人员。它提供:

  • 使用束搜索和蒙特卡洛树搜索(MCTS)进行自动攻击路径规划
  • 分步推理,适用于CTF、Hack The Box(HTB)和现实世界渗透测试
  • 攻击步骤评分和优先级排序
  • 每一步的工具推荐(例如,nmap、metasploit、linpeas)
  • 高亮显示最有希望的利用链的关键路径
  • 基于树的推理报告和文档

它为什么特别?

  • 将LLMs提升到新的水平:将普通LLM转变为结构化的、有条理的渗透测试计划师和顾问
  • 自动化复杂推理:发现多阶段攻击链,而不仅仅是单一利用
  • 适用于CTF、HTB和现实世界渗透测试:适应任何需要逐步攻击逻辑的场景
  • 弥合AI与黑客之间的差距:使AI成为进攻安全的真实伙伴

特性

  • 攻击建模的双搜索策略:
    • 可配置宽度的束搜索(用于方法论的利用链发现)
    • 复杂决策空间的MCTS(用于具有未知因素的动态攻击场景)
  • 证据/漏洞评分和评估
  • 基于树的攻击路径分析
  • 潜在攻击向量的统计分析
  • 符合MCP协议

它是如何工作的?

  1. 输入: 你(或你的AI)提供当前攻击步骤/状态(例如,“在10.10.10.10上枚举SMB”)。
  2. 推理: 服务器使用束搜索或MCTS探索可能的下一步骤,对其进行评分和优先级排序。
  3. 输出: 返回最佳的下一步骤、完整的攻击链、推荐工具,并高亮显示关键路径。

示例工作流程:解决HTB机器

  1. 侦察: 输入:attackStep: "从10.10.10.10的初步侦察开始" 输出:运行nmap -p- 10.10.10.10(推荐工具:nmap)
  2. 枚举: 输入:attackStep: "运行nmap -p- 10.10.10.10" 输出:在445端口上枚举SMB(推荐工具:enum4linux)
  3. 漏洞分析: 输入:attackStep: "在445端口上枚举SMB" 输出:搜索公开的SMB漏洞(CVE-2017-0144)(推荐工具:searchsploit)
  4. 利用: 输入:attackStep: "搜索公开的SMB漏洞(CVE-2017-0144)" 输出:利用SMB的EternalBlue(CVE-2017-0144)(推荐工具:metasploit)
  5. 权限提升: 输入:attackStep: "以用户身份获得shell" 输出:运行winPEAS进行权限提升检查(推荐工具:winPEAS)
  6. 获取root/flag: 输入:attackStep: "找到user.txt,需要root" 输出:检查AlwaysInstallElevated误配置(推荐工具:手动调查)

安装

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)

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

算法细节

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

使用案例

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

许可证

MIT