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

设置界面

image

仅通过dockerode与docker daemon交互,定期文件同步,允许远程docker server,可降低本机资源占用。

工具集详见 docker/kali

展示

渗透测试模式

image

授权确认

image

问题诊断

image

使用docker镜像

image

看板与子代理

image

各个TAB

image

时间轴阶段拓扑

image

阶段产出

image

子代理自动汇合推进

image

报告

image
image

查看报告

准备

安装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.yml7 个 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。