Releases: Dest1ny-Sec/dhunter
Releases · Dest1ny-Sec/dhunter
Release list
v0.7.1 — 库 / MCP 扩展加固 / Skills / 模板
v0.7.1 — 库 / MCP 扩展加固 / Skills / 模板
新一级菜单 库 上线,三个 tab 分别管 MCP 扩展 / Skills / 模板。同时给 MCP 扩展中心补上 call timeout / 私网 URL 提示 / 工具数量上限,RunDetail 工具活动面板的命名空间工具自动加 EXTERNAL 标签。
新增
Library 路由(一级菜单)
- 三个 tab:MCP 扩展 / Skills / 模板
- 左侧 4 个分类 sidebar(官方 / 社区 / 已装 / 自定义)+ 数量徽章
- Skills 后端:
skills表 + CRUD + 内置 3 个 seed(Web 攻击面排查 / API Fuzz 工作流 / 漏洞报告写作)+ 官方 skill 写保护 - 模板:5 个静态模板(OWASP Top 10 / API Fuzz / JS 深度审计 等),import 按钮占位
MCP 扩展加固(v0.7.0 review follow-up)
ExternalMCPHub.call()加 45s call timeout(环境变量DHUNTER_EXT_MCP_CALL_TIMEOUT),挂死的外部 server 不会无限阻塞 worker- 私网 / loopback / 云元数据 URL 标记
private字段(169.254.169.254 / metadata.google.internal 等),UI 黄色提示 - 工具数量上限:单 server 100,整个 external 池 300,UI 显示「已截断」
RunDetail EXTERNAL 标签
- 工具活动面板:带
::命名空间的工具名(cyan 高亮 +EXTERNAL圆角小标签)一眼区分内置 - 实时事件流也同步
Other
- 顶部 sync 行:「● Agent 已同步 · 58 秒前」+ per-row 绿/红/灰点
GET /api/mcp-servers/agent-status代理到/v1/mcp/status,15s 自动轮询GET /v1/mcp/reload端点支持热加载(无需重启 agent)
测试
- Go: 9 个新测试(MCP handler 测试 + Skill handler 5 个测试)
- Python: 11 个 multi_mcp 测试(命名空间 / 聚合 / 分发 / 失败隔离 / 重载清空 / 端到端 + sync_info)
- vitest 28 / 全部 Python 55 / 全部 Go 通过
下载
| 平台 | 架构 | 大小 | SHA-256 |
|---|---|---|---|
| macOS | arm64 (Apple Silicon) | 8.5 MB | 1aedc60329379d0f105c6cfa085da77117a204002008dec32aa1452ae119919c |
| Linux | amd64 | 9.0 MB | f57e8781a65f0cf6777843b2d1d7a29a4fe68ffbfe630d99bfb81a8d03058be5 |
升级
tar -xzf dhunter-v0.7.1-{platform}.tar.gz
cd dhunter-v0.7.1-{platform}
./start-dhunter.sh start旧版数据完全兼容(仅新增 skills 表 + mcp_servers 增加字段,幂等迁移)。
v0.7.0 — MCP 扩展中心
v0.7.0 — MCP 扩展中心
外部 MCP server 可在 UI 上一键挂载,工具以 <server>::<tool> 命名空间聚合到 Agent 工具集,与内置 22 个工具并行。改完点"同步到 Agent"即生效,不必重启。
新增
后端 (Go)
mcp_servers表:id / name / url / transport / token / enabled / description / 时间戳MCPServerStoreCRUD +ListEnabled(仅启用项,token 暴露给 agent)/api/mcp-servers全套:list / get / create / update / delete / test / active / reload- Token 一次返回:仅 Create 响应含明文;后续 list/get/update 全部 redaction
test端点:发initialize+tools/list,返回连通性 + 工具列表active端点:供 agent 启动时拉取(带 token)reload端点:代理到/v1/mcp/reload,无 agent 时 503
HTTPAgentClient:通过cfg.Agent调 agent
Python agent
ExternalMCPHub维护 server→MCPClient 映射- 启动时
GET /api/mcp-servers/active拉启用列表 - 并行 connect(semaphore=4,单 server 10s 超时),失败隔离
- 工具命名
<server>::<tool>,与内置 22 个不冲突
- 启动时
ToolRegistry集成:all_tools()合并 ext + 内置;call()优先匹配<server>::<tool>- 新端点
POST /v1/mcp/reload:UI 添加新 server 后热加载
前端
components/MCPExtensions.vue:列表 / 添加 / 编辑 / 删除 / 测试连接 / 同步到 Agent- SettingsView 新增「扩展中心」section
- Token 仅在 Create 响应明文显示一次,UI 单独高亮可复制
- 测试结果模态显示 ✓ + 工具数 + 延迟 + 工具名(已
::命名空间)
测试
- Go: 9 个 handler 测试(CRUD / 校验 / 唯一 / test / 失败 / ListEnabled / Active / Reload × 3)
- Python: 9 个 multi_mcp 测试(命名空间 / 聚合 / 分发 / 失败隔离 / 重载清空 / 端到端)
下载
| 平台 | 架构 | 大小 | SHA-256 |
|---|---|---|---|
| macOS | arm64 (Apple Silicon) | 8.5 MB | 162b1b46ef26d803fb7e441840d8e648db4cfdf49a39cbc98a4562a163091c28 |
| Linux | amd64 | 8.9 MB | 7cfd9e1f3a5f8cc08bc020acce04f93824586ccfe81c03a347fd751afd677818 |
升级
tar -xzf dhunter-v0.7.0-{platform}.tar.gz
cd dhunter-v0.7.0-{platform}
./start-dhunter.sh start旧版数据完全兼容(仅新增表,幂等迁移)。
Dhunter v0.5.0 — 安全加固 · 可观测性 · watchdog · ADR
v0.5.0 — 审计整改(安全 / 测试 / 可观测 / 运维 / 文档)
🔴 安全(P1)
- 移除 LLM 可控的
bin参数:7 个外部工具封装(subfinder/assetfinder/gau/waybackurls/katana/httpx)此前允许 agent 指定任意可执行路径 → 现在固定工具名; - safeExec 拒绝非裸命令名(含路径分隔符),工具只能执行 PATH 上的二进制 + 回归测试。
🔴 测试(P1)
internal/streamhub 单测:扇出/取消/慢订阅者丢弃/按 run 计数;internal/handlerclassify 单测(路由契约仍由 e2e 覆盖)。
🟡 可观测性(P2)
GET /api/metrics:Prometheus 风格文本(runs/vulns/active/subscribers/goroutines/mem);- MCP
/availability+/api/status.mcp.availability:外部扫描器安装矩阵;设置页渲染 ✓/✗(缺失自动跳过)。
🟡 运维(P2)
start-dhunter.sh watch:看门狗子命令(三进程自动拉起 + 重启计数);生产建议 systemd/supervisor。
🟢 文档(P3)
docs/adr/0001..0004:三进程架构 / SQLite 选型 / 黑板 stigmergy / MCP streamable-HTTP。
Dhunter v0.4.0 — 资产模型 · 证据质量
v0.4.0 — 资产模型 · 证据质量(设计借鉴 dsh-pentest)
🗂 资产模型(结构性补强)
- 新增 assets 表 + API:
root-domain / subdomain / ip / service / app / endpoint六类资产,parent_id支持资产树,按项目去重累积 - 新增
write_asset工具:agent 侦察过程中自动沉淀资产(与黑板 facts 分离) - 前端资产视图:项目会话页资产清单(类型徽标 + 树形缩进)
- 报告新增资产清单章节
🔬 证据质量
- facts 新增 kind + confidence(0..1):黑板摘要对低置信线索显式标注,planner 可区分硬证据与弱线索
write_finding强制 reproduction:工具层必填(verifier 机械重放依赖它),降低"无步骤漏洞被当噪声驳回"- 目标新增授权说明字段:授权留痕,写入单次与项目报告(合规友好)
✅ 验证
3 个新 E2E(资产契约+去重+报告、授权往返、fact 元数据持久化)+ Go/Python/前端全量测试通过;24443 实测环境冒烟通过。
v0.3.5 — Kali 安装修复 + Stargaze 视觉精修
v0.3.5 — 2026-08-18 · 安装体验修复 · 三波视觉精修 (stargaze edition)
安装体验
- 预构建
frontend/dist提交到仓库:在 Kali / 裸 Linux 等没有 Node.js 的环境直接./scripts/start-dhunter.sh start就能起来,Web UI 不会空白; start-dhunter.sh自带 build 兜底:检测到frontend/dist/index.html缺失时,自动npm install --no-audit --no-fund && npm run build,npm 不可用则给出明确报错(不再静默 "no web UI found");- README 修正:Node.js 行从"必需"改为"可选",删掉"仓库已带预构建 dist"那种让人不敢信的表述。
视觉体系 (Stargaze Edition)
- 字体体系:移除 Inter,改用 Fraunces(衬线展示体)+ Space Grotesk(无衬线正文)+ JetBrains Mono(代码),解决"AI 模板感";
- 品牌符号
BrandMark.vue:纯 CSS 双星环 logo(外环 0.6px + 内环 0.9px 渐变描边,12/6 点位两颗四角星、3/9 点位两颗亮星、中央十字星),替换原来占位的 PNG; - 多色星图统计强调:仪表盘统计卡从"全紫"改为 nebula / aurora / red / aurora 多色 accent,配合 6px 发光圆点 + 字间距 0.16em 标签;
- Status badge 改色:running/queued/claimed/open 从单色紫改为 aurora 青 + live pulse 动画;
- 列表 stagger 入场:targets / runs / vulns 三类列表加 0/40/.../360ms 错峰上浮动画(cubic-bezier 0.16,1,0.3,1)。
交互细节
- 目标卡 5 按钮 → 4 按钮 + 导出▾ 下拉:导出 Markdown 报告 / HTML 报告统一到上弹下拉菜单(避免压边框);
- 设置页三轮呼吸空间:grid 14→20→28px、col 12→18→22px、card body 18→22px、form-grid 12→16px;
- 漏洞页新增"运行"列:点击 run-id 芯片直达运行详情;
- 搜索页空态 + 热门关键词:2 列布局,左 10 个关键词 chip(带 stagger),右 3 条搜索技巧;
- 设置页三个 section title 配渐变下划线分隔。
工程
- 新增
scripts/build-release.sh:跨平台编译(darwin/arm64 + linux/amd64,CGO=0、trimpath、-s -w)并打包agents/+frontend/dist/+configs/+scripts/+ README/LICENSE/notes 为 tarball; - README 截图全部刷新为 stargaze edition(
assets/screenshots/*.png)。
v0.3.2 — 2026-08-16 · 上下文窗口压缩 · 增量规划 · 版本对比 · 收藏/通知/向导
Token 进一步优化
- 滑动窗口压缩:tool loop 超过 20 轮后,最早的轮次折叠成「工具活动摘要」合并进首条消息,只保留最近 12 轮完整上下文——长 run 的上下文有硬上限(普通 run ≤ 20 轮完全不受影响,缓存不破坏);旧轮次的 thinking 块随整轮一起丢弃(thinking 不能单独裁剪,signature 会校验失败,整轮丢弃是安全等价的实现);
- reason 增量规划:planner 从第 2 轮起只看到新增 facts(known_fact_ids),不再每轮全量重发已知情报。
功能
- 报告版本对比:项目会话页勾选两次评估(最多 2 个)→ 展示漏洞差集(本次新增 / 已消失 / 两次均有),同一目标的"这次扫出了什么新的"一目了然;
- 目标收藏:目标卡片 ★ 置顶(后端 favorite 列 + 列表排序,重启保留);
- 浏览器通知:运行页挂载时请求一次权限,run 结束时桌面通知(成功/失败/状态);
- 首启向导:首次进入且目标为空或未配置模型时,弹出三步引导(欢迎 → 配置模型 → 授权目标)。
DHUNTER_NOTES.md —— 仅对已获得书面授权的目标使用,未授权测试可能触犯法律。
v0.3.1 — 2026-08-16 · Token 优化 · 跨运行去重 · 预算可视化
Token 消耗优化(成本)
- 显式 prompt caching:system 块标记 cache_control: ephemeral,Anthropic 原生端点跨轮次/跨 worker 复用前缀(DeepSeek 等兼容网关忽略该字段、走自动前缀缓存);
DHUNTER_LLM_CACHE_SYSTEM=0可关闭; - 工具结果截断 20k → 8k:上下文峰值直接砍半(tool_result 会在后续每轮重发);
- verifier 瘦身:改用固定精简 system(不再转发含红线/知识注入的 worker system);证据/复现截断 4k/3k → 2k/1.5k;运行中验证从"每 10 秒定时"改为仅在新漏洞落地时触发,收敛后兜底全量复核。
功能
- 跨运行漏洞去重:同一目标在后续 run 中重复上报同一漏洞 → 409 并指向已有记录(dismissed 的除外,允许重新验证),列表不再堆积重复发现;
- 预算实时显示:运行详情页展示「已消耗 / 预算(百分比)」,随消耗变红预警(设置页红线依旧生效,到点自动停止)。
v0.3.0 — 2026-08-16 · 安全加固 · 契约修复 · 前端完善
安全加固(自身)
- 前端报告/证据渲染接入 DOMPurify,堵住"目标页内容 → 管理员浏览器"的存储型 XSS 链;
- 三进程统一 Bearer 鉴权:Python agent(9100)新增
DHUNTER_AGENT_TOKEN(Go server 自动携带),与平台/MCP 同一标准; - 删除默认静态 token(
dhunter-admin-please-change-me等):admin.token留空时首次启动自动生成随机值并持久化,重启不变; - 登录接口新增 每 IP 限速(默认 10 次/分钟),防口令爆破;
- Token 预算红线生效(此前是死代码):设置 → Token 预算 到点自动停止并保留进度;
- 新增
force_reset_password密码找回路径:configs/dhunter.yaml设bootstrap_password + force_reset_password: true,重启即重置(无密码时拒绝执行)。
功能修复(用户可见)
- 双账号 A/B IDOR 真正可用:后端接收
account_a/account_b(此前被静默丢弃),"已配置会话"标记不再误报; - 实时事件流修复:SSE 事件携带 type + call_id,推理/回复/工具调用三个 pane 恢复分类显示,run 结束后页面状态自动更新(此前一直停在 running 需手动刷新);
- 运行记录列表显示目标名(后端 JOIN targets 返回 target_value/target_name);
- 仪表盘趋势图改为真实数据(按漏洞发现时间聚合),不再展示硬编码假曲线;新增 30s 自动刷新;
- 失败 run 的失败原因在详情页直接展示;创建表单提示 30 分钟运行上限;
- 报告支持导出 HTML(DOMPurify 净化的独立文件);
- 小修:BoardView 终态停止轮询、事件流 1000 条截断、搜索框 IME 守卫、paused 状态样式、Targets 页加载错误提示、删除死组件。
测试与工程
- 新增 Go E2E 契约测试(10+ 用例):锁定 targets/runs/vulns/report/SSE/鉴权/密码重置的 HTTP 契约,杜绝前后端字段名再漂移;
- 新增 前端测试框架(vitest)28 个用例 + CI 接入;
- 端口默认值统一 13343(此前 Go/Python 多处写死 8080);vite dev 代理同步修正;
- 新增
scripts/dev-env.sh:手动启动一键生成/复用三进程一致 token; smoke-test.sh结束时自动清理测试数据。
Dhunter v0.3.0 — 首个发布
Dhunter v0.3.0 — AI 驱动的自主渗透测试平台 · 首个发布
⚠️ 仅供学术交流与安全研究使用,请确保所有测试目标均已获得授权。
🧠 核心能力
- 黑板引擎:facts / intents / hints 持久化到 SQLite,planner 提出攻击意图 → 多 worker 并行探索 → 收敛(stigmergy 协调,worker 间不直接通信)
- 手动化侦察与主动测试:20+ 内置工具(子域枚举 / JS 分析 / 指纹 / 历史 URL / HTTP 手工探测 / 参数 fuzz / 认证绕过 / WAF 检测),LLM 自主选工具
- SRC 验收门禁:每条漏洞做机械重放 + 稳定性检查,时变噪声自动驳回;verifier 二次复核定级
- 实时思考流:SSE 推送推理 / 工具调用 / 结果,攻击图实时可视化;支持暂停/恢复、token 预算红线、Markdown 报告导出
🔐 本版安全加固
- 前端报告/证据渲染接入 DOMPurify,堵住"目标页内容 → 管理员浏览器"的存储型 XSS 链
- 三进程统一 Bearer 鉴权:Go server(13343)、Python agent(9100)、MCP(9124)同一标准(agent 侧
DHUNTER_AGENT_TOKEN) - 删除默认静态 token:
admin.token留空时首次启动自动生成随机值并持久化,重启不变 - 登录接口每 IP 限速(10 次/分钟),防口令爆破
- Token 预算红线生效(此前为死代码);新增
force_reset_password密码找回路径
🛠 功能修复
- 双账号 A/B IDOR 真正可用:后端接收
account_a/account_b(此前被静默丢弃),"已配置会话"标记不再误报 - 实时事件流修复:SSE 事件携带
type+call_id,推理/回复/工具调用分栏恢复,run 结束后页面状态自动更新(此前卡在 running 需手动刷新) - 运行记录列表显示目标名(后端 JOIN targets)
- 仪表盘真实趋势数据 + 30s 轮询(移除硬编码假曲线)
- 失败原因直接展示、30 分钟运行上限提示、HTML 报告导出(DOMPurify 净化)
🧪 测试与工程
- Go E2E 契约测试(10+ 用例)锁定 HTTP 字段契约,杜绝前后端字段名再漂移
- 前端 vitest 测试框架(28 用例)接入 CI
- 端口默认值统一 13343;
scripts/dev-env.sh手动启动 token 一键一致 - smoke-test 自动清理测试数据
📦 安装
./scripts/setup-tools.sh # 可选外部扫描器
./scripts/start-dhunter.sh start # 一键启动三件套 → http://127.0.0.1:13343/详见 README。
后续版本 v0.3.1(Token 优化 · 跨运行去重 · 预算可视化)与 v0.3.2(上下文窗口压缩 · 版本对比 · 收藏/通知/向导)已发布在相同仓库。