dsh-pentester
August 28, 2026 · View on GitHub
面向 DeepSeek Harness 的最小化 Root-Orchestrator PTES 渗透测试插件。
唯一事实来源是 docs/plan.md;架构视图见 docs/architecture.md,磁盘布局见 docs/workspace.md,领域术语见 CONTEXT.md。
欢迎提交issues和PR。
详细英文文档见 docs/README.md。
心智模型
User ⇄ DSH Root Session(pentester persona preset)
→ Root 是唯一 Orchestrator:判断缺口、派发 Delegation、决定推进/回溯阶段
→ Root 工具面 5 个:pentester_start / pentester_delegate /
pentester_cancel_delegation / pentester_advance_stage / pentester_rollback_stage
→ pentester_start 是唯一 bootstrap 入口(mode: new | restart)
→ Root 每次 reasoning 前注入 compact run state(target/branch/stage/delegations)
Delegation(并行多个)= 各一个 DSH continuable child session(AgentProfile + 不可变 task_prompt)
→ Worker 工具只有 pentester_container_exec(dockerode;Root 不可见)
→ Worker 写/更新 result.md 作为当前可交付结果(continuable child 跨轮持续)
Deliverable = 文件(workspace/stages/<NN>-<stage>/delegations/D-00N/)
docker based toolbox
设置界面
![]()
仅通过dockerode与docker daemon交互,定期文件同步,允许远程docker server,可降低本机资源占用。
工具集详见 docker/kali
展示
渗透测试模式
![]()
授权确认
![]()
问题诊断
![]()
使用docker镜像
![]()
看板与子代理
![]()
各个TAB
![]()
时间轴阶段拓扑
![]()
阶段产出
![]()
子代理自动汇合推进
![]()
报告
![]()
准备
安装deepseek harness
npm install -g @deepseek-ai/dsh
准备docker镜像
docker pull fb0sh/dsh-pentester-kali:latest
安装
# npm 源
dsh plugin --profile web add dsh-pentester@latest
# github 源
dsh plugin --profile web add github:fb0sh/dsh-pentester
安装后需要重启dsh
布局
| 目录/文件 | 职责 |
|---|---|
src/ | model/stages/profiles/store、workspace/git、dsh/delegations/tools/worker-tools、docker/(host/connection/images/runtime)、rpc/settings-store、targets、migrate、host-manifest、invocations、build-id、index |
src/pentest/ | pre-engagement/assets/findings 领域逻辑 |
src/ui/client/ | Settings 的 "Pentester Config" 页(Docker Engine / Toolbox Image) |
src/ui-view/ | Pentester 数据面板(invocations snapshot / binding / RPC) |
agents/*/profile.yml | 7 个 AgentProfile(impact/recon/reporting/threat-model/validation/vulnerability/web) |
docker/ | Toolbox Dockerfile(kali 等,镜像白名单来源) |
presets/pentester/ | Root persona preset + run-state.mjs(工具面限制 + 动态状态注入) |
开发
pnpm run check # typecheck + build(含 client bundle)
pnpm test # node --test
Docker host 优先级:Settings(settings.json)> 插件配置 > 本地 socket 自动发现 > DOCKER_HOST > 默认 socket。本地 Docker 用 bind mount(host workspace == 容器 /workspace);远程 daemon 用共享 volume,阶段边界才做 mirror sync。