dsh-pentest README

The project's README from github.com/howmp/dsh-pentest. As one markdown file: README.md.

dsh-pentest — DSH 渗透测试模式

面向 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 后,在新会话中选择自动注册的「渗透模式」。

界面预览

模式选择

渗透模式选择

对话与执行

对话与执行

探索链路

探索链路

漏洞视图

漏洞视图

资产视图

资产视图

测试报告

测试报告

架构速览

已知边界

目录结构

dsh-pentest/                   # 项目根 = bundle 包 @howmp/dsh-pentest(自带 zod/schemastery 运行时依赖,其余宿主提供)
├── 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             #   宿主渗透插件:9 个 pentest_* 工具 + 协议注入 + 会话投影/挂载标记
│   ├── preset-root.js          #   注册包内只读「渗透模式」预设目录(兼容 DSH rc.6)
│   ├── storage-sqlite.js      #   渗透记录专用的 sqlite 后端(node:sqlite)
│   ├── ui-pentest.js          #   Web 插件宿主半:空 apply(0.1.1 时代的子路径行座位;bundle 已改挂包根)
│   ├── ui-pentest.client.js   #   Web 插件浏览器半:渗透视图标签页(4 个子标签,@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

参考项目

dsh-pentest (howmp/dsh-pentest)

Searching Database…

607 ·GitHub
archived
What is this?dsh-pentest is a pentest-mode plugin for DeepSeek Harness (dsh) that tracks an authorized penetration test as a structured graph of goals, leads, facts, findings and assets, then shows that graph, the vulnerabilities and a report in a Web UI.
Is this a standalone app or a plugin for something else?It is a self-contained bundle (@howmp/dsh-pentest) that ships a dsh host plugin, a Web interface and a sqlite backend together through the package exports — it only runs inside a dsh installation, not on its own.
How do I install this into dsh?Install the Release asset straight from its URL, or download it and install from a local file, both via dsh plugin add. After restarting dsh, pick the auto-registered 'Pentest mode' in a new session.
What do I need to run it besides dsh itself?The sqlite storage backend relies on Node.js's built-in node:sqlite module, so the dsh host runtime needs Node.js 22.5 or newer.
Does marking a target as authorized actually unlock anything?No — the authorization text you log with pentestaddgoal is only an audit record written into the state and final report; it is not a gate, so scanning and exploitation actions are still controlled by the deployment sandbox and approval rules.
What tools can the model call while running a pentest session?It registers pentestaddgoal, pentestaddintent, pentestaddfact, pentestaddfinding, pentestaddasset, pentestsubmit (for sub-agents writing directly to a parent intent), plus read-only penteststate, pentestgraph and pentestreport.
What does the Web UI actually show me?Four tabs: an exploration-chain graph built with @xyflow/react (edges labeled spawn/yield/derive/prove), a vulnerability view with severity and reproducible steps, an asset list/graph view, and a Markdown report you can copy or save.
Can I customize the pentest workflow for my own use case?Presets cannot inherit from each other, but you can copy the entire preset/pentest directory and modify it — the tools, protocol and projection logic all follow along with the copy.
How does dsh decide when to show the pentest tab in a session?It is not based on the preset name alone: a per-session pentestMounted flag turns on only once that session's own logs prove the pentest tools were actually wired in and used, so unrelated sessions never show the tab.
Creator
howmp
Size
1.6 MB
Stars
607
Age
2mo
Commits · 90 Days