atreasureboy/ovogo

GitHub: atreasureboy/ovogo

一个基于 AI Agent 的自动化红队协调引擎,解决渗透测试中攻击链生成、并行利用与报告编制的效率问题。

Stars: 0 | Forks: 0

# Ovogo — 自主红队协调引擎
**AI 驱动的渗透测试自主协调 Agent | Think-Act-Observe 引擎 | 多 Agent 编排 | 跨轮次记忆** [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/) [![OpenAI](https://img.shields.io/badge/OpenAI-Compatible-green.svg)](https://platform.openai.com/) [![Claude](https://img.shields.io/badge/Claude-Supported-purple.svg)](https://www.anthropic.com/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
## 目录 - [项目简介](#项目简介) - [完整架构全景图](#完整架构全景图) - [核心模块详解](#核心模块详解) - [执行引擎:Think-Act-Observe](#执行引擎think-act-observe) - [状态机编排器](#状态机编排器) - [子 Agent 作战体系](#子-agent-作战体系) - [记忆与知识系统](#记忆与知识系统) - [工具系统(20 Tools)](#工具系统20-tools) - [安全基础设施](#安全基础设施) - [快速开始](#快速开始) - [项目结构](#项目结构) - [设计决策](#设计决策) - [技术栈](#技术栈) - [安全声明](#安全声明) ## 项目简介 Ovogo 是一个**自主红队协调引擎**——它不是一堆散装的扫描脚本,而是一个具备完整推理能力的 AI Agent,能够: 1. **理解目标** — 接收渗透测试目标(URL / IP / 域名) 2. **制定计划** — 基于 MITRE ATT&CK 框架自动生成攻击链 3. **并行分发** — 同时派遣多个专业子 Agent 执行侦察、扫描、利用 4. **监控进度** — 定时读取子 Agent 输出,评估进展,调整策略 5. **联动利用** — 将一个 Agent 的发现传递给另一个 Agent 利用 6. **收集 Flag** — 自动搜索、提取目标 Flag 7. **生成报告** — 汇总所有发现,形成完整攻击链记录 **与传统红队框架的本质区别:** - 传统框架 = 脚本编排(if-then 流程固定) - Ovogo = AI 自主决策(LLM 每轮推理,动态调整策略) ## 完整架构全景图 ╔══════════════════════════════════════════════════════════════════════════════════════════════╗ ║ Ovogo — 自主红队协调引擎 架构全景 ║ ╠══════════════════════════════════════════════════════════════════════════════════════════════╣ ║ ║ ║ 用户输入: "对 zhhovo.top 进行渗透测试" ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────────────────────────────────────────────────────────────────────────┐ ║ ║ │ bin/ovogogogo.ts — 主入口 (REPL / 单次任务 / --orchestrator 状态机模式) │ ║ ║ │ ├── Skill 系统 (阶段动态工具加载) │ Hook 系统 (Pre/Post 工具钩子) │ ║ ║ │ ├── MCP 服务 (外部工具扩展) │ OVOGO.md (用户指令注入) │ ║ ║ │ └── Memory 系统 (文件记忆加载) │ KnowledgeBase (实战知识注入) │ ║ ║ └─────────────────────────────────┬───────────────────────────────────────────────────┘ ║ ║ │ ║ ║ ┌───────────────┼───────────────┐ ║ ║ ▼ ▼ ▼ ║ ║ ┌─────────────────────┐ ┌────────────────┐ ┌──────────────────────────────┐ ║ ║ │ ExecutionEngine │ │ Battle │ │ Agent Worker (独立进程) │ ║ ║ │ (Think-Act-Observe)│ │ Orchestrator │ │ ┌──────────────────────┐ │ ║ ║ │ │ │ (状态机) │ │ │ 专用 Agent 实例 │ │ ║ ║ │ ┌─────────────────┐ │ │ │ │ │ 独立 Engine + Prompt │ │ ║ ║ │ │ Context Budget │ │ │ PhaseMachine │ │ │ 文件系统通信 │ │ ║ ║ │ │ + Auto-Compact │ │ │ 7阶段状态机 │ │ │ 结构化结果提取 │ │ ║ ║ │ ├─────────────────┤ │ ├──────────────┤ │ └──────────────────────┘ │ ║ ║ │ │ Streaming LLM │ │ │ TaskDAG │ │ │ recon / vuln-scan / │ ║ ║ │ │ + Tool Stream │ │ │ 依赖追踪 │ │ │ exploit / privesc / │ ║ ║ │ ├─────────────────┤ │ ├──────────────┤ │ │ lateral / flag-hunter │ ║ ║ │ │ Critic 审查 │ │ │ LLM │ │ └──────────────────────────────┘ ║ ║ │ │ (15项自动纠错) │ │ │ Supervisor │ │ ║ ║ │ ├─────────────────┤ │ │ RoE约束注入 │ │ ║ ║ │ │ 并行 Tool 调度 │ │ └──────┬───────┘ │ ║ ║ │ │ (Promise.all) │ │ │ │ │ ║ ║ │ └────────┬────────┘ │ └───────┼─┘ ║ ║ └─────────┼──────────┘ │ ║ ║ │ │ ║ ║ ┌─────────┴───────────────────────────┼──────────────────────────────────────┐ ║ ║ │ 工具层 (20 Tools) │ │ ║ ║ │ ┌──────────┬──────────┬────────────┼──────┬──────────┬──────────────┐ │ ║ ║ │ │ Bash │ Agent │ MultiAgent │ 武器 │ Shell │ TmuxSession │ │ ║ ║ │ │ 命令执行 │ 子Agent │ 批量并发 │ 雷达 │ Session │ 交互进程 │ │ ║ ║ │ ├──────────┼──────────┼────────────┼──────┼──────────┼──────────────┤ │ ║ ║ │ │ Read │ Write │ Edit │ Glob │ Grep │ TodoWrite │ │ ║ ║ │ │ 读文件 │ 写文件 │ 精确替换 │ 查找 │ 内容搜索 │ 任务清单 │ │ ║ ║ │ ├──────────┼──────────┼────────────┼──────┼──────────┼──────────────┤ │ ║ ║ │ │ Weapon │ Web │ Web │ C2 │ Dispatch │ Finding │ │ ║ ║ │ │ Radar │ Search │ Fetch │ 设施 │ Agent │ Write/List │ │ ║ ║ │ │ 22W PoC │ 网络搜索 │ URL获取 │ MSF │ 异步任务 │ 漏洞管理 │ │ ║ ║ │ └──────────┴──────────┴────────────┴──────┴──────────┴──────────────┘ │ ║ ║ └────────────────────────────────────────────────────────────────────────────┘ ║ ║ │ ║ ║ ┌─────────┴────────────────────────────────────────────────────────────────────┐ ║ ║ │ 记忆 & 知识 & 安全基础设施 │ ║ ║ │ ┌──────────────┐ ┌───────────────┐ ┌──────────────┐ ┌──────────────────┐ │ ║ ║ │ │ 语义记忆 │ │ 情景记忆 │ │ 实战知识库 │ │ EventLog │ │ ║ ║ │ │ SemanticMem │ │ EpisodicMem │ │ KnowledgeBase│ │ (不可变事件流) │ │ ║ ║ │ │ CVE/拓扑/凭证│ │ 行动轨迹 │ │ JSONL持久化 │ │ NDJSON审计轨迹 │ │ ║ ║ │ ├──────────────┤ ├───────────────┤ ├──────────────┤ ├──────────────────┤ │ ║ ║ │ │ 工具缓存 │ │ 进度追踪 │ │ Dispatch │ │ 文件记忆 │ │ ║ ║ │ │ ToolCache │ │ Progress │ │ 异步通信 │ │ MEMORY.md │ │ ║ ║ │ │ SHA256+TTL │ │ 长任务管理 │ │ 任务队列 │ │ 跨session偏好 │ │ ║ ║ │ └──────────────┘ └───────────────┘ └──────────────┘ └──────────────────┘ │ ║ ║ └────────────────────────────────────────────────────────────────────────────┘ ║ ║ │ ║ ║ ┌─────────┴────────────────────────────────────────────────────────────────────────────┐ ║ ║ │ 子 Agent 作战体系 (25+ 类型) │ ║ ║ │ │ ║ ║ │ Phase 1: 侦察+探测 Phase 2: 漏洞检索 Phase 3: 漏洞利用+C2 │ ║ ║ │ ┌──────────────────┐ ┌─────────────────┐ ┌────────────────────────────┐ │ ║ ║ │ │ recon ─┬─ dns-recon │ weapon-match │ │ manual-exploit (curl/py) │ │ ║ ║ │ │ ├─ port-scan │ 22W PoC语义检索 │ │ tool-exploit (MSF/sqlmap) │ │ ║ ║ │ │ ├─ web-probe └─────────────────┘ │ c2-deploy (MSF/Sliver) │ │ ║ ║ │ │ └─ osint └────────────┬───────────────┘ │ ║ ║ │ ├──────────────────┤ │ │ ║ ║ │ │ vuln-scan ─┬─ web-vuln Phase 4: 靶机操作 Phase 5: 内网横移 │ ║ ║ │ │ ├─ service-vuln ┌──────────────┐ ┌────────────────────────────┐ │ ║ ║ │ │ └─ auth-attack │ target-recon │ │ tunnel (chisel socks5) │ │ ║ ║ │ └──────────────────┘ │ privesc │ │ internal-recon (proxy+nmap)│ │ ║ ║ │ └───────┬───────┘ │ lateral (PTH/MS17/Kerberos)│ │ ║ ║ │ │ └────────────┬───────────────┘ │ ║ ║ │ Phase 6: Flag收集 Phase 7: 报告 │ ║ ║ │ ┌──────────────┐ ┌────────────────────────────┐ │ ║ ║ │ │ flag-hunter │ │ report (渗透测试报告) │ │ ║ ║ │ │ 6层深度搜索 │ │ 攻击链记录 + 漏洞清单 │ │ ║ ║ │ └──────────────┘ └────────────────────────────┘ │ ║ ║ └────────────────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ 输出: sessions/{target}_{timestamp}/ — 完整攻击记录 + 漏洞清单 + Flag + 报告 ║ ╚══════════════════════════════════════════════════════════════════════════════════════════╝ ## 核心模块详解 ### 执行引擎:Think-Act-Observe ┌──────────────────────────────────────────────────────────────────┐ │ RunTurn() 主循环 │ │ │ │ ┌───────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐ │ │ │ Context │ -> │ Streaming │ -> │ Tool │ -> │ Loop / │ │ │ │ Budget + │ │ LLM Call │ │ Batch │ │ Return │ │ │ │ Compact │ │ (Think) │ │ (Act/Obs) │ │ │ │ │ └───────────┘ └──────────┘ └───────────┘ └──────────┘ │ │ ↑ │ │ │ 每 5 轮 │ │ ┌────┴──────────┐ │ │ │ Critic 检查 │ 15 项自动纠错清单 │ │ └───────────────┘ │ │ │ │ 并行调度: Promise.all (安全工具) + 串行 (写操作) │ │ 软中断: ESC 暂停 → 用户介入 → 继续 │ │ 硬中断: Ctrl+C 取消 │ └──────────────────────────────────────────────────────────────────┘ 每次 `runTurn()` 循环: 1. **上下文预算评估** — 检查 token 使用量,决定是否需要压缩 2. **自动压缩** — 超过 75% 时调用 LLM 摘要旧消息,保留最近 8 条原始消息 3. **Critic 注入** — 每 5 轮用 LLM 审查最近 24 条消息,发现失误立即纠正 4. **流式 API 调用** — 接收 LLM 的文本思考(Think)+ 工具调用(Act) 5. **工具批调度** — 读工具并行执行(Promise.all),写工具串行执行 6. **结果注入** — 工具结果作为 user 消息注入下一轮 ### 状态机编排器 ┌──────────────────────────────────────────────────────────────┐ │ BattleOrchestrator │ │ │ │ init → recon → vuln-scan → weapon-match → exploit │ │ ↘ ↗ ↗ ↗ │ │ post-exploit → privesc → lateral │ │ ↖ ↗ │ │ report → done │ │ │ │ PhaseMachine: 阶段状态追踪 + 允许转换约束 │ │ TaskDAG: 任务依赖图 + 自动触发下游任务 │ │ Supervisor: LLM 决策引擎 (JSON 输出) + RoE 约束注入 │ │ Fallback: 规则降级决策 (LLM 失败时) │ │ │ │ 启动: ovogogogo --orchestrator "对 target 进行渗透测试" │ └──────────────────────────────────────────────────────────────┘ ### 子 Agent 作战体系 ┌─────────────────────────────────────────────────────────────────┐ │ 子 Agent 作战体系 (25+ 类型) │ │ │ │ Phase 1 — 侦察 + 漏洞探测 (并行开局) │ │ ├── recon 侦察总管 (内部: dns-recon / port-scan / │ │ │ web-probe / osint) │ │ └── vuln-scan 漏洞探测总管 (内部: web-vuln / │ │ service-vuln / auth-attack) │ │ │ │ Phase 2 — 漏洞检索 │ │ └── weapon-match POC 库语义检索 (22W Nuclei PoC, │ │ BGE-M3 向量搜索) │ │ │ │ Phase 3 — 漏洞利用 + C2 (并行) │ │ ├── manual-exploit 手工利用 (curl/python 精准打击) │ │ ├── tool-exploit 工具利用 (MSF/sqlmap/searchsploit) │ │ └── c2-deploy C2 部署 (Metasploit/Sliver 监听 + payload) │ │ │ │ Phase 4 — 靶机操作 │ │ ├── target-recon 靶机信息收集 (本机 + 内网) │ │ └── privesc 权限提升 (SUID/sudo/内核/计划任务) │ │ │ │ Phase 5 — 内网横移 │ │ ├── tunnel 内网穿透 (chisel socks5 代理) │ │ ├── internal-recon 内网资产发现 (proxychains + nmap) │ │ └── lateral 横向移动 (MS17-010/PTH/凭证复用/AD攻击) │ │ │ │ Phase 6 — Flag 收集 │ │ └── flag-hunter 全局 Flag 搜索收集 (6 层深度搜索) │ │ │ │ Phase 7 — 报告 │ │ └── report 渗透测试报告生成 │ │ │ │ 每个子 Agent: 独立 Engine | 专用 Prompt | tmux 面板 | 文件通信 │ └─────────────────────────────────────────────────────────────────┘ ### 记忆与知识系统 ┌─────────────────────────────────────────────────────────────────┐ │ 记忆 & 知识系统 │ │ │ │ ┌───────────────────┐ ┌───────────────────┐ │ │ │ 语义记忆 │ │ 情景记忆 │ │ │ │ SemanticMemory │ │ EpisodicMemory │ │ │ │ │ │ │ │ │ │ 渗透知识持久化 │ │ 行动轨迹记录 │ │ │ │ CVE利用/内网拓扑 │ │ "做了什么/成功失败" │ │ │ │ 凭证/技术栈 │ │ Critic检查时注入 │ │ │ │ │ │ │ │ │ │ 存储: semantic.jsonl│ │ 存储: episodes.jsonl│ │ │ └───────────────────┘ └───────────────────┘ │ │ │ │ ┌───────────────────┐ ┌───────────────────┐ │ │ │ 实战知识库 │ │ 文件记忆 │ │ │ │ KnowledgeBase │ │ MEMORY.md │ │ │ │ │ │ │ │ │ │ 4类 JSONL 持久化 │ │ 用户协作偏好 │ │ │ │ attack_patterns │ │ 项目约定/反馈 │ │ │ │ cve_notes │ │ 跨 session 保留 │ │ │ │ tool_combos │ │ │ │ │ │ target_profiles │ │ 存储: memory/ │ │ │ │ │ │ │ │ │ │ 规则提取(零LLM成本) │ │ 启动时自动加载 │ │ │ │ 实时+Session结束 │ │ │ │ │ └───────────────────┘ └───────────────────┘ │ │ │ │ 攻击知识库 (AttackKnowledge) — 17 章节系统性方法论 │ │ ├── Web攻击向量 (API/认证/上传/SSRF/SSTI/反序列化) │ │ ├── 框架漏洞 (Java/PHP/Python/Node.js/Go) │ │ ├── 云原生攻击 (Docker/K8s/CI-CD/AWS/Azure/GCP) │ │ ├── 数据库攻击 (Redis/MongoDB/MySQL/PG/ES/RabbitMQ/Kafka) │ │ ├── 内网&AD攻击 (Kerberos/NTLM/ADCS/BloodHound/横向) │ │ ├── OAuth/SAML/SSO (授权码劫持/PKCE/断言注入) │ │ ├── AI/LLM应用攻击 (Prompt注入/RAG污染/工具滥用) │ │ ├── 供应链&CI/CD (依赖污染/GitHub Actions/Jenkins) │ │ └── 攻击链配方 (10条完整攻击链公式) │ └─────────────────────────────────────────────────────────────────┘ ### 工具系统(20 Tools) 所有工具统一 `Tool` 接口:`execute(input, context) → Promise` | 类别 | 工具 | 职责 | |------|------|------| | **执行** | Bash | Shell 命令(进程组 kill、后台模式、follow 模式) | | | ShellSession | 持久反弹 Shell(listen/exec/kill) | | | TmuxSession | 本地交互进程(msfconsole/sqlmap/REPL) | | **文件** | Read / Write / Edit / Glob / Grep | 文件读写、查找、替换 | | **情报** | WeaponRadar | 22W PoC 向量数据库语义检索(BGE-M3) | | | WebSearch / WebFetch / DocRead | 网络搜索、URL 获取、文档读取 | | **编排** | Agent / MultiAgent | 启动单个或多个子 Agent | | | DispatchAgent / CheckDispatch / GetDispatchResult | 异步任务分发 | | **管理** | FindingWrite / FindingList | 漏洞记录管理 | | | TodoWrite | 任务清单 | | | C2 | C2 基础设施(Metasploit/Sliver) | **调度策略**: - **并行批**(Promise.all):Read/Glob/Grep/WebFetch/WebSearch/Bash/Agent/MultiAgent/DispatchAgent/C2/ShellSession/TmuxSession - **串行批**(竞态安全):Write/Edit/FindingWrite ### 安全基础设施 ShellSession (反弹 Shell 持久管理) TmuxSession (本地交互进程) ┌─────────────────────────┐ ┌──────────────────────────┐ │ 目标 ──TCP──> 攻击机 │ │ msfconsole / sqlmap │ │ │ │ │ │ │ │ listen(port) │ │ new() → 创建 tmux 会话 │ │ exec(session, cmd) │ │ send() → 发送按键 │ │ kill(session) │ │ capture() → 捕获输出 │ │ │ │ wait_for() → 等待模式 │ │ 多 Shell 并发 │ │ list() / kill() │ │ 命令超时控制 │ │ 解决交互式工具超时问题 │ └─────────────────────────┘ └──────────────────────────┘ C2 集成 (Metasploit + Sliver) ├── Metasploit: msfrpcd API — listener 部署、payload 生成、session 管理 ├── Sliver: CLI 封装 — implant 生成、beacon 交互 └── 持久化: C2 状态 JSON,重启后恢复 ## 快速开始 ### 一键安装 **Windows:** setup.bat **macOS / Linux:** chmod +x setup.sh && ./setup.sh ### 手动安装 git clone https://github.com/atreasureboy/ovogo.git cd ovogo npm install npm run build ### 配置 # 设置 API 密钥 (必需) export OPENAI_API_KEY=sk-xxx # Linux/macOS set OPENAI_API_KEY=sk-xxx # Windows CMD $env:OPENAI_API_KEY="sk-xxx" # Windows PowerShell # 可选配置 export OPENAI_BASE_URL=https://api.example.com # 兼容端点 export OVOGO_MODEL=gpt-4o # 模型 export OVOGO_MAX_ITER=200 # 最大轮数 export OVOGO_CWD=/path/to/project # 工作目录 ### 使用 # 交互模式 (REPL) ovogo # 直接任务 ovogo "对 zhhovo.top 进行渗透测试" # 管道输入 echo "分析当前项目安全" | ovogo # Plan 模式 (只读分析) ovogo "/plan 分析目标 zhhovo.top 的攻击面" # 状态机编排模式 (全自动攻击链) ovogo --orchestrator "对 zhhovo.top 进行渗透测试" # 参数控制 ovogo -m claude-sonnet-4-x --max-iter 300 --cwd /target/dir ### REPL 命令 | 命令 | 功能 | |------|------| | `/plan ` | Plan 模式运行(只读分析 + 确认执行) | | `/skills` | 列出可用 skills | | `/clear` | 清空对话历史 | | `/history` | 显示消息数 | | `/model` | 显示当前模型 | | `/help` | 显示帮助 | | `/exit` | 退出 | 交互控制: - **ESC** — 暂停当前操作,注入用户建议 - **Ctrl+C** — 强制取消 - **Ctrl+D** — 退出 ## 项目结构 ovogo/ ├── bin/ │ ├── ovogogogo.ts # 主入口 (REPL + Task + Plan + Orchestrator) │ └── agent-worker.ts # 子 Agent 独立进程 │ ├── src/ │ ├── core/ # 核心引擎 │ │ ├── engine.ts # Think-Act-Observe 执行引擎 (流式 + 并行调度 + Critic) │ │ ├── orchestrator.ts # 状态机 + TaskDAG + LLM Supervisor │ │ ├── types.ts # 核心类型定义 │ │ ├── compact.ts # 上下文压缩 (LLM 摘要 + 百分比阈值) │ │ ├── contextBudget.ts # 上下文预算管理 (显式 token 分配) │ │ ├── eventLog.ts # 不可变事件流 (NDJSON 审计轨迹) │ │ ├── dispatch.ts # 异步 Agent 分发管理器 │ │ ├── semanticMemory.ts # 语义记忆 (跨 session 渗透知识) │ │ ├── episodicMemory.ts # 情景记忆 (行动轨迹记录) │ │ ├── knowledgeBase.ts # 实战知识库 (JSONL 持久化) │ │ ├── knowledgeExtractor.ts # 规则知识提取器 (零LLM成本) │ │ ├── skillRegistry.ts # 技能注册表 (阶段动态加载) │ │ ├── progressTracker.ts# 长任务进度追踪 │ │ ├── toolCache.ts # 工具结果缓存 (SHA256 + TTL) │ │ └── priorityQueue.ts # 优先级队列 │ │ │ ├── tools/ # 通用工具 (20 tools) │ │ ├── agent.ts # 子 Agent 派发 + Dispatch 工具 │ │ ├── multiAgent.ts # 批量并发子 Agent │ │ ├── bash.ts # Shell 命令执行 (进程组 kill) │ │ ├── shellSession.ts # 反弹 Shell 持久管理 │ │ ├── tmuxSession.ts # 本地交互进程管理 │ │ ├── weaponRadar.ts # 22W PoC 向量数据库检索 │ │ ├── c2.ts # C2 基础设施 (MSF/Sliver) │ │ ├── finding.ts # 漏洞档案管理 │ │ ├── multiScan.ts # 批量并发扫描 │ │ ├── fileRead.ts # 文件读取 │ │ ├── fileWrite.ts # 文件写入 │ │ ├── fileEdit.ts # 文件编辑 │ │ ├── glob.ts # 文件查找 │ │ ├── grep.ts # 内容搜索 │ │ ├── todo.ts # 任务清单 │ │ ├── webFetch.ts # URL 内容获取 │ │ ├── webSearch.ts # 网络搜索 │ │ ├── docRead.ts # 文档读取 │ │ └── index.ts # 工具注册 │ │ │ ├── skills/ # 阶段技能模块 │ │ ├── recon.ts # 侦察阶段工具 │ │ ├── vuln-scan.ts # 漏洞扫描阶段工具 │ │ ├── exploit.ts # 漏洞利用阶段工具 │ │ ├── post-exploit.ts # 后渗透阶段工具 │ │ └── loader.ts # 技能加载器 │ │ │ ├── prompts/ # Prompt 工程 │ │ ├── system.ts # 系统 Prompt 组装 (12+ sections) │ │ ├── agentPrompts.ts # 25+ Agent 类型专用 Prompt │ │ ├── attackKnowledge.ts # 17章攻击知识库 (全面方法论) │ │ └── tools.ts # 工具描述 Prompt │ │ │ ├── config/ # 配置系统 │ │ ├── settings.ts # 设置加载 (项目级 + 用户级) │ │ ├── hooks.ts # Hook 执行器 │ │ └── ovogomd.ts # OVOGO.md 指令加载 │ │ │ ├── memory/ # 文件记忆系统 │ │ └── index.ts # MEMORY.md 索引 + 加载 │ │ │ ├── ui/ # 终端 UI │ │ ├── renderer.ts # 终端渲染器 (文件回溯 + spinner) │ │ ├── input.ts # 输入处理 (ESC + Ctrl+C + Ctrl+D) │ │ └── tmuxLayout.ts # tmux 4 面板布局管理 │ │ │ └── services/mcp/ # MCP 服务 │ ├── client.ts # MCP 客户端 │ ├── loader.ts # MCP 服务器加载 │ ├── mcpTool.ts # MCP 工具适配 │ └── types.ts # MCP 类型 │ ├── sessions/ # 运行时 session 输出 (git 忽略) ├── .ovogo/ # 项目配置 + skills + findings ├── setup.bat # Windows 一键安装脚本 ├── setup.sh # macOS/Linux 一键安装脚本 ├── package.json ├── tsconfig.json └── .gitignore ## 设计决策 ### 为什么是协调器架构? 渗透测试是**长链路、多工具、长耗时**的任务。单一 Agent 直接执行所有工具会导致: 1. **上下文窗口爆炸** — 每个工具的结果都占 token 2. **专注力下降** — Agent 推理能力随上下文增大而衰减 3. **无法并行** — 串行执行浪费时间 **协调器方案**:主 Agent 只做决策和读结果,具体执行交给专业子 Agent,每个子 Agent 有隔离的上下文窗口。 ### 为什么不固化流程? 传统红队框架(AutoRecon/Peirates/CrackMapExec)是 if-then 脚本,遇到非标准环境就挂。Ovogo 用 LLM 每轮推理动态决策: - 发现新服务 → 立即匹配 POC - 扫描超时 → 调整策略 - 工具缺失 → 安装或换方法 - 遇到防御 → 换攻击路径 ### 状态机编排 主执行路径使用 `src/core/engine.ts` (Think-Act-Observe) + `src/core/orchestrator.ts` (PhaseMachine + TaskDAG + LLM Supervisor),通过 `--orchestrator` 启用完整攻击链自动化。 ### 工具缓存策略 **不缓存**:Bash/ShellSession/TmuxSession/C2/Write/Edit/FindingWrite/Read/Glob/Grep — 这些要么有副作用,要么环境实时变化。 **缓存**:WebFetch/WebSearch/WeaponRadar — 网络请求和语义检索耗时高,结果相对稳定。 ## 技术栈 | 类别 | 技术 | |------|------| | **语言** | TypeScript 5.7 (ES2022, NodeNext 模块) | | **LLM** | OpenAI 兼容 API (Claude / GPT / 任意兼容端点) | | **AI 框架** | OpenAI SDK, LangChain Core | | **MCP** | @modelcontextprotocol/sdk | | **工具集成** | nmap, nuclei, sqlmap, hydra, metasploit, sliver, chisel, subfinder, httpx, katana, ffuf, nikto | | **进程管理** | tmux (子 Agent 面板 + 交互进程) | | **PoC 数据库** | WeaponRadar (22W Nuclei PoC, BGE-M3 向量搜索, pgvector) | | **类型系统** | Zod 3.24 | ## 安全声明 **本项目仅用于授权的安全测试、CTF 竞赛、安全研究和教育目的。** 使用者必须: - 获得目标系统的书面授权 - 遵守当地法律法规 - 仅在授权范围内使用 - 不得用于未授权的渗透测试
**Made with ❤️ for the Red Team Community** [⭐ Star](https://github.com/atreasureboy/ovogo) | [🐛 Issues](https://github.com/atreasureboy/ovogo/issues) | [💡 Feature Request](https://github.com/atreasureboy/ovogo/issues)
标签:AI安全, AI驱动, Chat Copilot, Claude, Cloudflare, CSV导出, CVE检测, Flag自动化收集, GitHub, HTTP工具, LLM, MITM代理, MITRE ATT&CK, OpenAI, Ovogo, PE 加载器, TGT, Think-Act-Observe, TypeScript, Unmanaged PE, 内存规避, 多Agent编排, 多节点并行利用, 子Agent作战体系, 安全基础设施, 安全插件, 安全测试, 工具集20种, 攻击性安全, 攻击链生成, 攻防演练, 智能代码审计, 流量嗅探, 测试用例, 渗透测试引擎, 渗透测试框架, 知识记忆系统, 红队协同, 红队训练, 网络安全审计, 自主红队协调引擎, 自动化协调, 自动化报告, 自动化攻击, 自动化渗透测试, 跨轮次记忆, 防御, 靶场环境