大模型自动化渗透-零伍篇

admin 2026-05-02 06:30:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档探讨了大模型在渗透测试中的四种混合架构模式:松耦合共存适用于小型渗透,MCP封装为Skill解决token开销问题,分层协作适合复杂Web渗透,发现-执行混合提升长期效率。核心结论是通过组合MCP与Skill工具链,在保证外部服务连接能力的同时优化上下文消耗,针对不同场景提供具体架构选择建议与预期性能提升数据。 综合评分: 85 文章分类: 渗透测试,安全工具,技术标准,安全运营,解决方案


cover_image

大模型自动化渗透-零伍篇

原创

Aisafe Aisafe

Aisafe

2026年4月30日 18:07 中国香港

在小说阅读器读本章

去阅读

前几篇 分别描述了在线/本地大模型+mcp及大模型+skill的架构方式

那么大模型+mcp+skill呢?

若采用“大模型+MCP+Skill”的混合架构,在暂时忽略MCP相关流程带来的额外Token成本的情况下,该架构可以同时发挥两类能力的优势:对于通用型的工具调用场景(如公共网络搜索、通用数据分析),可以依托成熟的标准化Skill实现高效稳定的调用;而对于需要深度定制、本地化部署的专属工具调用场景,则可以通过MCP完成对接,突破Skill的能力边界。这种组合模式能够同时兼顾工具调用的效率与场景覆盖的深度,在工具的深度利用与复杂任务的落地方面,能够产出更优的实践成果。

一、基础原生架构:两个独立的核心模型

首先要明确,Skill和MCP本身是两个完全独立的架构,解决不同的问题:

1. 纯Skill原生架构

┌─────────────────────────────────────────────────┐│ Claude Code Runtime                             ││ ┌─────────────┐    ┌─────────────────────────┐ ││ │ Skill元数据 │    │ 按需加载的Skill完整内容 │ ││ │ (100token/个)│    │ (5k token以内,用才加载)│ ││ └─────────────┘    └─────────────────────────┘ ││                                                 ││ 原生工具集: Bash/Read/Write/WebFetch/...        │└─────────────────────────────────────────────────┘                ↓ (本地调用)┌─────────────────────────────────────────────────┐│ 本地环境                                      ││ 本地命令行工具: nmap/sqlmap/gdb/...            │└─────────────────────────────────────────────────┘

工作流程:

启动时:仅加载所有Skill的元数据(每个100~500token),让Claude知道有哪些技能

触发时:仅当任务匹配时,加载对应Skill的完整内容

执行时:Claude用原生的Bash工具,直接调用本地的命令行工具,没有额外的通信层

核心效果:

初始token开销:~1k token(10个Skill的情况下)

全程无额外通信开销,工具调用就是原生的进程调用

缺点:无法处理带认证、有状态的外部服务

2. 纯MCP原生架构

┌─────────────────────────────────────────────────┐│ Claude Code Runtime                             ││ ┌─────────────────────────────────────────────┐ ││ │ 全量MCP工具Schema (每轮都注入)              │ ││ │ (300token/工具, 20个工具就是6k/轮)         │ ││ └─────────────────────────────────────────────┘ ││                                                 ││ MCP Client: 处理JSON-RPC通信                   │└─────────────────────────────────────────────────┘        ↓ (JSON-RPC over stdio/HTTP)┌─────────────────────────────────────────────────┐│ MCP Server 独立进程                            ││ ┌─────────────────────────────────────────────┐ ││ │ 工具封装: 处理认证/会话/参数校验              │ ││ │ 对接外部服务: Burp/Shodan/企业数据库/...     │ │└─────────────────────────────────────────────────┘

工作流程:

启动时:启动所有MCP Server,加载所有工具的Schema,全程注入到每轮对话的上下文

调用时:Claude通过JSON-RPC协议,调用MCP Server的工具,Server处理完返回结果

核心效果:

初始token开销:~55k token(5个常用MCP的情况下)

能处理复杂的认证、会话、状态管理

缺点:不管用不用工具,每轮都要为Schema付费,开销大

二、混合架构:

模式1:松耦合共存架构

架构图:

┌───────────────────────────────────────────────────────────┐│ Claude Code Runtime                                      ││ ┌─────────────┐ ┌─────────────────────────────────────┐  ││ │ Skill元数据 │ │ 全量MCP工具Schema                   │  ││ └─────────────┘ └─────────────────────────────────────┘  ││                                                           ││ 原生工具集 + MCP Client                                  │└───────────────────────────────────────────────────────────┘    ↓本地调用          ↓JSON-RPC调用┌───────────────┐   ┌───────────────────┐│ 本地渗透工具   │   │ 外部MCP服务       ││ nmap/sqlmap...│   │ Burp/Shodan/...  │└───────────────┘   └───────────────────┘

工作流程:

Skill和MCP完全独立,互不影响:

本地工具的任务,Claude自动调用Skill,用Bash执行

外部服务的任务,Claude自动调用MCP工具

二者的加载、执行完全分开,没有耦合

核心效果:

初始token开销:~56k(Skill的1k + MCP的55k)

优点:实现最简单,不用改任何代码,装完就能用

缺点:MCP的全程token overhead还是存在,如果你有很多MCP,上下文还是会被占满适用场景:小型渗透测试,只有1~2个常用的MCP,大部分是本地工具,比如你平时用ctf-skills,偶尔用一下Shodan MCP。

模式2:MCP封装为Skill的架构(解决MCP的token问题)

架构图:

┌───────────────────────────────────────────────────────────┐│ Claude Code Runtime                                      ││ ┌─────────────────────────────────────────────────────┐  ││ │ 统一的Skill元数据 (MCP的能力被包装成Skill)           │  ││ └─────────────────────────────────────────────────────┘  ││                                                           ││ 原生工具集 + 按需启动的MCP Client                        │└───────────────────────────────────────────────────────────┘                ↓ 触发Skill时才启动                ↓ JSON-RPC调用┌───────────────────────────────────────────────────────────┐│ 按需启动的MCP Server                                     ││ 封装了原来的MCP工具,只有用到的时候才启动、加载Schema     │└───────────────────────────────────────────────────────────┘

工作流程:

用mcp-to-skill-converter把MCP包装成Skill:

启动时:把MCP的能力当成Skill的元数据,只加载100token,不启动MCP Server

触发时:当你要用到这个MCP的能力时,才启动MCP Server,加载工具的Schema

执行时:和原来的MCP调用完全一样,JSON-RPC通信

核心效果:

初始token开销:~100token(和普通Skill一样)

用完之后,MCP的Server可以关闭,上下文也可以回收,不会一直占用

优点:完全保留了MCP的认证、会话能力,又解决了MCP的全程token overhead适用场景:你有很多不常用的MCP工具,比如漏洞库、情报服务,平时不用,只有特定任务才用,比如渗透测试里偶尔查一下CVE的MCP。

模式3:分层协作架构(复杂渗透的最佳方案)

架构图:

┌───────────────────────────────────────────────────────────┐│ Claude Code Runtime                                      ││ ┌─────────────────────────────────────────────────────┐  ││ │ Skill层: 领域知识/攻击流程,教Claude怎么用工具      │  ││ └─────────────────────────────────────────────────────┘  ││ ┌─────────────────────────────────────────────────────┐  ││ │ MCP工具Schema: 外部服务的工具定义                   │  ││ └─────────────────────────────────────────────────────┘  ││                                                           ││ MCP Client: 处理和外部服务的通信                         │└───────────────────────────────────────────────────────────┘                ↓ Skill指导Claude调用MCP工具                ↓ JSON-RPC调用┌───────────────────────────────────────────────────────────┐│ MCP Server: 对接外部有状态服务,比如Burp Suite            ││ 处理HTTP会话、代理流量、认证这些复杂逻辑                   │└───────────────────────────────────────────────────────────┘

工作流程:

这是最适合复杂Web渗透的架构,MCP做连接,Skill做流程:

MCP层:负责打通和外部有状态服务的连接,比如Burp的代理流量、会话管理,处理所有的通信细节

Skill层:给Claude灌输领域知识,比如「JWT漏洞要怎么测、GraphQL要怎么查」,教Claude怎么调用MCP工具来完成这些攻击

执行时:Claude根据Skill的指导,调用MCP工具,比如用Burp MCP修改请求、测试漏洞

核心效果:

初始token开销:~6k(Skill的1k + Burp MCP的5k)

执行效率:比纯MCP提升40%,比纯Skill提升30%

优点:既用到了MCP的状态管理能力,又用到了Skill的领域深度,复杂场景的漏洞发现率最高适用场景:复杂的Web渗透、企业API测试,比如你用Burp做代理,需要Claude帮你分析流量、测试漏洞,就是这个架构。

模式4:发现-执行混合架构

架构图:

首次探索阶段:┌───────────┐    ┌───────────┐│ MCP发现   │ -> │ 固化成Skill│└───────────┘    └───────────┘后续执行阶段:┌───────────┐│ Skill执行 │└───────────┘

工作流程:

首次对接企业内部系统时,用MCP探索系统的结构:比如用数据库MCP探索表结构、用API MCP探索端点

探索完成后,把成熟的查询、测试流程固化成Skill

之后的测试、渗透,就用Skill来执行,不用再加载MCP的Schema

核心效果:

首次探索的token开销:~11k(MCP的10k + Skill的1k)

后续执行的token开销:~1k,比纯MCP减少65%

优点:第一次用MCP的灵活探索,之后用Skill的高效执行,适合重复的企业内部渗透测试适用场景:企业内部的定期渗透测试,目标的系统结构比较固定,不用每次都重新探索。

架构选择的决策表

| | | | | | — | — | — | — | | 你的场景 | 推荐架构 | 预期token开销 | 效率提升 | | 小型CTF/本地渗透,只有1~2个外部工具 | 松耦合共存 | ~56k | 基础可用 | | 有很多不常用的外部情报工具 | MCP封装为Skill | ~100初始 | 省98%的初始开销 | | 复杂Web/API渗透,用Burp做代理 | 分层协作 | ~6k | 提升40%执行效率 | | 企业内部定期渗透,目标固定 | 发现-执行 | 首次11k,后续1k | 长期省65%的token |

当然这部分架构不存在固定性,部分项目可能即是又是,沾点边。

比如:https://github.com/DouglasRao/Claude-Pentest-Skills

Claude-Pentest-Skills

🎯 技能列表

该项目包含 8个核心技能,分为两个独立的渗透测试轨道:

🔴 Web轨道(4个技能)

| | | | — | — | | 技能名称 | 描述 | | web-recon | Web侦察:子域名枚举、DNS解析、存活检测、URL发现、JS分析、CMS扫描、nuclei漏洞扫描 | | web-exploitation | Web漏洞利用:SQLi、XSS、LFI、SSRF、SSTI、XXE、JWT攻击、OAuth滥用、文件上传绕过 | | web-postexploitation | Web后渗透:shell稳定、权限提升、凭证窃取、横向移动、持久化 | | web-report | Web报告生成:整合侦察和利用结果,生成技术/执行报告,支持Notion发布 |

🔵 AD轨道(4个技能)

| | | | — | — | | 技能名称 | 描述 | | ad-recon | AD侦察:主机发现、SMB/LDAP枚举、Kerberos用户枚举、BloodHound数据收集、AS-REP/Kerberoast识别 | | ad-exploitation | AD漏洞利用:AS-REP Roasting、Kerberoasting、哈希破解、DCSync、Golden/Silver Ticket | | ad-postexploitation | AD后渗透:LSASS转储、凭证窃取、横向移动(PTH/PTT)、ACL滥用、权限提升、持久化 | | ad-report | AD报告生成:整合攻击链,生成技术/执行报告,支持Notion发布 |

🔗 MCP集成支持

所有技能均支持MCP调用,主要集成的MCP服务包括:

| | | | — | — | | MCP服务 | 用途 | | mcp__Notion__* | 发布报告和证据到Notion | | mcp__burp__* | Burp Suite集成,重放请求、确认漏洞、捕获证据 | | mcp__hexstrike-ai__* | 各种扫描工具(nmap、enum4linux、netexec、hashcat、sqlmap等) | | mcp__postman__* | REST/GraphQL API测试、IDOR测试 | | mcp__claude-in-chrome__* | Chrome浏览器自动化、DOM/网络请求分析 |

🔧 执行模式

每个技能支持多种执行模式:

–quick

:快速模式,适用于时间受限的测试

–full

:完整模式,执行所有阶段

–passive

/–unauth:被动/未认证模式(仅侦察)

–authenticated

:已认证模式(需要凭据)

📁 项目结构

skills/├── web-recon/          # 含recon_passive.sh, recon_active.sh, recon_vuln.sh├── web-exploitation/   # 含web_exploit.sh├── web-postexploitation/├── web-report/├── ad-recon/           # 含ad_enum.sh├── ad-exploitation/    # 含ad_attacks.sh├── ad-postexploitation/└── ad-report/

🏛️ 架构模式分析

主体 「分层协作架构」,同时兼具松耦合共存架构的特点。

    为什么是“两种架构”?

因为它同时满足:

✅ 分层协作(结构维度)

Skill:流程定义

MCP:执行工具

✅ 松耦合共存(依赖维度)

Skill 不绑定 MCP

MCP 可替换

通过 LLM 间接协作

🏗️ 架构设计解析

1. 整体架构概览

这是一个分层架构设计,Skill 是核心工作流,MCP 是外部工具集成层:

┌─────────────────────────────────────────────────────────────────┐│                      用户请求入口                                │└─────────────────────────┬───────────────────────────────────────┘                          │                          ▼┌─────────────────────────────────────────────────────────────────┐│                        Skill层 (核心工作流)                      ││  ┌──────────────────┐  ┌──────────────────┐                    ││  │   web-recon      │  │   ad-recon       │                    ││  │   web-exploitation│  │   ad-exploitation│                    ││  │   web-postex     │  │   ad-postex      │                    ││  │   web-report     │  │   ad-report      │                    ││  └────────┬─────────┘  └────────┬─────────┘                    ││           │                     │                               │└───────────┼─────────────────────┼───────────────────────────────┘            │                     │            ▼                     ▼┌─────────────────────────────────────────────────────────────────┐│                        MCP层 (工具集成)                          ││  ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐  ││  │  Notion    │ │   Burp     │ │  Postman   │ │ hexstrike  │  ││  │ (报告发布) │ │ (漏洞验证) │ │ (API测试)  │ │ (扫描工具) │  ││  └────────────┘ └────────────┘ └────────────┘ └────────────┘  │└─────────────────────────────────────────────────────────────────┘

2. Skill 的作用与使用时机

Skill 是渗透测试的核心工作流引擎,包含完整的攻击链步骤:

| | | | — | — | | 使用场景 | 说明 | | 开始渗透测试时 | 用户说”开始对目标进行Web侦察”或”开始AD渗透”时,激活对应的skill | | 执行特定阶段时 | 需要执行侦察→利用→后渗透→报告的完整流程时 | | 自动化脚本执行 | skill包含bash脚本(如 recon_passive.sh 、 ad_enum.sh ),批量执行任务 | | 结构化输出 | skill会输出JSON摘要(如 —RECON_SUMMARY_JSON— ),便于结果解析 | | 检查点机制 | 支持断点续跑( .phase_X.done 文件),不会重复执行已完成阶段 |

Skill内部结构:

# 每个skill包含:scripts/           # bash脚本目录  ├── common.sh    # 共享函数(日志、工具检测、检查点管理)  └── main.sh      # 主脚本(各阶段逻辑)SKILL.md           # 技能定义和执行指南

3. MCP 的作用与使用时机

MCP(Model Context Protocol)是外部工具的调用接口,用于扩展skill的能力:

| | | | — | — | | 使用场景 | 说明 | | 需要可视化工具时 | 用 mcp__burp__* 重放请求、确认漏洞、捕获证据截图 | | 需要API测试时 | 用 mcp__postman__* 测试REST/GraphQL端点 | | 需要发布报告时 | 用 mcp__Notion__* 将报告和证据发布到Notion | | 需要专业扫描时 | 用 mcp__hexstrike-ai__* 调用专业扫描工具 | | 需要浏览器自动化时 | 用 mcp__claude-in-chrome__* 分析JS/SPA应用 |

MCP调用模式:

# 在skill执行过程中,根据需要调用MCPmcp__Notion__notion-create-pages   # 创建报告页面mcp__burp__replay-request           # 重放请求验证漏洞mcp__hexstrike-ai__nmap_scan        # 执行nmap扫描

以 web-recon 为例,完整流程如下:

┌─────────────────────────────────────────────────────────────────────┐│                    web-recon Skill 执行流程                         │├─────────────────────────────────────────────────────────────────────┤│                                                                     ││  [用户] ──"开始Web侦察"──→ [Skill激活]                              ││         │                              │                           ││         │                              ▼                           ││         │                    执行bash脚本                           ││         │                    ├─ recon_passive.sh                    ││         │                    │  → subfinder, assetfinder...         ││         │                    ├─ recon_active.sh                     ││         │                    │  → katana, feroxbuster...            ││         │                    └─ recon_vuln.sh                      ││         │                       → nuclei扫描                        ││         │                              │                           ││         │                              ▼                           ││         │                    输出JSON摘要                           ││         │                              │                           ││         │                              ▼                           ││         │                    判断是否需要MCP                         ││         │                    ├─ 有Notion MCP? → 发布报告           ││         │                    ├─ 有Burp MCP?   → 验证关键漏洞        ││         │                    └─ 有Chrome MCP? → JS分析             ││         │                              │                           ││         │                              ▼                           ││         │                    生成侦察报告                           ││         │                              │                           ││         └──────────────────────────────┴───────────────────────────┘│                                        │                           ││                                        ▼                           ││                                   [报告交付给用户]                   │└─────────────────────────────────────────────────────────────────────┘

5. 关键区别总结

| | | | | — | — | — | | 维度 | Skill | MCP | | 核心职责 | 定义渗透测试工作流和执行步骤 | 集成外部工具和服务 | | 执行方式 | 运行bash脚本自动化执行 | 通过API调用外部服务 | | 输出形式 | JSON摘要、文件输出 | 工具执行结果、操作反馈 | | 使用时机 | 执行完整攻击阶段时 | 需要特定工具支持时 | | 依赖关系 | 可以独立运行 | 可选,增强skill能力 | | 扩展方式 | 添加新脚本和阶段 | 集成新的MCP服务 |

6. 典型使用场景示例

场景1:纯CLI渗透(不使用MCP)

用户: "对 example.com 进行快速Web侦察"→ 激活 web-recon skill→ 执行 recon_passive.sh + recon_vuln.sh→ 生成JSON摘要和报告→ 直接向用户展示结果

场景2:使用MCP增强

用户: "对 example.com 进行完整侦察并发布到Notion"→ 激活 web-recon skill→ 执行所有阶段脚本→ 检测到 Notion MCP 可用→ 调用 mcp__Notion__notion-create-pages 发布报告→ 调用 mcp__Notion__notion-update-page 附加证据截图→ 通知用户报告已发布到Notion

场景3:MCP验证漏洞

用户: "验证这个SQL注入漏洞"→ 激活 web-exploitation skill→ 执行 sqlmap 扫描确认漏洞→ 检测到 Burp MCP 可用→ 调用 mcp__burp__replay-request 重放请求→ 调用 mcp__burp__capture-screenshot 捕获证据→ 将证据附加到报告中

核心原则:Skill是主体,MCP是辅助。Skill定义”做什么”和”怎么做”,MCP提供额外的工具能力来增强执行效果。MCP是可选的,但能显著提升测试效率和报告质量。

是骡子是马,拉出来溜溜

继续使用纯skill架构的项目【ljagiello/ctf-skills】,在Reverse类型的题目中 拿到了错误的flag

切换为该项目【Claude-Pentest-Skills】 不开mcp,单纯使用skill,也拿到是错的

那么配置好mcp调用ida呢?

我们成功拿到了正确的flag!!!

开始叠甲:作者实际测试中 也并没有觉得mcp 就一定比单纯使用skill厉害,纯 skill 在解题时间和省 token 上确实好很多。不过在一些特定题型方面,比如逆向、pwn 【再次叠甲】等等一些部分题型上纯skill确实力不从心。

Skill 主要用于封装和组织大模型的原生能力(如推理、生成、任务编排等),而 MCP(Model Context Protocol)提供了一种标准化的外部工具接入与调用机制。

相比仅依赖 Skill 的架构,引入 MCP 后,大模型可以动态发现并调用外部工具(如安全测试工具、逆向分析工具、系统操作工具等),从而突破“仅依赖模型本体能力”的限制。

因此,MCP 并非替代 Skill,而是作为能力扩展层,与 Skill 形成互补关系:

Skill 负责能力编排与任务逻辑

MCP 负责外部能力接入与执行

在需要调用真实环境或专业工具的场景下,“LLM + MCP + Skill”的能力上限显著高于“LLM + Skill”;而在纯模型任务中,两者差异不显著。

本质上,这是从“模型能力驱动”向“模型 + 工具生态驱动”的架构演进。

正如作者在零叁篇说的,大模型+skill约等于真自动化渗透平台,那么大模型+skill+mcp 这个约等于终于又进了一步。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Aisafe Aisafe Aisafe《大模型自动化渗透-零伍篇》

评论:0   参与:  0