漏洞验证复现
漏洞验证复现的核心问题是:已经拿到了一份受影响资产清单,如何自动确认"哪些资产真的可被利用、哪些只是组件版本命中但不可达、哪些暂时无法验证"。
Flocks 的做法是让漏洞验证 Agent 按漏洞类型选择合适的验证模式,在授权 / 隔离环境下自动执行验证动作,最终输出「存在 / 不存在 / 无法验证」三态结论 + 证据记录。
场景简介
漏洞资产排查能回答"版本命中",回答不了"真的能利用吗"。后者往往是应急响应里压缩面积的关键:
- 版本命中不等于可利用(可能有 WAF 拦截、组件未启用某功能)
- 不可利用的资产可以降级处置优先级
- 可利用的资产才应该进入"紧急补丁 / 临时下线"流程
所以本场景的唯一产出是:每台资产的三态结论 + 证据。
重要约束:所有验证动作都必须在已授权、已隔离或已备份的环境里执行。漏洞验证 Agent 内置了"拒绝对非授权目标发起验证"的行为约束,具体执行前都会走 Skill / system prompt 的安全策略。
自动化流程
漏洞验证 Agent 根据漏洞类型选择适配的验证模式:
| 漏洞类型 | 验证方式 | 典型动作 |
|---|---|---|
| 弱口令 / 默认凭证 | 认证测试 | 尝试默认账密登录 SSH / RDP / Web / 数据库,失败即停 |
| 未授权访问 | 无凭证请求 | 直接请求敏感接口、管理后台、数据 API,看是否返回 200 + 数据 |
| 信息泄露 | 路径探测 | 探测 .git/ .env 备份文件 debug 接口是否暴露 |
| 路径穿越 / 任意文件读取 | 构造 Payload | 请求包含 ../ 的路径,验证文件读取边界 |
| SSRF / 请求伪造 | 回连验证 | 构造触发目标发起外部或内网连接的 Payload,用可控回连点确认 |
| POC 执行 | 完整 POC | 在隔离或授权环境下构造标准 POC,观察响应特征 |
Agent 会把每次尝试的原始请求 / 响应都留痕,不只输出"结论"。这是漏洞验证场景最重要的可审计性保证。
前置条件
| 依赖项 | 要求 |
|---|---|
| 模型 | 推理型模型优先(需要根据漏洞类型选择验证模式) |
| 授权边界 | 必须有明确的授权资产列表 / IP 段,Agent 只对列表内目标发起验证 |
| 工具链 | HTTP 工具、DNS / HTTP 回连点(SSRF 场景)、POC 库(可从社区引入) |
| Skill 安全策略 | 拒绝对非授权目标、拒绝造成业务影响的动作(如 SQL 注入的 DROP) |
| 受影响资产清单 | 通常来自 漏洞资产排查 的输出 |
操作步骤(WebUI)
步骤 1:承接资产清单
在漏洞资产排查的会话里,直接对 Rex 说:
「把清单里『对外暴露 + 核心业务』那 4 台资产交给漏洞验证 Agent,跑一遍 CVE-2026-xxxx 的验证,结果写回这里」
或在新会话里手动给清单。
步骤 2:选择验证模式
漏洞验证 Agent 会根据 CVE 类型自动选择模式。若无法自动判定,会把推断理由摆给用户确认。
步骤 3:授权边界确认
Agent 第一步一定是确认目标在授权列表内。不在就拒绝,并把原因记进 Workspace。
步骤 4:执行验证 + 留痕
每台资产对应执行对应模式的验证动作。每一次请求 / 响应都落盘:
vulns/CVE-2026-xxxx/verify/1.2.3.4/
request.txt
response.txt
verdict.json # {status: "exists" | "not_exists" | "unknown", evidence: ...}步骤 5:输出三态报告
每台资产一条结论,整体汇总为一份 Markdown,推送通道 + Workspace 落盘:
| IP | 组件版本 | 结论 | 证据 |
|---|---|---|---|
| 1.2.3.4 | v1.2.1 | 存在 | 构造 Payload 返回预期回连 |
| 1.2.3.5 | v1.2.1 | 不存在 | 请求被 WAF 拦截,响应 403 |
| 10.10.x.x | v1.2.0 | 无法验证 | 验证需认证凭证,本次未提供 |
| 10.10.x.y | v1.2.0 | 存在 | 路径穿越读到 /etc/passwd 首行 |
产出示例(verdict.json 片段)
{
"cve": "CVE-2026-xxxx",
"target": "1.2.3.4",
"mode": "poc",
"status": "exists",
"evidence": {
"request": "POST /api/xxx ... (see request.txt)",
"response_marker": "unique_echo_abc123",
"observed_at": "2026-03-28T15:22:18+08:00"
},
"next_action": "emergency_patch"
}边界与常见问题
| 问题 | 处理 |
|---|---|
| 对线上业务验证会不会把业务打挂 | 严格限制:非授权 / 非隔离目标拒绝执行;破坏性动作(如删表)进黑名单 |
| 没有 POC 的新漏洞怎么办 | 只跑"通用验证模式"(未授权、信息泄露等),CVE 特有逻辑的漏洞标为"无法验证" |
| WAF 拦截导致结论失真 | 在证据里明确标注"被 WAF 拦截 → 不代表漏洞不存在",建议人工补测 |
| 想让 Agent 自动利用漏洞取数据 | 不支持也不会做。Agent 只验证"存在性",不做利用 |
| 验证过程需要凭证 | 通过 Skill 注入授权凭证;或标为"需认证 → 无法验证",交由人工补 |
相关:场景总览 · 漏洞资产排查 · 威胁情报与 IOC 研判 · Skills 技能库 · 公网暴露注意事项