Aether 是一套基于大模型的自主渗透测试执行系统,通过 Planner–Executor–Reflector(P-E-R)多智能体协作闭环,将渗透测试从"人工逐条下发指令"推进到"任务级自主规划、并行执行、证据驱动收敛、可人工干预"的自动化阶段。
Planner 不直接产生"命令序列",而是向有向无环图(DAG)提交一套规划契约(Graph Contract):
- 原子操作:
ADD_NODE/DELETE_NODE/UPDATE_NODE/DEPRECATE_NODE - 图不变量守护:环检测、非法状态自动修复、已完成节点保护(已完成节点不可被降级)、孤儿节点自动标记
stalled_orphan
执行器只调度当前的"可执行子任务批",规划器只基于"已收敛的执行结果"做动态演进,二者通过图契约解耦,从根本上避免传统 Agent 中"规划与执行互相覆盖"的混乱。
除任务 DAG 外,系统同时维护一张因果关系图(Causal Graph):
- 节点类型区分事实(Fact / Evidence)与假设(Hypothesis),边携带
evidence_strength证据强度 - 反思结果通过
update_hypothesis_confidence触发置信度传播,假设状态机(RE_EVALUATION_PENDING等)随证据强度变化自动迁移 - 反射阶段产出的暂存因果节点(staged nodes)需经
validate_causal_graph_updates校验边引用后方可提升入图
这让"发现-假设-验证"不再是无序轮询,而是一条可追溯、可复盘的推理证据链。
深度潜入真实目标的失败是常态。系统内置停滞检测器(Stagnation Detector):
- 连续 N 轮(默认 5 轮)因果图无新增节点/证据/假设,判定任务进入停滞
- 自动生成恢复建议(重新分析既有证据、验证未证实假设、探索相邻攻击面、图驱动探索建议)
- 通过
__FORCE_REPLAN__注入全局情报,强制触发重新规划 - 若所有子任务阻塞而目标未达成,触发全局停滞兜底,再次强制终局规划
停滞不再被静默吞没,而是成为规划器的决策输入。
每轮循环执行后,反思器对子任务执行做验收式鉴权,并产出 findings / artifacts / insights。主循环的 _aggregate_intelligence 以内容指纹(前 80 字符 key)做跨子任务去重,避免同一结论被反复上报稀释规划信号;同时对目标达成状态做归一化判定,为 Planner 的终局决策提供唯一事实来源。
- 规划器/反思器采用有界历史窗口,随上下文膨胀自动触发语义压缩(历史总结),抑制长期任务中的上下文退化
- 全局
GLOBAL_MAX_CYCLES与GLOBAL_MAX_TOKEN_USAGE双重熔断器,杜绝死循环与失控的 Token 消耗 - 检测到"仅有思考、无工具调用"的AI 思考循环时自动终止会话并提示重发
关键决策(初始计划/动态图计划)默认进入人工审批门:
- 审批请求持久化到 SQLite,Web 界面与 CLI 双通道竞争决策(Approve / Reject / Modify),任一通道放行即继续,超时默认拒绝(fail-closed)
- 基于
asyncio.Event的进程内协程式暂停/恢复,取代平台的 SIGSTOP/SIGCONT,实现可执行的细粒度干预
针对 SRC(漏洞众测)场景提供专项深度模式:
- 深度模式(deep):完整 P-E-R 多智能体全流程
- 轻量模式(light):仅运行 Executor 循环,跳过 Planner/Reflector,压低开销
- 证据门槛(Evidence Gate):如 SQL 注入类以取库名/延时盲注即可确认,减少无效深挖
- 收敛策略:连续无新产出物自动终止、连续无工具调用自动终止、最小执行步数/工具调用数过早结束,防止低质量"刷业务"
- 子代理执行完成 →
generate_report产出报告快照 → 派发独立审查子进程(auditor)按收录规范核验,返回confirmed/discarded + corrective_guidance(矫正反馈) - 审查子进程异常不会阻断报告产出(降级为 error 并附原因),保证链路的"可诊断、可恢复"
- FastAPI Web 服务 + SSE 实时事件推送,任务图/因果图/干预请求实时可见
- 任务组独立派单、并发度控制、暂停/中止、重启后脏任务自动回收与调度补位
- 自定义工具热加载 / 白名单幂等管理
graph TD
START([下发目标]) --> GOAL[目标分解] --> PL[Planner 规划器]
subgraph PLAN [动态计划契约]
PL -->|ADD/UPDATE 等 DAG 变更| GUARD{图守护<br/>环检测/孤儿修复/状态保护}
GUARD -->|批准| BATCH
end
subgraph EXEC[并行执行]
BATCH[可执行子任务批] -->|asyncio.gather 并发| E1[Executor A]
BATCH --> E2[Executor B]
BATCH --> E3[Executor C]
subgraph 工具链
E1 --> T[HTTP/爆破/爬虫/Nuclei/JS分析<br/>DNSLog/断言库/Web搜索...]
E2 --> T
E3 --> T
end
end
subgraph REF[反思与情报]
T --> R1[Reflector 即时反思]
R1 --> CG[因果图更新<br/>置信度传播/记录提升]
CG --> AGG[情报聚合去重<br/>上下文压缩]
AGG --> SD{停滞检测}
SD -- 无增长连续 N 轮 --> PL
SD -- 正常 --> DONE{目标达成?}
DONE -- 否 --> SD
DONE -- 是 --> REP[结论报告] --> AUD[独立审查子代理<br/>收录/矫正反馈]
end
HIT[人工干预门<br/>Web+CLI 双通道] -.审批/驳回/修改.-> PL
CB[资源熔断<br/>循环上限/Token 上限] -.强制终止.-> EXEC
| 类别 | 能力 |
|---|---|
| 基础执行 | HTTP 请求、并发化压测、Shell / Python 执行(内置拦截规则与报告删除保护) |
| 漏洞验证 | Nuclei 模板扫描、HTTP 走私检测、断链探测 |
| 情报检索 | NVD / ExploitDB 联动检索、Web 搜索、RAG 知识检索(Faiss 向量库) |
| 攻击链增强 | 外部 CJ 会话(DNSLog OOB 回调)、Payload 服务器启停/日志、JS 文件静态分析 |
| 内在推理 | 假设形式化、失败复盘、成因分类(HTTP/超时/拒绝连接/权限拒绝)、专家二次分析 |
Aether 仅面向合法授权范围内的安全评估。用户须自行确认目标的授权来源与授权边界,因滥用造成的后果由使用者自行承担。
- 作者:JiuZero → https://github.com/JiuZero
