🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

授权渗透测试工具集 bzaics666/dsh-pentest-toolkit

DeepSeek Harness
bzaics66623 天前有提交已提供中文文档扫描:含敏感能力

按 PTES 八阶段推进授权渗透测试并自动成稿

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add bzaics666/dsh-pentest-toolkit
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · security
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@local/dsh-pentest-toolkit(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 04:29:32

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 执行外部命令来自配置/变量
    lib/probe.js:213
    execFile(
  • 发起网络请求
    lib/probe.js:368
    request = transport.request(
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按PTES八阶段推进
  • 自动生成测试报告

搭配skill使用的授权渗透测试工具集

README

由 DeepSeek 最新模型翻译生成
渗透测试工具集(@local/dsh-pentest-toolkit) 给 DeepSeek Harness 用的授权渗透测试工具集:按 PTES 的八个阶段推进一次全量渗透测试,把攻击面测绘、漏洞台账、报告成稿做成模型可以直接调用的工具,并且用状态机把阶段顺序锁死。 - 零运行时依赖:只使用 Node 内置模块,不 import 任何 @deepseek-ai/ 包。 这一点是刻意的:profile 的 node_modules 里通常解析不到 dsh 的包,一旦引入就会整份 bundle 装载失败。 - 纯 Host 插件:插入一行,注册 7 个工具;不发布服务、不需要 isolate realm。 - 能力边界:只做侦察与记录。不含漏洞利用、口令爆破、权限提升、横向移动或写入目标系统的动作——见下文「边界与合规」。 七个工具 | 工具 | 作用 | | pentest_workflow | 总控台:八阶段状态机。start 登记授权并开始,status 看进度与门禁,note 留结论,complete 推进,skip 跳过(要理由),reset 重来。 | | pentest_env_check | 体检本机安全工具链(20 项目录),报告可用性与版本,并标注同名但身份不符的可执行文件。只读。
展开完整文档(README 剩余 1 节)
渗透测试工具集(@local/dsh-pentest-toolkit)

给 DeepSeek Harness 用的授权渗透测试工具集:按 PTES 的八个阶段推进一次全量渗透测试,把攻击面测绘、漏洞台账、报告成稿做成模型可以直接调用的工具,并且用状态机把阶段顺序锁死。

- 零运行时依赖:只使用 Node 内置模块,不 import 任何 @deepseek-ai/ 包。
这一点是刻意的:profile 的 node_modules 里通常解析不到 dsh 的包,一旦引入就会整份 bundle 装载失败。
- 纯 Host 插件:插入一行,注册 7 个工具;不发布服务、不需要 isolate realm。
- 能力边界:只做侦察与记录。不含漏洞利用、口令爆破、权限提升、横向移动或写入目标系统的动作——见下文「边界与合规」。

七个工具

| 工具 | 作用 |
| pentest_workflow | 总控台:八阶段状态机。start 登记授权并开始,status 看进度与门禁,note 留结论,complete 推进,skip 跳过(要理由),reset 重来。 |
| pentest_env_check | 体检本机安全工具链(20 项目录),报告可用性与版本,并标注同名但身份不符的可执行文件。只读。 |
| pentest_recon | 单目标侦察:DNS 记录、常见端口 TCP 连通性、开放 Web 端口的 HTTP 指纹,结果写入资产台账。可追加一次本地 nmap -Pn -sT 复核。 |
| pentest_scan | 阶段 4 的受控检测:fingerprint(httpx) / template(nuclei) / content(ffuf)。返回候选,不是漏洞。 |
| pentest_assets | 资产台账查询与维护:list / get / remove / clear。 |
| pentest_findings | 漏洞台账增删改查:add / list / get / update / remove / stats,含等级、状态、CVSS、CWE、证据与修复建议。 |
| pentest_report | 出报告(Markdown / JSON):授权声明、执行摘要、风险统计、阶段执行记录、资产清单、漏洞详情、修复优先级。 |

八阶段与完成门禁

顺序由 pentest_workflow 强制:每个阶段只有在门禁满足时才能 complete 推进,所以阶段跳不过去。确实不适用某阶段时,必须用 skip 给出理由,而不是默默略过。

| 阶段 | 完成门禁 |
| 0 授权与准备 | 授权信息齐全(被测方 / 范围 / 授权依据 / 周期),start 时校验 |
| 1 信息收集与攻击面测绘 | 资产台账 ≥ 1 条 |
| 2 威胁建模 | 阶段 2 至少 1 条结论 |
| 3 漏洞发现与验证 | 漏洞台账 ≥ 1 条,或显式声明 noFindings: true |
| 4 受控利用与权限提升 | 阶段 4 至少 1 条结论,或 skip |
| 5 后渗透与影响评估 | 阶段 5 至少 1 条结论,或 skip |
| 6 清理与恢复 | 阶段 6 至少 1 条记录,或声明 noCleanupNeeded: true |
| 7 报告与复测 | 必须已生成过至少一份报告 |

阶段 6 的门禁最值得强调:遗漏清理是真实事故的常见来源,这里用状态机挡住「没写清理记录就出报告」的情况。

数据落在哪

全部状态写在发起调用的那个会话的工作区下的 .pentest/:

<会话工作区>/.pentest/ ├── workflow.json # 八阶段状态机:当前阶段、各阶段结论与跳过理由 ├── project.json # 项目与授权信息(start 时登记,出报告时回填) ├── assets.json # 资产台账(一次 pentest_recon 一条,按 target upsert) └── findings.json # 漏洞台账

文件名固定,不接受模型传入任意路径;pentest_report 的 outPath 与 pentest_scan 的 wordlist 都会被限制在工作区内,越界直接拒绝。

安装

本包可以放在任意目录(本仓库内、桌面、其它工程目录都行)。下文用 <包目录> 指代它的绝对路径。

1. Web UI 插件管理面板(推荐)

打开 DSH Web 的插件管理面板 → 安装本地 bundle → 选择 <包目录>。

2. 命令行

dsh plugin --profile web add link:<包目录>

如果当前目录已经是包目录,可以直接写 dsh plugin --profile web add "link:$PWD"。

3. 手动接入已有 bundle

把 cordis.patch.yml(与本 README 同目录)里的 insert 内容并入你正在用的 bundle patch:

- insert:
- id: pentest-toolkit
name: '@local/dsh-pentest-toolkit'

安装后新开会话即可看到这 7 个工具。若面板里显示的标题/描述不对,检查同目录下 locale/zh.json、locale/en.json 的 meta 字段是否被正确导出。

配套 skill

pentest-full-scope 负责把「为什么这么排、每阶段该调什么、门禁被拒怎么办」讲给模型听。工具负责强制,skill 负责解释,两者配合才是一次可复现的流程。

本仓库的 skills/pentest-full-scope/SKILL.md 就是它的源码;装到 DSH 时复制到用户技能目录即可:

把 <包目录> 换成实际路径 Copy-Item -Recurse "<包目录>\skills\pentest-full-scope" "$env:USERPROFILE\.dsh\skills\"

说「做一次全量渗透测试」「按流程渗透」时,skill 会被自动加载。

外部工具链

pentest_env_check 与 pentest_scan 会用到本机的外部安全工具(nmap / nuclei / httpx / ffuf 等共 20 项)。不装也能用——pentest_recon 的 DNS / 端口 / Web 指纹探测是内置实现,不依赖任何外部工具;工具缺失一律优雅降级为 skipped。

- 清单、用途、分平台安装方式与两个已知陷阱:TOOLCHAIN.md
- 一键检测(默认只报告,不安装):

powershell -ExecutionPolicy Bypass -File scripts\install-toolchain.ps1 # Windows
bash scripts/install-toolchain.sh # Linux / macOS

- 真正安装:Windows 加 -Apply,Linux/macOS 加 --apply

两个脚本的检测逻辑都调用 lib/probe.js 的 detectTools,所以工具清单只有一份来源,不会和插件跑偏。

复验

包内自带自检,不需要安装、不需要框架:

cd <包目录>
node verify.mjs

43 项检查,覆盖:装载契约、工具链体检与身份校验、流程前置约束、逐阶段门禁 (每一次「被拒绝」都作为断言验证)、扫描输入校验、侦察与 upsert、台账增删改查、报告内容与路径越界、reset 语义。全绿时自动清理 ./.pentest-verify 沙箱,有失败则保留现场。

运行环境适配(真实环境踩过的两个坑)

- 同名不同物:httpx 既可能是 ProjectDiscovery 的扫描器,也可能是 Python 的 HTTP 客户端。目录里给这类可执行文件配了 identity 正则做身份校验,不匹配就标成不可用, pentest_scan 绝不误用。本机实测就拦下了 Python 版的 httpx。
- 中文 Windows 的 GBK 输出:nslookup、whois 等按控制台代码页输出 GBK,而 Node 默认按 UTF-8 解码,版本串会变成 Ĭ�Ϸ����� 这类乱码。lib/probe.js#decodeOutput 先做严格 UTF-8 试探,失败再回退 gb18030 / gbk / big5 / shift_jis,并把残留的替换字符剔掉。

目录结构

dsh-pentest-toolkit/
├── index.js # 插件入口:七个工具的定义与实现 ├── lib/workflow.js # 八阶段定义、状态机、阶段门禁 ├── lib/probe.js # 网络探测原语(DNS / TCP / HTTP)与受控子进程调用 ├── lib/workspace.js # 工作区定位与台账持久化 ├── verify.mjs # 自检脚本(43 项) ├── TOOLCHAIN.md # 外部工具链清单与安装说明 ├── skills/ # 配套 skill:pentest-full-scope ├── scripts/ # 工具链安装脚本(install-toolchain.ps1 / .sh) ├── cordis.patch.yml # bundle patch:插入插件行 ├── locale/{zh,en}.json # 显示元数据 ├── icon.svg # 图标 └── package.json # bundle 清单(dsh.bundle.patch)

边界与合规

- 仅可用于已获得书面授权的目标。工具完全合法,用途不一定。
- 阶段 4/5 不会被自动化:这两阶段在插件里的形态是「记录结论与证据 + 门禁校验」,执行由授权的测试人员完成。这是设计选择,不是能力缺口。
- 所有目标字符串先过白名单:pentest_recon 只接受主机名 / IP / CIDR(拒绝 URL), pentest_scan 接受 http(s) URL 但会经 new URL() 解析后重建。
- 所有外部命令走 execFile(argv),不存在 shell 拼接。
- pentest_scan 只调用检测类工具、不接受任意参数、并禁用反连(nuclei -no-interactsh)。
- 报告与台账包含敏感信息,按约定渠道保管。

二次开发须知

改动本包时请守住四条:

1. 不引入任何非 node: 依赖,包括 @deepseek-ai/。
2. 不使用 defineTool(它由 @deepseek-ai/dsh-tools 导出)。本插件直接构造符合 ToolDefinition 契约的普通对象——parameters 是标准 JSON Schema,参数校验在 execute 内自行完成。
3. 新增外部命令调用必须走 lib/probe.js#runCommand,参数做白名单校验;目标字符串一律先过 assertTarget / assertScanTarget。新增可执行文件时,若存在同名不同物的风险,要给它加 identity 正则。
4. 改动阶段或门禁必须同步更新 verify.mjs、README 与 pentest-full-scope skill。

改完跑一次 node verify.mjs。
预览分享卡片长什么样 ↓bzaics666/dsh-pentest-toolkit
分享 · DeepSeek Harness Hub
bzaics666/dsh-pentest-toolkit

按 PTES 八阶段推进授权渗透测试并自动成稿

回到顶部