DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-exploit-kit

j

dsh-exploit-kit

Discovered

Vulnerability Exploitation Primitive Library: Consolidate penetration-testing range experience into composable exploitation primitives (command injection / weak typing / web bypass / JWT / serialization / ECB block splicing), with the model handling strategy and the tools handling generation.

dsh-exploit-kit

version license TypeScript tests

一句话:把打靶场沉淀下来的利用原语固化成 6 个生成工具——模型负责策略(判断漏洞类型、组合攻击链),工具负责生成(候选矩阵、构造串、拼接方案)。

为什么值得用:渗透联调里最费时的不是「想」,而是「把同一类构造反复手写一遍」——命令注入的分隔符×绕过组合、PHP 弱类型的各种比较怪癖、JWT 弱密钥试签、反序列化的属性可见性编码、ECB 的填充对齐算术。这些枚举与算术不该每次重新推导。本插件把 6 类原语做成纯函数生成器:给定参数直接吐候选 + 原理说明,还顺带把踩过的坑写进每个候选的 note。

能力

工具用途
xp_cmdi_payload命令注入候选矩阵:分隔符(semicolon/pipe/and/or/newline/subshell/backtick)× 绕过(none/space_ifs/base64/case/glob/null_byte/path_concat),可指定 shell(sh/bash/cmd/perl)
xp_php_jugglingPHP 弱类型/特殊绕过:strcmp_array / strstr_numeric / loose_compare / md5_loose / type_magic(含 SQL truncation 场景),输出候选值 + 命中目标 + 原理
xp_web_bypassWeb 过滤绕过:lfi_double / lfi_relative / null_byte / glob_obfuscate / log_poison / encode——输出构造串 + 适用目标 + 说明
xp_jwt_forgeJWT 伪造:mode=bruteforce(用内置常见弱密钥词表逐个试签给定 token,命中即回报来源)或 mode=forge(用给定 secret 自签,并按 username 补 sub/role/iat/exp);alg 支持 HS256/HS384/HS512
xp_serialize_phpPHP 反序列化串构造:按 visibility(默认 private)编码属性名,可选 base64/urlEncode 包装,并可给出 Phar metadata 构造步骤
xp_ecb_spliceAES-ECB 块拼接方案:ECB 判定法、填充对齐计算、oracle 调用清单、密文块拼接位置、坑点清单(blockSize 默认 16、escapeChar 默认 \)

所有枚举值取自源码联合类型(逐字),完整签名见 docs/semantic.md §4.2。

快速开始

1) 装依赖(自研插件家园 self-plugins/,在目标 profile 的 package.json 加 link 依赖):

"dsh-exploit-kit": "link:<工作区>/self-plugins/dsh-exploit-kit"

2) 挂组合(web profile patch 行;默认配置即可用):

- insert:
    - id: agent-exploit-kit
      name: dsh-exploit-kit

3) 30 秒验证(纯离线、零副作用):调 xp_cmdi_payload 传 command: "id" → 应返回 {ok: true, payloads: [...], count: N}(每个候选带 sep/bypass/note);再跑 npm test 看 115 例全绿。工具列表里能看到 6 个 xp_* 即挂载成功。

配置

项默认说明
enabledtrue⚠ 仅用于日志(挂载时打一行 info)——不控制工具注册,6 个工具挂载即注册

组合行当前无 config。

落盘与自证(出问题时先看这里)

每次工具调用落 2 行 JSONL 到 <DSH_HOME>/exploit-kit-trace.jsonl(DSH_HOME 缺省 ~/.dsh):

阶段含义
begin收到调用(action = 工具名 / payload 参数摘要脱敏 / build / pid)
end调用结束(ok / count / resultBytes / durationMs / 失败时 error = classifyBreak 断点分类)

本插件是纯本地生成器(无子进程),所以轨迹里没有 exitCode 字段——结果质量由 count(生成候选数)与 resultBytes 表达。

一条命令答五问:

tail -2 "$DSH_HOME/exploit-kit-trace.jsonl"
# ① 跑的是哪个构建   → build = "<版本>@<lib/index.js mtime ms>" + pid
# ② 谁发起 / 生成什么 → action(6 个工具名之一)+ payload(参数脱敏摘要)
# ③ 断在哪一段      → phase 枚举(begin/end)+ error 断点分类;有 begin 无 end = 中断
# ④ 结果质量        → ok / count(候选数)/ resultBytes;count=0 且 ok=false 即参数不足
# ⑤ 耗时与预算      → durationMs(本地生成应为毫秒级;异常拉长说明参数爆炸)

隐私与安全:轨迹对参数做脱敏(敏感键只记长度);IO 失败一律吞错返回 false,绝不改变工具返回值。唯一的 fs 出口就是这条轨迹——src/index.ts 无 node:http/node:fs 导入,由 tests/tool-contract.test.mjs 的最小白名单守卫 + 4 条断言钉死。

生效判据与回退

生效判据(三选一,按可靠性排序):

  1. 进程级:tail -1 "$DSH_HOME/exploit-kit-trace.jsonl" 里 build 的 mtime 等于 self-plugins/dsh-exploit-kit/lib/index.js 的 mtime ⇒ 进程在跑当前构建;
  2. 生态级:plugin_boot_status 的 liveNow 含本插件,或 plugin_inspect dsh-exploit-kit 显示 mounted;
  3. 行为级:工具列表里有 6 个 xp_*,且调用后轨迹文件 mtime 前进。

注意:重新构建 ≠ 生效——lib/index.js mtime 新只证明「构建过」,进程启动时间晚于产物 mtime 才算「在跑它」。改完源码必须 npm run build 并让预检看到新产物。

回退:

  • 源码级:git -C self-plugins/dsh-exploit-kit revert <commit> → npm run build → preflight_check → 哨兵重启;
  • 组合级:patch 里给 agent-exploit-kit 行加 disabled: true(或移除该行)→ 哨兵重启;
  • 运行期:无需回退(零持久业务状态;exploit-kit-trace.jsonl 可随时删除)。

测试

npm run build && npm test        # build = tsc;test = node --test "tests/*.test.mjs"

115 例离线测试全绿(2026-09-14 实测 # pass 115 / # fail 0),跑 lib/ 产物(与运行时同源,不得 import src/):

  • tests/primitives.test.mjs — 6 类原语的生成逻辑:分隔符×绕过矩阵完备性、JWT 签名(node:crypto HMAC 三档)与弱密钥试签命中/未命中、反序列化属性可见性编码、ECB 填充对齐与 oracle 计划、各工具的失败路径(参数不足 → ok:false + 明确 error)
  • tests/normalize.test.mjs — 入参归一化:properties 强制转换、Number 转换与两道守卫(prefixLen/injectOffset 为 0/NaN 即拒)、JWT 报告渲染(候选密钥裁剪上限)
  • tests/tool-contract.test.mjs — 接线契约与零副作用守卫:6 个工具名逐字一致、output.schema 严格形状、最小白名单(除轨迹层外无 node:fs/node:http/子进程出口)
  • tests/trace.test.mjs — 轨迹层:路径解析、脱敏、classifyBreak、尸体测试(不可写路径 → 返回 false 且不抛)

不需要网络、不需要 WSL、不需要任何靶场——纯本地标准 Node,零 IO 零子进程。真实利用链(生成 → 投递 → 观察)不在单测范围,属线上攻坚时的人工组合。

设计要点

  • I1 零副作用:6 个工具均不发网络请求、不投递、不写文件;生成原语模块连 node:fs 都不导入。唯一 fs 出口是观测层 trace.ts。这是本插件的安全基座——工具只造弹药,不开枪。
  • I2 不抛异常:每个 execute 用 try/catch 包住,异常转 {ok:false, error};调用方永远拿到可判断的结构。
  • I3 生成不判定:工具返回「候选 + 原理」,从不下「目标有漏洞」的结论——判定权在模型(这是与「扫描器」的本质区别)。
  • I4 参数缺省 = 全生成:过滤数组缺省或为空数组时展开全部种类(.length 判空,与「不传」同义)。
  • I5 工具数固定 6:xp_cmdi_payload / xp_php_juggling / xp_web_bypass / xp_jwt_forge / xp_serialize_php / xp_ecb_splice。
  • I6 可测:全部决策逻辑都是 src/*.ts 的具名导出纯函数,apply() 只做接线(注册 + try/catch + 渲染)——单测直连 lib/*.js,不需要 ctx / host / 网络。
  • schema 坑(已固化):dsh-tools 的 object 参数必须显式 additionalProperties,否则严格校验会拒——6 个工具的 output.schema 都按此写。

安全边界(重要)

  • 授权边界:仅限自有环境 / 明确授权 / 靶场使用。本插件不是漏洞扫描器,也不是攻击执行器:它只按要求生成候选构造,实际投递需由模型组合 HTTP/SSH 工具完成——用它做什么、对谁做,责任在调用方。
  • 与 dsh-cyber-range 的分工:本插件管「原语生成」,otw_* 管「投递与取回」——生成 ↔ 投递两段分离,是刻意的安全设计(生成面零网络,投递面可审计)。

相关文档

文档内容
docs/semantic.md权威契约:定位与反定位、术语表、概念模型与不变量(I1–I6)、契约(配置 / 工具签名逐字表 / 枚举值 / 裁决表 / 调用点清单)、边界与信任、可证伪验收清单、实践修订记录、未决问题
alice-digital-life本插件所属生态的中心索引(全部自研插件)
技能 cyber-range攻防靶场实战方法论(靶场部署、打穿三步曲、反编译取证)
技能 binary-exploitation-wargame二进制利用闯关方法论(OverTheWire Maze/Utumno 实战蒸馏)
姊妹插件 dsh-cyber-range靶场工具面(otw_request / otw_ssh / otw_blind)——本插件的下游投递通道

License

MIT © jonah791


本插件属于我的数字生命爱丽丝(alice-digital-life)的 DSH 自研插件生态——50 个插件按生命/认知/感知/行动/通信/治理/呈现七层组织。

Comments

Loading…

Similar plugins

dsh-capability-hint

by Gavin237

DSH plugin: inject a one-line hint naming skills that match the current turn, so installed-but-forgotten methodology skills actually get used. Deterministic matching, no LLM calls, fail-open.

Development & InfrastructureManifest valid

★ 0

NOASSERTION

TypeScript

Sep 20, 2026

dsh plugin --profile web add dsh-capability-hint

by icefall7

Scouts the deepseek-harness repo and every dsh-plugin-tagged repository to discover harnesses related to your goal, then judges each as worth trying, watching, or skipping.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 0

MIT

JavaScript

Aug 14, 2026

dsh plugin --profile web add dsh-plugin-scout

by sutimee

DSH 命令隔离插件:让agent只能间接使用命令工具,插件内置三种审计方式,防止模型幻觉输错字符,但是命令工具却执行造成严重后果。

Manifest valid

★ 0

MIT

JavaScript

Aug 15, 2026

dsh plugin --profile web add @sutang/dsh-command-quarantine

by tancheng33

Runtime security gate on the tool pipeline: denies calls naming hosts outside an egress allowlist, redacts credentials from results at the canonical value rather than only the rendered content, and ap

Security & AuditDevelopment & InfrastructureManifest valid

★ 1

↓ 95/wk

MIT

TypeScript

Sep 22, 2026

dsh plugin --profile web add dsh-egress-guard

by Rain-kl

DSH 预设编辑器插件, 支持一键破甲.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 148

MIT

JavaScript

Aug 27, 2026

dsh plugin --profile web add @rain-kl/dsh-preset-plus

by NattoCB

DSH web_search provider that follows the conversation's routed model provider — per-provider endpoint/credential/dialect table with built-in official fallback

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Sep 5, 2026

dsh plugin --profile web add dsh-web-search-session-follow