dsh-pentest 使用指南
为 DeepSeek Harness 提供"渗透模式":在授权范围内记录目标、探索链路、漏洞与资产,并把整张图在 Web 端以可缩放视图实时展示。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-pentest
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add github:howmp/dsh-pentest
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 领域模型(
src/dsh-pentest/src/spec.ts):storage domainpentest(version 2)——goals/intents/ - 确定性 id(
store.ts):节点/边 id 为<kind>-<n>(按会话计数,goal 重置后归零)——工具返回 id 供模型 - 工具(
tools.ts):pentest_submit(子 agent 直写指定父 intent)/pentest_add_goal(重置整图)/pentest_add_intent(恰好一个锚点)/ - 会话投影(
projection.ts):折叠已日志化的pentest_*调用为{ goal, nodes, assets, edges, counts }, - Web 标签页(
src/dsh-client-ui-pentest):按会话注册(当前会话或列表祖先链含pentest预设即显示,
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
谁真正负责写入渗透记录?
由"决策 agent"(开启渗透模式后的根 agent)调用 pentest_add_* 系列工具写入;执行/探索子 agent 只能调用 pentest_submit,由服务端从会话父子关系解析父会话后写入,决策 agent 不再手工转录。
渗透记录存在哪里?
bundle 自带 sqlite 后端,路径为 $DSH_HOME/storages/pentest-sessions.db;其它存储域仍走宿主的 json 后端,不会被本插件污染。
不填可复现步骤能记录漏洞吗?
不能。pentest_add_finding / pentest_submit 都要求至少一条 reproducibleSteps,否则在持久化层被拒;这是 schema 的硬约束。
可以跨会话或跨项目续跑同一份记录吗?
不能。记录的物理键是 sessionId:id,新 pentest_add_goal 会清空本会话的整张图并把 id 计数器归零;想保留结果请先 pentest_state / pentest_graph / pentest_report 导出。
插件会替我做授权把关吗?
不会。authorization 只是写进 goal 的声明性字段,最终报告里也会留痕;扫描/利用动作是否被允许仍由部署侧的沙箱、审批或网络隔离承担。
Web 的"渗透"标签页什么时候会出现?
只在当前会话(或其会话列表中的祖先)使用了 pentest agent 预设时才会注册;普通会话即使注入包也不会出现该标签。
我用的是 Windows,能用吗?
能。bundle 本身跨平台,但 sqlite 后端依赖 Node.js 自带的 node:sqlite,要求宿主 Node >= 22.5;Windows 的 bash 工具在该预设里默认禁用,改用 pwsh。
怎么彻底卸载?记录还在吗?
dsh plugin --profile web remove howmp/dsh-pentest 即可;sqlite 文件 $DSH_HOME/storages/pentest-sessions.db 不会自动删除,需要手动清理。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.6
- Node: >=22.5
- Platforms: macOS, Windows, Linux
- Native modules: node:sqlite
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则