使用DeepSeek Harness进行渗透测试,dsh-pentest他来了
howmp
howmp
泷羽Sec
2026年8月20日 07:44
湖南
在小说阅读器读本章
去阅读
针对DeepSeek Harness(即dsh)的渗透测试模式,于授权的范围之内对目标予以记录,去探索线索,对结果加以验证,还有资产以及漏洞等情况,之后在Web当中运用探索链路、漏洞以及资产视图来进行展示。
这个目录乃是一个自包含的 bundle 包,名称为@howmp/dsh-pentest。宿主插件、Web 界面以及 sqlite 后端是通过包内的exports一同来进行分发的。Release 资产可以直接借助dsh plugin add来进行安装。
安装
从 Release URL 安装
dsh plugin --profile web add https://github.com/howmp/dsh-pentest/releases/latest/download/dsh-pentest.tar.gz
或下载后从本地文件安装
dsh plugin --profile web add file:C:\\path\\to\\dsh-pentest.tar.gz
重新对dsh进行启动操作之后,于新的会话情况之中去选择自动进行注册的“渗透模式”
界面预览
模式选择
渗透模式选择
对话与执行
对话与执行
探索链路
探索链路
漏洞视图
漏洞视图
资产视图
资产视图
测试报告
测试报告
架构速览
领域模型的相关定义处于 src/dsh - pentest/src/spec.ts 这个文件之中。存储领域 pentest(版本 2)包含着六张表格,分别为 goals、intents、facts、findings、assets、edges。边乃是链路相关的词汇,存在 spawns(从目标到意图)、yields(从意图到事实)、derived_from(从事实到意图)、proves(从意图到发现),资产方面的关系采用 parent(资产到资产)。发现是必须得拥有 reproducibleSteps(至少一条)。
确定性的标识在 store.ts 当中予以实现。节点或者边的标识为-。此乃依据会话来进行计数的,当 goal 进行重置之后就会归为零。工具将标识返回给模型,让模型在跨调用的时候可以进行引用。会话投影是从日志纯粹地进行重放同一张图。
工具集(文件为tools.ts)之中有pentest\_submit(子agent直接书写指定父intent)、pentest\_add\_goal(重置整幅画面)、pentest\_add\_intent(恰是一个锚点)、pentest\_add\_fact、pentest\_add\_finding(步骤务必进行填写,能够关联并影响资产)、pentest\_add\_asset(可选parentId,空字符串当作根资产)、pentest\_state、pentest\_graph、pentest\_report 。
会话投影(处于projection.ts当中)将已经进行日志化处理的pentest\_\*调用折叠成为{ goal, nodes, assets, edges, counts }。镜像store的引用遭到了拒绝。上限统统都是各200。
Web标签页处于src/dsh-client-ui-pentest这个路径当中。它是按照会话来进行注册的。要是当前会话或者列表祖先链里边包含有pentest预设的话,那它就会显示出来;要是不属于渗透会话的话就会隐藏掉。它有四个子标签。第一个子标签是探索链路,它是@xyflow/react图,边上面带有意图链、产出、推导自、证实这些关系胶囊。第二个子标签是漏洞,包含着严重度、描述、可复现步骤、影响资产这些内容。第三个子标签是资产,有着列表和图这两种模式。第四个子标签是报告,能够进行Markdown渲染,还能够复制以及保存。
在instructions.ts这一协议当中,定义了系统提示词段pentest:protocol,顺序为50。沿着链路往前推进,子agent经过pentest_submit直接书写父intent,资产的呈现是先父后子,和用户进行交互的时候全部都使用中文。
已知边界
渗透相关的记录被写入到$DSH_HOME/storages/pentest-sessions.db这个文件当中,此数据库属于sqlite类型,并且还经历了bundle补丁路由的处理。而宿主其他域的存储并不会受到影响,依旧是宿主默认的json后端。
仅仅针对具有授权的目标来进行测试。pentest_add_goal这个函数里的authorization参数可以填入授权方面的说明,像是授权的对象或者书面许可引用这类相关内容。当把内容填进去之后,会被写入到状态之中,而且还会在最终的报告里面留下痕迹。它仅仅是对审计事实的一种体现,并非是门禁系统。扫描行为或者利用动作依旧还是需要受到部署沙箱以及审批流程的限制与约束。
记录是依据单个会话的作用范畴来进行的。不存在跨会话或者接着在项目里运行的那种状况。要是重新开启一次 engagement 的话,得要有新的 pentest_add_goal 才行。
关于图的布局处于静态分层这样的状况而言。能够对图进行平移以及缩放的操作。但是节点是不可以开展拖拽这类操作的。
目录结构
dsh-pentest/ # 项目根 = bundle 包 @howmp/dsh-pentest(零依赖,自包含)
├── package.json # bundle manifest:dsh.bundle.patch + dsh.client + exports 子路径
├── cordis.patch.yml # 补丁层:UI、sqlite 后端与 storage-domain 路由
├── lib/ # 构建产物(npm pack 的内容)
│ ├── index.js # 包入口:空 apply
│ ├── pentest.js # 宿主渗透插件:8 个 pentest_* 工具 + 协议注入 + 会话投影
│ ├── preset-root.js # 注册包内只读「渗透模式」预设目录(兼容 DSH rc.6)
│ ├── storage-sqlite.js # 渗透记录专用的 sqlite 后端(node:sqlite)
│ ├── ui-pentest.js # Web 插件宿主半:空 apply
│ ├── ui-pentest.client.js # Web 插件浏览器半:渗透视图标签页(3 个子标签,@xyflow/react 内联)
│ └── invariant.js # 探索图不变量伴生(与官方各包同构,生产环境不加载)
├── src/ # 源码快照(继续开发/重新构建用)
│ ├── index.ts / invariant.ts
│ ├── dsh-pentest/ # host 包源码:src/ + tests/ + tsconfig + tsdown + README
│ └── dsh-client-ui-pentest/ # client 包源码:src/client/(视图/图布局/注册)+ tests/
├── tests/bundle.spec.ts # bundle 补丁层测试
├── packages/ # 三个构建好的子包(仅作构建源保留;bundle 不再依赖它们)
│ ├── dsh-pentest/ # host 插件源码构建产物
│ ├── dsh-client-ui-pentest/ # Web 界面插件源码构建产物
│ └── dsh-storage-sqlite/ # sqlite 后端构建产物(来自 dsh 仓库,无独立源码)
├── preset/pentest/ # 「渗透模式」agent 预设(由 bundle 自动注册)
├── images/ # README 界面预览截图
└── README.md
正文
服务器推荐
阿里云全场九折优惠:
https://link.aitq.net/RcgjvF
image-20260721194150454
阿里云2核2g 99计划 99元每年,续费同价
image-20260721193517630
腾讯云2H2G 99 每年:
https://link.aitq.net/mVGWtG
image-20260721194058767
薄荷云活动16H16G25M,100G存储99/月,海外服务器:
https://www.boheidc.cn/aff/QOWYLYCV
往期推荐
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论