dsh-pentest 插件实战:基于 DeepSeek Harness 的可恢复 AI 渗透测试工作流
当 AI Agent 开始承担真实的渗透测试任务时,最棘手的问题往往不是"能不能挖到漏洞",而是过程是否可控、证据是否扎实、中断后能否接着干。dsh-pentest 正是为解决这些痛点而生的 DeepSeek Harness(DSH)渗透测试模式插件。它将侦察、资产归档、逐项验证、证据复核和报告生成串成一条可追踪的工作流,配合 SQLite 持久化存储与 Web 可视化界面,让每一次 AI 驱动的安全测试都有据可查、断点可续。当前实现版本为 0.1.0-rc.27。
如果你正在寻找一种能把"AI 渗透测试"从聊天式玩票升级为规范化流程的方案,这篇文章会带你完整了解 dsh-pentest 的功能设计、技术架构与安装部署方法。

产品介绍:什么是 dsh-pentest
dsh-pentest 是一个面向 DeepSeek Harness 的可恢复渗透测试模式,以自包含 bundle 包(@howmp/dsh-pentest)的形式分发——宿主插件、Web 界面、SQLite 后端和渗透模式预设通过包内 exports 一同打包,Release 资产可直接由 dsh plugin add 一键安装。
它的核心理念可以概括为"先侦察、再测试、重证据、可恢复":
- 先侦察再测试:子域名、目录/端点、端口/服务、框架指纹、存储桶和前端资源统一归档,避免盲目发包。
- 资产驱动推进:新发现的 API、路由、对象 ID、内部 host、组件版本和云资源自动进入待测队列。
- 中断可恢复:任务 checkpoint、租约、指数退避、阻塞状态和幂等提交机制,保证断线后不重复劳动。
- 漏洞质量门槛:只有符合赏金/授权范围,且具备复现步骤、观察结果、对照结果和影响证据的问题,才会进入 finding。
整个项目采用领域模型驱动设计:storage domain pentest(version 2)包含 goals / intents / facts / findings / assets / tasks / coverage / submissions / edges 九类实体,其中"边"就是链路词汇——spawns(goal→intent)、yields(intent→fact)、derived_from(fact→intent)、proves(intent→finding),资产间用 parent(asset→asset)关联。节点与边使用确定性 id(<kind>-<n>,按会话计数,goal 重置后归零),工具返回 id 供模型跨调用引用,会话投影则从日志纯重放出同一张图。
核心功能:覆盖渗透测试全生命周期
探索链路可视化
Web 界面中的"探索链路"标签基于 @xyflow/react 渲染有向图,边上带有关系胶囊(意图链/产出/推导自/证实),直观呈现目标意图如何被事实推导、最终如何被漏洞证实。布局为静态分层,支持平移缩放。

漏洞视图:证据链完整才能入库
漏洞(finding)必须填写可复现步骤、赏金资格,以及观察/对照/影响三类证据。视图按严重度、描述、复现步骤和影响资产组织展示,每一条 finding 都对应完整的验证链路,而不是一句模糊的"可能存在漏洞"。

资产视图:列表与图双模式
资产按 eligible、unknown、excluded 三种状态管理,只有符合授权范围的资产才进入主动测试。视图支持列表和图两种模式,覆盖项按业务面和证据强度登记,并自动生成去重的测试任务。

报告生成:有门槛才出终稿
输出前系统会检查任务、覆盖项、待验证线索和未测试资产——只要存在未覆盖资产、未完成任务或阻塞项,就只会输出阶段报告而非最终报告。报告标签页基于当前会话记录实时生成 Markdown,支持一键复制和保存为 .md 文件。
子 Agent 协作工具集
插件向 DSH 注册了完整的 pentest_* 工具族:
| 工具 | 作用 |
|---|---|
pentest_add_goal |
创建目标并重置整图(新一轮 engagement 的入口) |
pentest_add_intent |
建立侦察/验证意图(恰好一个锚点,自动建任务) |
pentest_add_fact / pentest_add_finding / pentest_add_asset |
写入事实、漏洞与资产 |
pentest_update_asset / pentest_update_task |
更新资产状态与任务进度 |
pentest_add_coverage |
登记覆盖项 |
pentest_submit |
子 agent 直写指定父 intent,支持幂等重试 |
pentest_state / pentest_graph / pentest_report |
读取状态、图与报告 |
协议层通过系统提示词段 pentest:protocol(order 50)约束行为:先侦察再按资产推进、WAF 场景降低噪声、漏洞必须满足赏金资格与复核证据,且与用户交互一律使用中文。
技术优势:为什么它适合做规范化渗透
低噪声策略。 插件识别 WAF、CDN、风控和限速后会自动降低请求频率与并发,避免高强度 fuzz、批量爆破和破坏性验证——这对持有授权但怕被风控封禁的测试场景尤为关键。
幂等提交与断点续跑。 网络中断时,子 agent 使用相同 submissionId 重试即可;同一会话在进程重启、页面重连或点击"继续"后,会依据任务 checkpoint、租约和提交幂等记录自动续跑,不会重复已完成的验证。
Skill 融合。 插件吸收了 clown-src-6k-skill 的锁面/自由跳节奏、一种子闭环、短表与价值排序、黑盒/白盒双轨、按特征选择知识模块和阶段自检等方法论,但详细攻击载荷资料不会作为盲扫指令注入,确保行为可控。
会话投影与确定性回放。 projection.ts 将已日志化的 pentest_* 调用折叠为 { goal, nodes, assets, tasks, coverage, edges, counts, completion },镜像 store 的引用拒绝语义;各类实体上限 200(超出后最旧被逐出,悬挂边同步清理),并支持旧日志回放。
存储隔离。 渗透记录写入 $DSH_HOME/storages/pentest-sessions.db(SQLite,经 bundle 补丁路由),宿主其它域的存储不受影响,仍使用宿主默认 json 后端。

安装与部署教程
前置要求
- 已安装 DeepSeek Harness(DSH),运行时 Node.js 版本需 >= 22.5(SQLite 后端依赖 Node.js 内置的
node:sqlite)。
方式一:从 Release URL 安装(推荐)
dsh plugin --profile web add https://github.com/baianquanzu/dsh-pentest/releases/latest/download/dsh-pentest.tar.gz
方式二:本地文件安装
先下载 Release 中的 dsh-pentest.tar.gz,再执行:
dsh plugin --profile web add file:C:\path\to\dsh-pentest.tar.gz
安装完成后重启 dsh,在新会话中选择自动注册的「渗透模式」即可开始工作。
方式三:本地源码构建
Windows 用户可直接运行:
.\start-pentest.bat
手动构建和校验流程如下:
npm ci
npm test
npm run build
npm run build:check
构建产物位于 dist\howmp-dsh-pentest-<version>.tgz,安装到 DSH Web profile 后同样需要重启 DSH Web 进程。
标准工作流
一次完整的渗透测试 engagement 通常按以下节奏推进:
- 调用
pentest_add_goal创建目标,并在authorization参数中填写授权说明(授权对象 / 书面许可引用),该信息会写入状态与最终报告留痕。 - 建立侦察 intent,归档子域名、端点、端口、框架和其他资产。
- 将资产标记为
eligible、unknown或excluded,只有符合范围的资产进入主动测试。 - 为资产登记覆盖项,按业务面和证据强度创建去重的测试任务。
- 子 agent 通过
pentest_submit提交事实、资产、覆盖状态和已复核结果;网络中断时使用相同submissionId重试。 - 输出前检查任务、覆盖项、待验证线索和未测试资产;完成门槛满足后才生成最终报告。
需要注意:授权说明只是审计事实,并非门禁——扫描/利用动作仍受部署沙箱与审批约束。重新开始一次 engagement 必须显式调用新的 pentest_add_goal,它会清空当前会话探索图。另外,Web 图是窗口视图,UI 计数反映的是最新 200 个节点/资产/边,完整记录以 pentest_state / pentest_report 读取的存储层数据为准。
应用场景
- 授权渗透测试与 SRC 赏金:漏洞质量门槛(赏金资格 + 三类证据)天然契合赏金提交流程,复现步骤直接可搬运到报告。
- 企业内部安全审计:资产归档与覆盖检查能回答"测了什么、还有什么没测",审计留痕完整。
- 安全训练与靶场演练:配合 vulnweb 等公开靶场,可视化探索链路让学习过程一目了然。
- CI/CD 中的基线核查:低噪声策略与只读优先的验证方式,适合作为流水线中的轻量安全检查环节。

总结
dsh-pentest 把 AI Agent 的渗透能力装进了一套有纪律的流程:资产驱动、证据准入、断点续跑、覆盖可查。它不追求"全自动乱扫"的刺激,而是把每一次验证都沉淀为可回放、可复核的结构化记录——这恰恰是 AI 渗透测试走向生产环境最需要的能力。项目当前版本 0.1.0-rc.27,仍在快速迭代,感兴趣的开发者可以通过以下渠道获取: