Skip to content

Releases: Jueze-2019/dsh-redteam-mode

v0.14.3

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 24 Oct 09:31

v0.14.3 — 模板化报告与作战规划增强

本版把交付报告统一为“资产归属证明 → 得分汇总 → 得分点复现”,并给红队智能体补上作战规划与专项资产路径。

报告

  • 资产归属证明拆分为互联网资产和内网入口资产,附归属类型、证明强度、证据与截图;
  • 得分汇总按互联网 / 边界 / 内网 / 靶标四个阶段组织,新增 2.4 靶标权限;
  • 得分点复现按互联网资产、边界隧道、内网网段、靶标权限组织;
  • 内网按第一层边界隧道 → 双网卡 / 可达网段 → 未归属网段排序;
  • 得分汇总表按报告配置显示明文凭据;
  • 页面与下载 Markdown 共用同一份报告数据,下载文件名保留靶标中文名;
  • 补齐复现命令、Yakit / HTTP 报文、响应摘要、攻击文件路径、证据文件路径和复现缺口。

智能体

  • 新增 campaign-planning:目标、范围、攻击假设、时间盒、噪声预算、停止条件、独立复核与清理;
  • 新增 specialist-paths:AD / 身份、边界设备、云 / K8s、IoT / OT、文件备份、AI / Agent 的专项路径选择;
  • 主会话与执行角色接入作战规划、专项路径和复核要求;
  • 随包技能 18 个,总计 27 个。

升级

dsh plugin --profile web add dsh-redteam-mode@0.14.3
# 或
dsh plugin --profile web update dsh-redteam-mode

装完重启一次 dsh web。已有靶局的事实库、得分记录、报告、POC 知识库与攻击文件保持不变。

v0.14.2

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 23 Oct 03:53

v0.14.2 — 桌面端「全面浏览」修复

修复 DeepSeek Harness macOS / Windows 桌面客户端无法使用「全面浏览」的问题。

更新内容

  • 桌面客户端不再依赖会被 Electron 拦截的 window.open,改为在当前窗口进入全屏控制台;
  • Web 浏览器仍优先打开新窗口;弹窗被拦截时自动回退到当前窗口;
  • 面板头部与侧栏底部两个「全面浏览」入口都使用同一套逻辑;
  • 保留 v0.14.1 的桌面标题栏避让,全屏视图不覆盖系统窗口按钮;
  • 退出全屏按钮和 Esc 均可返回,退出后清除 #redteam-full 标记;
  • 其余功能与 v0.14.1 相同。

升级

dsh plugin --profile web add dsh-redteam-mode@0.14.2
# 或
dsh plugin --profile web update dsh-redteam-mode

装完重启一次 dsh web。已有靶局的事实库、得分记录、报告、POC 知识库与攻击文件保持不变。

v0.14.1

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 23 Oct 03:39

v0.14.1 — Windows 桌面端标题栏避让

修复 DeepSeek Harness Windows 桌面端上,RedTeam 控制台与系统窗口按钮重叠的问题。

更新内容

  • RedTeam 控制台和全屏预览不再从窗口最顶部开始,而是按 DSH 桌面标题栏高度向下避让;
  • 面板不再覆盖 Windows 的“最小化 / 最大化 / 关闭”按钮,头部按钮也不会落入原生拖拽区;
  • 普通浏览器/Web 端没有桌面标题栏变量时保持原有布局,不产生额外空隙;
  • 其余功能与 v0.14.0 相同。

升级

dsh plugin --profile web add dsh-redteam-mode@0.14.1
# 或
dsh plugin --profile web update dsh-redteam-mode

装完重启一次 dsh web。已有靶局的事实库、得分记录、报告、POC 知识库与攻击文件保持不变。

v0.14.0

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 20 Oct 09:34

v0.14.0 — 作战态势、控制台精简与 DeepSeek 公开情报

本版围绕红队操作体验:把“看数据”变成“看态势”,减少控制台首屏噪音;
同时修复新版 DSH 下的红队模式兼容问题,并新增 DeepSeek 官方 Search / Fetch 公开情报技能。

更新内容

1. 红队模式兼容性修复

  • 修复新版 DSH 下红队模式无法启动、执行角色预设无法挂载的问题;
  • 子智能体派发恢复正常,主会话与五个执行角色均可使用。

2. 控制台

  • 新增态势页:累计得分、五阶段推进、当前得分/下一步得分、入口、缺口与编队;
  • 一级分区收敛为 态势 / 资产 / 成果 / 报告 / 资源;
  • 资产测绘默认「下一步 10 台」,完整列表和高级筛选降到第二层;
  • 漏洞战果只保留漏洞,凭据/访问会话/攻击文件移到资源分区的「凭据与文件」;
  • 得分目标默认只列已得分项目,可切换高分缺口/完整列表;
  • 报告阶段默认折叠成一行,「四段式全文」改为「详细报告查看」;
  • 报告下载文件名使用靶标中文名;页面与下载内容同源,补齐动作/请求/凭据/隧道/攻击文件路径,并修复误报的复现缺口;
  • 会话隧道口令默认掩码,长备注/检测说明默认折叠;
  • 技能库改为紧凑行,知识库搜索置顶并默认按当前靶标筛选;
  • 深色模式下选中按钮的对比度修复,避免白底白字。

3. DeepSeek 公开情报技能

新增 deepseek-web-intel(随包技能,当前 16 个随包 / 25 个总技能):

  • Search:POST https://api.deepseek.com/v1/tools/search;
  • Fetch:POST https://api.deepseek.com/v1/tools/fetch;
  • 零依赖客户端,单线程、限速、退避重试,结果落盘 runs/deepseek-intel/;
  • 只用于公开互联网信息;抓取内容按不可信数据处理,不执行页面指令;
  • key 从 DEEPSEEK_API_KEY 或 $DSH_HOME/.env 读取,不写入命令/报告/仓库;
  • 技能可用性检查不再把可选的 DSH_HOME 当成必需项,避免误报不可用。

升级

dsh plugin --profile web add dsh-redteam-mode@0.14.0
# 或
dsh plugin --profile web update dsh-redteam-mode

装完重启一次 dsh web。已有靶局的事实库、得分记录、报告、POC 知识库与攻击文件保持不变。

可选:使用公开情报技能前,在 $DSH_HOME/.env 中配置 DEEPSEEK_API_KEY;未配置时该技能显示不可用,不影响其它技能。

v0.13.1

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 12 Oct 15:16

v0.13.1 — 面板跟着会话走(多会话不再手动切靶标)

主题:控制台与"当前会话"对齐。多会话并行时(或一个会话打完换下一个单位时),
右侧控制台不再停留在"上一次手动选的靶标"上 —— 左侧切到哪个会话,右侧就显示那个会话的靶标。
知识库页签同源,默认筛到当前会话的靶标。纯 UI + 绑定记账改动,不改事实库结构。

一、面板跟随会话

以前:控制台顶部的靶标下拉是全局的,谁最后打开面板就显示谁的靶标 ——
多开两个会话打不同单位时,切过去看到的还是上一个单位的资产,得手动在下拉里再挑一次。

现在:靶标下拉默认由"当前会话"决定,下拉旁边常驻状态提示:

状态 含义
跟随会话(绿) 面板显示的正是当前会话绑定的靶标,切会话会自动跟着切
未跟随:<靶标>(黄,可点) 当前会话绑的是别的靶标(用户手选过),点一下切回本会话的靶标
本会话未绑靶标(灰) 这个会话还没开工/老会话没有绑定记录 —— 面板保持不动,不假装已绑定

规则说清楚:

  • 会话绑过靶标(智能体 redteam_engagement_open / redteam_session_bind)→ 自动切;
  • 点开的是子智能体的会话 → 沿 parentSession 解析到根会话再查绑定(子智能体继承父会话靶标);
  • 会话没绑过,但会话标题能认出单位(标题 = 工作目录名 = 单位名,升级前建的会话就是这种)
    → 按标题反查命中,标签显示 跟随会话 · 按标题;
  • 会话没绑过、标题也认不出 → 回落"最后一次绑定的靶标"(本设备记的),面板不清空;
  • 用户在下拉里手选了别的靶标 → 本会话内不再跟随(一次会话重渲染不会把它抢回去),
    并写回绑定表(切走再切回来仍是它);切到别的会话即恢复跟随。

排查"为什么不跟随":面板底部常驻 会话 <id前缀> · <跟随来源>,来源取值
落盘绑定 / 会话标题 / 上次选择 / 默认单位 —— 一眼看出当前靶标是凭什么选出来的。

二、绑定表落盘

  • 新增 $DSH_HOME/redteam/sessions.json(键 = 根会话 id,值 = 靶标 id/名称/时间),
    由两条路径写入:智能体绑定靶标时(工具侧)、用户在面板手选靶标时(界面侧)。
  • 面板经新的 sessionBinding / sessionBindings / bindSessionEngagement 三个 op 读它,
    不再依赖进程内状态 —— 重启 dsh web 后仍然对得上(以前重启就丢)。
  • 只留最近 200 条;指向已删靶标的条目在下一次写入时自动清理。

三、知识库按会话上下文筛

知识库仍是全局共享、跨靶标复用,但打开时默认筛到当前会话的靶标:
页签顶部标出「来源靶标 X ✕」,点一下回到全库(全库/单靶标一键切换)。
打 B 单位时第一眼看到的就该是 B 单位攒下的武器,而不是 200 条混在一起。

四、升级说明

  • 客户端 UI 会自动热重载;host 侧新增了 op,需要重启一次 dsh web(node scripts/deploy-local.mjs --restart)。
  • 未重启时行为与升级前完全一致(面板问不到绑定 → 走原来的全局指针逻辑),不会白屏也不会报错。
  • 改完记得刷新浏览器:客户端 bundle 是页面加载时取的,刷新后才带新逻辑。

v0.13.0

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 07 Oct 13:44

v0.13.0 — 证据截图 + 报告改成「复现手册」

主题:得分成果从"写清楚了"变成"看得见、能照着跑"。一条成果现在同时有三样东西:
一张图(证据)、一个可执行的复现入口(报文或命令)、一句明确的成功判定标准。

一、证据截图:得分点上看图,报告里贴图

  • 控制台「得分目标」页:展开任一得分点即可看到证据截图,点图全屏放大;命中行会标注这一条有几张图。
  • 同一个得分点最多展示 3 张代表图(批量成果如终端权限一次几十台,逐台贴图没有信息量,
    取代表即可),超出部分只报数,不铺开。
  • 报告里嵌入证据截图:每条得分点下图,图注写明类型、时间与原始来源;
    附带导出脚本会把 shots/ 一起拷到输出目录并用相对路径引用,整个目录拷走或打包都不会碎图。
  • 图片落盘、库只存元数据:图片存 <靶标目录>/shots/,事实库里只记文件名、尺寸、字节与 sha256 ——
    事实库始终可拷可备份,不会因为贴了图就膨胀到打不开。
  • 新增三个工具:redteam_shot_add(本机路径或 base64 登记,可按得分点 / 命中 / 目标关联)、
    redteam_shot_list、redteam_shot_delete。
  • 现场截图与"生成的证据摘录"严格分开:kind=screenshot 是现场截的图,kind=card 是由当日记录
    生成的证据摘录卡;面板给不同标记,报告里分别标注,代表图优先取现场截图。
    角色提示词也补了这条纪律:拿到成果顺手留一张图,现场截的才写 screenshot。

二、报告重写成「复现手册」,结构固定

0 摘要与对账   总分 / 计分项 / 复现入口分类 / 证据截图 / 得分点占用 / 记录与计分对账 / 复现索引
1 复现前置条件 通道与启动命令、凭据、Burp/Yakit 与 proxychains 接入方式、工具能力边界
2 攻击链       按阶段 ①→⑤、阶段内按取得时间,逐条标注前置
3 逐条明细     复现入口 → 证据截图 → 目标台账 → 动作记录 → 证据索引
4 得分点说明   判定标准与要附的材料集中讲一次
5 附录         涉及资产(含发现时间)、未计分的重复记录、档位校正记录
  • 复现入口三态:可直接粘贴进 Burp / Yakit 的原始报文;可直接跑的命令行;该得分点的标准复现动作。
    真实命令永远优先于得分点自带的通用模板,不会再出现"模板冒充本步实际命令"。
  • 重建报文如实标注:当日请求没有逐字节留存时,报告写明"重建报文",不会说成现场抓包。
  • 一次批量动作合并成一条 + 目标台账表:一次动作打下几十台,只写一条正文加逐台清单,
    报告不再被同一段内容刷屏。
  • 按链路顺序编排并标注前置:每条写出"先做过哪条成果";前置关系只从凭据来源与证据文本推导,
    推不出来就不写。
  • 得分点说明集中一次:判定标准与材料要求收进第 4 节,正文不再逐条重复同一段话。
  • 附录可对账:资产与发现时间、未计分的重复记录、档位校正记录都列清楚。

三、可复现性与准确性的修复

  • 非 HTTP 目标(数据库、SMB、隧道等)不再合成无意义的 HTTP 报文。
  • 由真实报文推导命令行时保留查询串与鉴权头 —— 否则合出来的 curl 少了 Authorization,跑起来是 401。
  • 逐条只列本条真正用到的凭据,不再把同资产上无关的接口 token 一并挂上。
  • 面板与报告措辞统一为「复现步骤」「复现材料」,去掉内部记账口径的提示文案。
  • 界面文案与报告小节名统一,报告页与导出 markdown 读到的结构一致。

四、新增脚本

node scripts/export-engagement-report.mjs --out ~/交付/<靶标>

一条命令导出可移动的交付目录:报告 markdown + shots/ 证据图(相对路径引用)。
控制台「报告」页的「下载 .md」仍然可用(图片走绝对路径,适合本机查看)。

质量

零依赖回归测试 15 个文件 / 595 条断言全过(新增证据截图专项测试,覆盖"每个得分点最多 3 张"
"现场截图与生成卡片分标""图片不进库""面板与报告都能渲染出图"),build --check 无漂移。

升级

dsh plugin --profile web add dsh-redteam-mode      # 或 update

装完重启一次 dsh web。已有靶标的事实库、得分记录、报告与技能配置不受影响,不需要迁移 ——
新的证据截图表在打开靶标时自动创建。

v0.12.5

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 30 Sep 05:51

v0.12.5 — 控制台改版:页签精简、并发可配、技能不可用直接给修复方法

一、页签精简:12 → 9 个,相关的东西放在一起

原来的页签 现在在哪
当前测试 资产测绘页左侧,与「全部 C 段 / 外网资产 / 内网资产」同级(紫色「测」标记)
智能体提示词 智能体页(并发配置、角色速览、提示词编辑同一页)
攻击文件 漏洞战果页的子页签

旧的书签/链接(#testing / #attackfiles / #prompts)不会失效,会自动落到对应的合并后页面。

二、并发数量可以自己配了(默认 3)

控制台「智能体」页新增并发数量配置:填数字、保存,立即生效,不用再改环境变量重启 dsh web
(存 $DSH_HOME/redteam/settings.json,范围 1–10;闸门每次派活现读,面板会显示当前值来自哪里)。

⚠️ 调大不等于更快:同一个模型 API Key 的并发/速率上限是共享的,同时派太多会互相挤占,
表现为排队等待、超时、返回被截断甚至限流报错 —— 反而让测试结果不稳定。
建议从 2–3 开始,只有确认 Key 的额度足够、任务之间确实互不依赖时才调大。

三、技能库:不可用不再只说"哪里不行",而是直接告诉你"怎么修"

原来只列"缺口",现在每条不可用都写清 不可用原因 + 修复方法,例如:

  • 缺工具 → 直接给装法(bash $DSH_HOME/redteam/setup.sh --yes;系统工具给对应 apt 包名;
    不在安装脚本清单里的给获取方式),并按缺失路径逐条列出缺的是哪个工具、干什么用的;
  • 缺 FOFA_KEY → 给取 key 的入口与一条自测命令;
  • VPS 还是占位符 → 给三种填法(REDTEAM_VPS_HOST / 环境变量 / 直接编辑技能文件)。

覆盖面:54 个工具的安装/补配方法 + 23 份技能各自的额外修复步骤。

四、漏洞和攻击文件对上了

「漏洞战果」新增攻击文件子页签;每条漏洞的详情里新增关联攻击文件 ——
直接列出这条漏洞留下了哪些脚本 / 马 / EXP(类型、名称、说明、落盘路径)。
子页签顶部会提示还有多少文件没挂到漏洞上,方便补齐对应关系。

五、顺手修的

  • 从「当前测试」切回资产列表时,点外网/内网分组或某个 C 段现在能正常切回去了。
  • 「当前测试」的标记改用紫色,不再和外网资产(橙色)混在一起。

升级

dsh plugin --profile web add dsh-redteam-mode      # 或 update

装完重启一次 dsh web。已经有 0.12.4 的直接在控制台点「一键更新并重启」也行。

已有靶局的事实库、得分记录、报告与已配好的技能目录都不受影响,不需要迁移。

v0.12.4

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 29 Sep 16:33

v0.12.4 — 修复:更新按钮总是提示「当前是开发态安装」,点不动

解决了什么问题

在控制台点「检查更新」时,不管插件是怎么装的都会显示:

现在不能更新:
· 当前是开发态安装(profile 依赖里没有 dsh-redteam-mode,是源码软链/手动挂载的),
  包管理器更新不适用。

于是「一键更新并重启」按钮一直是灰的,只能手动升级。原因是安装方式的判断写错了:
把 profile 目录当成文件路径去读,读不到就一律判成开发态。本版修好了这个误判 ——
正常安装(npm / pnpm / tarball)会正确识别为「包安装」,按钮可用。

本版改动

  • 修正安装方式识别:正常安装不再被误判成开发态,更新按钮不再被无辜拦下。
  • 本地源码安装也不再拦:如果你是自己 clone 仓库挂上去的,会提示"点击更新会把发布版
    装进 profile,本地源码改动不再生效";点下去即可切到正式安装,之后一直能用一键更新。
  • 更新执行更稳:首选包管理器不可用时自动改用另一个重试;安装后自动把插件登记进
    profile 的 bundle 列表,避免"装了但重启后没生效"。

升级(本版需要手动升一次)

因为当前版本的更新按钮是坏的,升级到本版要用一次命令行:

dsh plugin --profile web add dsh-redteam-mode      # 或 update

装完重启一次 dsh web。从本版起,「一键更新」按钮可用了 —— 以后发新版直接在控制台点它,
自动安装并重启,不用再敲命令。

如果你是用源码挂载的开发态:git pull && node packages/redteam-bundle/tools/build.mjs,
再重启 dsh web;之后也可以直接点按钮切到发布版。

已有靶局的事实库、得分记录、报告与已配好的技能目录都不受影响,不需要迁移。

v0.12.3

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 29 Sep 16:19

v0.12.3 — 修复:DSH 0.1.7 及以上版本里控制台「技能库」打不开

解决了什么问题

在 DSH 0.1.7 及以上版本中,点开右侧控制台的技能库页签会报错、技能列表读不出来:

无法解析红队 preset 作用域:ctx.agentPresets.standingKeyFor is not a function

原因是 DSH 0.1.7 改了 preset 作用域的接口,而插件还在调旧接口。本版完成适配,
升级并重启 dsh web 后技能库恢复正常。资产库、控制台其它页签、工具与模式入口不受影响。

建议连同 0.12.1 一起理解:0.12.1 修的是"新会话里选不到「红队模式」",
本版修的是同一批 DSH 改动导致的"技能库打不开"。两个都升级才算完整适配 0.1.7+。

本版改动

  • 技能库适配 DSH 0.1.7 起的 preset 接口变化,能正常列出「红队会话实际能用到的技能」
    并读取技能正文;对旧版 DSH 保持兼容,行为不变。
  • 保留原有的降级提示:万一将来接口再次变化,报错里会直接列出当前可用的方法名,便于定位。

兼容性

你的 DSH 升级到本版后
0.1.7 及以上 技能库正常(本版修复的目标)
0.1.6 及更低 行为不变,照常可用

升级

dsh plugin --profile web add dsh-redteam-mode      # 或 update

装完重启一次 dsh web(host 侧代码在启动时加载),然后打开右侧控制台的技能库确认。

已有靶局的事实库、得分记录、报告与已配好的技能目录都不受影响,不需要迁移。

v0.12.2

Choose a tag to compare

@Jueze-2019 Jueze-2019 released this 29 Sep 15:52

v0.12.2 — 内部整理,无功能变更

本版只做仓库与包内内容的整理,功能与 v0.12.1 完全一致,没有新增、修改或移除任何能力。
已经用 0.12.1 的话,不需要为了功能升级。

本版改动

  • 清理代码与配置里的历史注释,只保留"这条约束是什么、为什么必须这样"的说明。
  • 统一仓库内文档的口径(安装、版本对应关系)。
  • 敏感值检查(发布前自检的一部分)改为从环境变量读取,仓库与包里不再保留任何密钥素材。

升级

dsh plugin --profile web add dsh-redteam-mode      # 或 update

如果你当前是 0.12.1,可以留在 0.12.1,功能上没有任何差别。