在 Harness 中调用 nmap 等工具完成授权渗透测试
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add R1145141919810/dsh-vulnclaw-pentest该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 26 处,展示前 26 条)
- 执行外部命令来自配置/变量bridge.js:69
const child = spawn(this.python, [this.script], { - 发起网络请求bridge.js:126
this.request("shutdown", {}, { timeoutMs: graceMs }), - 发起网络请求bridge.js:212
const info = await this.request("initialize", {}, { timeoutMs: 300_000 }); - 发起网络请求bridge.js:213
const listed = await this.request("list_tools", {}, { timeoutMs: 300_000 }); - 发起网络请求bridge.js:240
const result = await this.request( - 发起网络请求bridge.js:265
return this.request(method, params, { timeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT_MS }); - 执行外部命令来自配置/变量python-runtime.js:73
const result = spawnSync(command, args, { - 读取本地文件python-runtime.js:141
const first = readFileSync(scriptPath, "utf8").split("\n", 1)[0] ?? ""; - 读取本地文件python-runtime.js:146
if (args.length === 0 && existsSync(command)) return command; - 读取本地文件python-runtime.js:289
if (existsSync(managed)) { - 写入本地文件python-runtime.js:301
mkdirSync(root, { recursive: true }); - 写入本地文件python-runtime.js:340
writeFileSync( - 读取本地文件python-runtime.js:361
if (explicit && existsSync(explicit)) { - 读取本地文件python-runtime.js:371
if (existsSync(home)) { - 读取本地文件dev-regression.mjs:33
if (existsSync(join(candidate, "@deepseek-ai", "dsh-tools"))) return candidate; - 读取本地文件dev-regression.mjs:49
if (!existsSync(schemaPath)) { - 读取本地文件dev-regression.mjs:86
if (existsSync(candidate)) return candidate; - 删除本地文件递归dev-test.mjs:115
rmSync(workDir, { recursive: true, force: true }); - 读取本地文件dev-verify-activation.mjs:52
check("profile entry point exists", existsSync(entry), entry); - 读取本地文件dev-verify-schema.mjs:30
.find((path) => existsSync(path)); - 读取本地文件link-deps.mjs:45
return roots.filter((root) => existsSync(root)); - 读取本地文件link-deps.mjs:57
if (existsSync(candidate)) return candidate; - 写入本地文件link-deps.mjs:70
mkdirSync(target, { recursive: true }); - 读取本地文件link-deps.mjs:85
if (existsSync(link)) { - 删除本地文件递归link-deps.mjs:87
rmSync(link, { recursive: true, force: true }); - 读取密钥环境变量llm-offline.js:82
const apiKey = (options.apiKey ?? process.env.VULNCLAW_BRIDGE_LLM_API_KEY ?? "").trim();
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的 VulnClaw 渗透测试模式:nmap、HTTP 探测、目录/JS 侦察、流量取证、报告和 PoC 都做成 Harness 原生工具。基于 UncleC 的 VulnClaw(MIT)。
README
由 DeepSeek 最新模型翻译生成DSH VulnClaw 渗透模式
把 VulnClaw 的渗透测试工具链接入 DeepSeek Harness,在 Harness 的模式列表里新增一个「渗透测试」智能体模式。
选中该模式后,VulnClaw 的 37 个工具(nmap_scan、http_probe_batch、dir_enum、js_recon、 crypto_decode、source_extract、evidence_、traffic_、cve_lookup、attack_map …)
会作为原生 Harness 工具出现,由 Harness 自己的模型与智能体循环驱动。
English · 安装 · 设计 · 实测修复 · 排障
这是什么 / 不是什么
是:一个 DSH 插件包(bundle)。它给 Harness 加一个模式,并把 VulnClaw 的能力接进来。
不是:VulnClaw 的分支、包装脚本或替代品。本仓库不含任何 VulnClaw 源码——它在首次使用时把 VulnClaw 装进一个私有环境(见 Python 环境)。
⚠️ 仅限授权测试。 本项目面向已授权的渗透测试、CTF 竞赛、安全教学与红队演练。
使用前请确认你已获得目标系统的明确书面授权,并遵守当地法律法规。
未经授权对系统进行渗透测试是违法行为。
ℹ️ 需要 DeepSeek Harness。
展开完整文档(README 剩余 1 节)
DSH VulnClaw 渗透模式
把 VulnClaw 的渗透测试工具链接入 DeepSeek Harness,在 Harness 的模式列表里新增一个「渗透测试」智能体模式。
选中该模式后,VulnClaw 的 37 个工具(nmap_scan、http_probe_batch、dir_enum、js_recon、 crypto_decode、source_extract、evidence_、traffic_、cve_lookup、attack_map …)
会作为原生 Harness 工具出现,由 Harness 自己的模型与智能体循环驱动。
English · 安装 · 设计 · 实测修复 · 排障
这是什么 / 不是什么
是:一个 DSH 插件包(bundle)。它给 Harness 加一个模式,并把 VulnClaw 的能力接进来。
不是:VulnClaw 的分支、包装脚本或替代品。本仓库不含任何 VulnClaw 源码——它在首次使用时把 VulnClaw 装进一个私有环境(见 Python 环境)。
⚠️ 仅限授权测试。 本项目面向已授权的渗透测试、CTF 竞赛、安全教学与红队演练。
使用前请确认你已获得目标系统的明确书面授权,并遵守当地法律法规。
未经授权对系统进行渗透测试是违法行为。
ℹ️ 需要 DeepSeek Harness。 这不是独立程序。没有 Harness,本插件无处运行。
特性
| 特性 | 说明 |
| 单一模型 | Harness 拥有模型,VulnClaw 只提供能力。VulnClaw 自己的智能体循环不会启动——不需要为它再配 API Key,也不会出现两个智能体抢工具调用。 |
| 不改 VulnClaw 源码 | 全部通过公开模块调用:AgentCore 构造、build_openai_tools() 取 schema、execute_mcp_tool() 执行——与 VulnClaw 自己的循环用的是同一套分发。 |
| 证据链完整 | 每个工具结果都写入 VulnClaw evidence,返回文本带 [evidence:eNNN] 前缀,因此 evidence_view / evidence_search / traffic_ / 报告生成都能看到完整历史。 |
| 按作用域注册 | 工具只在该模式内存在。standard / ptc / minimal / cordis 四个模式一个工具都不会多;移除 bundle 时模式与工具一起消失。 |
| 模型接缝默认关闭 | 默认禁止 VulnClaw 自建模型连接,避免残留凭据让某条路径悄悄开出第二个智能体。可用环境变量显式打开。 |
| 自动准备环境 | 首次用到工具时自动检测/创建 Python 环境并安装 VulnClaw,并补齐其工具描述承诺的执行库。 |
前置条件
| 依赖 | 说明 |
| DeepSeek Harness | 宿主。本插件是它的 bundle。 |
| Python 3.10+ | 能 import vulnclaw 的解释器。装不了也没关系——安装步骤会用 uv 自动准备一个。 |
| uv(推荐) | 用于自动创建环境。已存在可用解释器时不需要。 |
| nmap(可选) | 只有 nmap_scan 需要。未安装时该工具会明确报错,不影响其它工具。 |
安装
1. 取得代码
git clone https://github.com/R1145141919810/dsh-vulnclaw-pentest.git
cd dsh-vulnclaw-pentest
路径建议用纯 ASCII。 安装器会把包目录交给 pnpm,非 ASCII 路径(如中文目录名)在编码转换时可能被破坏,导致 profile 里出现一条不存在的 link: 路径。
放在 D:\dsh-vulnclaw-pentest 这类路径下最稳妥。
2. 安装 bundle,然后链接依赖(顺序不能颠倒)
plugin_manager(action: "install_bundle", target: "<仓库的绝对路径>")
安装完成后必须链接 Harness 自己的包:
npm run link-deps
为什么需要这一步:install_bundle 用 pnpm 把本地包以符号链接方式链入 profile。
Node 会跟随符号链接到插件的真实目录,再从那里向上寻找 node_modules——那条路径走不到 Harness 自己的包,于是插件激活时报 ERR_MODULE_NOT_FOUND: @deepseek-ai/dsh-tools。
link-deps.mjs 从 profile 解析出这两个包的真实位置并建立目录联接(Windows 用 junction,无需管理员权限),不下载、不复制、不硬编码机器路径。脚本可重复执行,Harness 升级后重跑即可。
若 Harness 装在非默认位置:
DSH_HOME=/path/to/.dsh DSH_PROFILE=desktop npm run link-deps
3. Python 环境
通常不用做任何事。 插件在首次用到工具时(不是激活时,所以 Harness 启动不会被拖慢)按以下顺序解析解释器:
1. VULNCLAW_PYTHON —— 你显式指定的解释器,直接使用;失败就报错,不会偷偷换一个;
2. $DSH_HOME/vulnclaw-bridge/venv —— 已备好的托管环境;
3. 用 uv 新建一个,并 uv pip install "vulnclaw[web]"。
随后它会检查 VulnClaw 工具描述里承诺的执行库(requests 等)是否真的可导入,缺失就补上——详见实测发现。
手动指定解释器:
export VULNCLAW_PYTHON=/usr/bin/python3 # 该解释器需已能 import vulnclaw
4. 重启 Harness
插件的新 JavaScript 模块需要新进程才能加载。重启后新建会话,在模式列表里选「渗透测试」。
5. 验证安装
export TEST_PYTHON="<装了 vulnclaw 的解释器>"
node dev-verify-activation.mjs # 31 项:导出形态 / 工具注册 / 目录裁剪 / 首调回归
node dev-regression.mjs # 9 项:真实会话暴露过的缺陷
node dev-verify-schema.mjs # 37 个 schema 逐个过 Harness 真实编译器
node dev-test.mjs # 25 项:桥接客户端与工具面冒烟
四个套件全绿即安装正确。dev-regression.mjs 与 dev-verify-schema.mjs 会调用 Harness 真实的 schema 编译器;装在非默认位置时用 DSH_APP_NODE_MODULES 指路。
配置
在 bundle patch 相应行的 config 里设置:
| 键 | 默认 | 说明 |
| pythonPath | 空 | 能 import vulnclaw 的解释器;留空则自动解析或准备。 |
| sourcePath | 空 | 本地 VulnClaw 检出目录,首次准备时以可编辑模式安装;留空装 PyPI 发行版。 |
| exposeTools | true | 是否在本插件作用域注册工具。宿主行设 false,预设行设 true。 |
| toolPrefix | 空 | 给所有注册的工具名加前缀,避免与其它插件撞名。 |
| callTimeoutMs | 600000 | 单次工具调用超时。 |
| permissionMode | full_access | VulnClaw 内部的 safety.permission_mode。 |
| keepDefaultDeny | true | 隐藏与渗透无关的桌面自动化工具族。 |
| denyTools | [] | 额外要隐藏的工具名。 |
环境变量
| 变量 | 说明 |
| VULNCLAW_PYTHON | 指定解释器,跳过自动准备。 |
| VULNCLAW_BRIDGE_PERMISSION_MODE | 覆盖 permissionMode。 |
| VULNCLAW_BRIDGE_MAX_RESULT_CHARS | 单次结果回传上限,默认 120000。 |
| VULNCLAW_BRIDGE_LLM_BASE_URL / _API_KEY | 打开模型接缝(见 设计)。 |
| DSH_HOME / DSH_PROFILE | link-deps.mjs 定位 Harness 用。 |
| DSH_APP_NODE_MODULES | 验证脚本定位 Harness 的 schema 编译器用。 |
权限与审批
危险工具(shell_command、python_execute、PoC)在 VulnClaw 里默认弹 Approve this execution? [y/N]。桥接是无头子进程,没有这个交互通道,所以 permissionMode 默认 full_access——否则这些工具会一律以 no_channel 被拒绝。
审批没有消失,只是上移了:shell_command / python_execute 在 Harness 里等同于执行本机命令,归 Harness 的权限系统管。请用 Harness 的权限预设控制它——不要把它当成一块无审批的任意代码执行入口。
VulnClaw 命令行侧的改动(可选)
仓库内的 python/vulnclaw_dsh_mode.py 与 python/dsh-vulnclaw.py 提供两处运行时定制(不改已安装的包):TUI 模式列表新增「渗透测试」,以及隐藏 AI 管理命令(config / login / logout / doctor / init)。细节见设计文档。
python python/dsh-vulnclaw.py --help
python python/dsh-vulnclaw.py tui --target https://target.example
直接跑裸 vulnclaw 完全不受影响——这层定制只在该进程内生效。
若你的 Harness 会话已经提供了模型与工具,这一节可以完全跳过。
项目结构
.
├── package.json 插件清单(dsh.bundle.patch + 展示元数据 + icon) ├── cordis.patch.yml 两行:宿主行 + preset-pentest 预设(含人设与环境契约) ├── index.js 宿主插件:注册动态工具、会话级工具、裁剪目录、schema 翻译 ├── bridge.js Python 桥的 JSON-RPC 客户端(单进程长驻) ├── tools.js 3 个会话级工具的定义 ├── python-runtime.js 解释器解析、首次准备、执行库补齐 ├── llm-offline.js 模型主权约束的说明与诊断 ├── link-deps.mjs 从 profile 解析并联接 Harness 依赖 ├── icon.svg 插件图标 ├── locale/{en,zh}.json 展示文案 ├── docs/DESIGN.md 架构与设计取舍 ├── docs/FINDINGS.md 实测发现的缺陷与修复(含回归测试说明) ├── python/ │ ├── vulnclaw_bridge.py stdio JSON-RPC 桥,暴露 VulnClaw 工具面 │ ├── vulnclaw_dsh_mode.py CLI 定制:渗透模式 + 隐藏 AI 管理命令 │ └── dsh-vulnclaw.py 带定制的 VulnClaw CLI 启动器 └── dev-.mjs 验证与回归测试(不随 npm 包发布)
排障
| 现象 | 原因与处理 |
| failed to import / ERR_MODULE_NOT_FOUND: @deepseek-ai/dsh-tools | 忘了跑 npm run link-deps;跑完后必须重启 Harness。 |
| 工具列表里没有 nmap_scan 等 | 没选「渗透测试」模式;工具是按作用域注册的。 |
| VulnClaw tools unavailable: ... uv is not available | 装 uv,或设 VULNCLAW_PYTHON 指向已装 vulnclaw 的解释器。 |
| 工具报 no_channel 被拒 | permissionMode 被改成了 ask / auto_review;无头进程没有审批通道。 |
| nmap_scan 报未安装 nmap | VulnClaw 需要外部 nmap 二进制;装好并加进 PATH。 |
| python_execute 报 ModuleNotFoundError: requests | 会自动补齐;若仍出现说明 uv 不可用,手动 uv pip install --python <venv> requests。 |
| python_execute 报 lab mode blocked operation | 代码里用了 __import__() / importlib / exec();改成普通 import 语句。 |
| 看不到桌面自动化工具 | 默认隐藏(56 个与渗透无关);keepDefaultDeny: false 可恢复。 |
| 非 ASCII 路径下安装后 profile 里出现坏掉的 link: 路径 | 把仓库移到纯 ASCII 路径后重新安装。 |
| 想确认 Python 侧状态 | 直接问桥:initialize 返回版本、工具数、model_seam、llm_refusals。 |
贡献
欢迎 Issue 与 PR。改插件行为时请一并跑第 5 节的四个验证套件——它们会调用 Harness 真实的 schema 编译器,能挡住大部分「看起来对但激活时失败」的改动。
致谢与许可
本项目基于 VulnClaw (作者 UncleC,MIT 许可,官方网站 unclecheng-li.github.io/vulnclaw.com)。
VulnClaw 提供了本插件的全部渗透测试能力——工具实现、证据与流量存储、报告与 PoC 生成、 Skill 知识库。本插件只做一件事:把这些能力以原生 Harness 工具的形式接进来,并让 Harness 的模型来驱动它们。没有 VulnClaw,这个插件没有意义。
本仓库不含 VulnClaw 源码;VulnClaw 由本插件的准备器安装到私有环境。
VulnClaw 的版权声明与 MIT 许可全文见 THIRD-PARTY-NOTICES.md。
同时依赖 DeepSeek Harness 的 @deepseek-ai/dsh-tools 与 @deepseek-ai/schemastery (运行时从 Harness 安装中解析,不在本仓库分发)。
本插件以 MIT 许可发布,见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
R1145141919810/dsh-vulnclaw-pentest
在 Harness 中调用 nmap 等工具完成授权渗透测试
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7