自主红队渗透测试专家系统 —— Agent-First 架构,LLM 驱动的自主安全测试平台。
[Python 3.10+] [Alpha]
DRX-Operator 是一个 Agent-First 架构的自主渗透测试系统。与传统安全工具不同,DRX-Operator 的核心是一个 LLM 驱动的 Master Agent,它通过 ReAct(推理-行动)循环自主决策、 调用工具链、分析结果,持续执行安全测试任务。终端界面(TUI)只是薄展示壳, Agent 是系统的一等公民 —— 所有操作都是 LLM 工具调用。
系统内置 Python/Bash 沙箱、持久化 Shell 会话管理、OOB 回调监听、MCP 协议扩展、 声明式权限引擎、5 级安全门控、证据链驱动的漏洞发现模型,以及 7 层上下文压缩管线, 支撑超长红队会话。
本工具仅限授权安全测试使用。未经授权访问他人系统属于违法行为。使用前请确保已获得 目标系统的书面授权。
自主 ReAct 决策循环 30+ 内置工具 证据链驱动的漏洞发现 5级安全门控 MCP 协议支持 优先级任务调度与并行派发 会话持久化 LLM 韧性层 7层上下文压缩管线 终端界面(Textual TUI)
启动后进入 Textual TUI,界面分为四个区域:
- 聊天区(左侧主区域):显示 Agent 的思考过程、工具调用卡片和结果
- 侧栏(右侧):上方显示 todo 任务列表,下方显示活跃的子 Agent 状态
- 输入框(底部):输入自然语言指令或斜杠命令
- 状态栏(最底部):显示当前状态信息
| 命令 | 说明 |
|---|---|
/scan <target> |
启动侦察扫描 |
/exploit <target> |
启动漏洞利用 |
/target <host> |
管理目标主机信息 |
/status |
查看当前系统状态 |
/plan |
切换到 plan 模式(仅允许只读工具) |
/act |
切换到 act 模式(允许全部工具) |
/mode |
查看当前模式 |
/stop 或 /cancel 或 /interrupt |
中断当前任务 |
/dream |
触发深度上下文压缩(L6 层) |
/context |
查看上下文使用量 |
/progress |
查看进度文档(9 段结构) |
/memory |
查看项目记忆(DRX.md/AGENTS.md/CLAUDE.md) |
/memory reload |
重新加载项目记忆文件 |
为降低风险,Agent 支持两种运行模式:
- plan 模式:仅允许只读工具(
read_file、grep、web_search、cve_lookup、http_fetch、parse_nmap、parse_http、todo_write、shell_list)。对 write/exec/shell/dispatch 类调用会直接拒绝并提示。适合分析和规划阶段。 - act 模式(默认):全部工具可用,Agent 可以执行扫描、利用、文件写入等操作。
使用 /plan 和 /act 命令切换。
会话自动保存到 sessions/ 目录。数据包括:
- 知识库(目标、发现、凭据)→
sessions/<id>/kb.json - 消息历史 →
sessions/<id>/messages.json - 元数据(todo、模式、用量统计)→
sessions/sessions.db(SQLite)
在聊天中输入 "恢复会话" 或 "restore session" 可恢复最近一次保存的会话。
+------------------------------------------------------------------+
| TUI (Textual App) |
| ChatPanel | Sidebar | Composer | StatusFooter |
| 薄展示壳 —— 所有操作通过 EventBus 通信 |
+------------------------------------------------------------------+
| EventBus
+------------------------------------------------------------------+
| Master Agent (ReAct Loop) |
| Plan -> Think -> Act -> Observe -> Reflect |
| System Prompt 构建 | Tool Schema 管理 | Tool 执行路由 |
| Context Compaction (L1-L7) | SubAgent Dispatch | Approval Flow |
+------------------------------------------------------------------+
| | | |
+---------------+ +-----------+ +-----------+ +-----------+
| LLM Provider | | Execution | | Safety | | Knowledge |
| Abstraction | | Engines | | Layer | | Base |
+---------------+ +-----------+ +-----------+ +-----------+
| Anthropic | | Python | | SafetyGate| | Targets |
| OpenAI | | Sandbox | | L0-L4 | | Findings |
| DeepSeek | | Bash | | Permission| | Credential|
| Resilient | | Sandbox | | Engine | | Vault |
| (retry+fb) | | Shell | | Glob Rules| +-----------+
+---------------+ | Sessions | +-----------+ | Artifact |
| OOB | | Store |
| Listener | | (disk) |
+-----------+ +-----------+
+------------------------------------------------------------------+
| Extension & Persistence |
| MCPManager | HookManager | SkillsRegistry | SessionStore(SQLite)|
+------------------------------------------------------------------+
当任务可拆分时,Master Agent 通过 task 工具派发 SubAgent。每个 SubAgent:
- 拥有独立的
agent_id(如recon-a1b2c3)和独立消息历史 - 共享父 Agent 的 tool_executor(同一套沙箱/Shell/KB)
- 运行自己的 ReAct 循环(最大迭代次数 + TTL 限制)
- 完成后通过 EventBus 发布
SUB_AGENT_RESULT,侧栏实时更新
子 Agent 无法递归调用 task 工具(防止失控递归)。
系统实现了 7 层上下文压缩管线,解决 LLM 上下文窗口有限的问题:
| 层级 | 名称 | 触发条件 | 机制 |
|---|---|---|---|
| L1 | 结果存储 | 单个工具结果 > 4000 字符 | 内容写入 ArtifactStore,消息中替换为 artifact://<id> 指针 |
| L2 | 微压缩 | 每次 LLM 调用前 | 去重完全相同的工具结果,丢弃纯空白/填充内容 |
| L3 | 进度文档 | L5 触发时维护 | 9 段结构的活文档,持续追踪会话进展 |
| L4 | 全压缩 | 使用量达模型窗口 80% | LLM 摘要压缩历史消息为滚动摘要 |
| L5 | 自动提取 | L4 触发时 | 扫描全量消息,提取产物指针到索引 |
| L6 | Dream | 用户执行 /dream |
二次合并压缩 + 深度剪枝 |
| L7 | 跨 Agent | SubAgent 完成时 | 子 Agent 产物写入共享 ArtifactStore |
上下文触发点是模型的实际上下文窗口(从 config.context_window 或自动检测),
而非固定 token 数。压缩比例、保留最近消息数等参数均可配置。
双层安全设计:
L0-L4 SafetyGate(操作风险门控):
| 级别 | 说明 | 行为 |
|---|---|---|
| L0 | 侦察类 | 自动批准 |
| L1 | 被动漏洞扫描 | 首次批准后会话级缓存 |
| L2 | 主动漏洞利用 | 需用户逐次 approve |
| L3 | 凭据/持久化攻击 | 需用户逐次 approve |
| L4 | 破坏性/不可逆操作 | 需输入确认短语 |
PermissionEngine(声明式工具规则):
独立于 SafetyGate,通过有序规则列表匹配工具调用:
{
"tool": "execute_bash",
"match": "*rm -rf /*",
"action": "deny",
"note": "destructive root delete"
}决策:allow(直接放行)、ask(弹出审批请求)、deny(拒绝并返回原因)。首条
匹配规则生效。用户可通过回答 always 将该规则升级为会话级永久允许。
所有已连接 MCP 服务器的工具自动以 mcp__<server>__<tool> 格式注入,在 LLM 工具
列表中与内置工具并列。调用时自动路由到对应 MCP 客户端。
以下是计划中的功能和改进
中期
- 插件系统:第三方可注册自定义工具和 SubAgent 类型
- Web 仪表板(替代/补充 TUI):远程监控和控制
- 多 Agent 协作模式:多个 Master Agent 共享知识库,分布式测试
- 目标范围自动发现(ASN、DNS 枚举、子域名爆破集成)
- 集成 Burp Suite / ZAP(通过 MCP 或专用适配器)
远期
- 对抗性模拟:ATT&CK 框架完整映射,战术编排
- 持续安全测试模式:定期自动扫描 + 变更检测
- 社区技能市场:可共享的 exploit/recon 技能包
- 多租户 SaaS 平台(仅限授权测试)
DRX-Operator(以下简称"本工具")仅供授权的安全测试、研究、教育和合法的红队演练使用。
使用本工具即表示您确认:
- 您已获得目标系统所有者的明确书面授权,允许对其进行安全测试。
- 您将遵守所有适用的法律、法规和规章。
- 未经授权访问计算机系统属于违法行为,可能导致民事和/或刑事处罚。
- 本工具的开发者/贡献者不对因使用或滥用本工具而造成的任何损害、损失或法律后果 承担责任。
- 您对使用本工具所采取的一切行动及其后果承担全部责任。
如果您不确定是否有权测试目标系统,请不要使用本工具。如有疑问,请咨询法律顾问。
本工具的安全门控(SafetyGate)和权限引擎(PermissionEngine)仅为辅助控制, 不能替代使用者的专业判断和法律合规意识。