HaakimSec/zero2shell-50

GitHub: HaakimSec/zero2shell-50

一个包含 50 个容器化远程代码执行实验的安全培训平台,每个实验围绕真实 CVE 提供漏洞环境、利用脚本、根因分析和缓解指南。

Stars: 0 | Forks: 0

``` ==================================================================================== ███████╗███████╗██████╗ ██████╗ ██████╗ ███████╗██╗ ██╗███████╗██╗ ██╗ ╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚════██╗ ██╔════╝██║ ██║██╔════╝██║ ██║ ███╔╝ █████╗ ██████╔╝██║ ██║ █████╔╝ ███████╗███████║█████╗ ██║ ██║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║██╔═══╝ ╚════██║██╔══██║██╔══╝ ██║ ██║ ███████╗███████╗██║ ██║╚██████╔╝███████╗ ███████║██║ ██║███████╗███████╗███████╗ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ [ 50 Containerized RCE Labs ] ==================================================================================== ```

Labs Progress Focus Area License

### 从零到 Shell — 通过 50 个动手实验精通现代 RCE 利用 `Zero2Shell-50` 是一个全面的、容器化的培训平台,包含 50 个精心制作的远程代码执行 (RCE) 环境,涵盖了从 2014 年到 2026 年的关键漏洞。每个实验都将现实世界的 CVE 转化为确定性的、隔离的且完全可重现的漏洞利用场景。 ## 🎯 为什么选择 ZeroToShell-50? 现代应用安全要求对现代攻击面具备专业的实操能力。`ZeroToShell-50` 涵盖了全方位的现代漏洞利用技术: - **Java 企业级框架** — Struts2 OGNL 注入、Spring 路径遍历、ActiveMQ 反序列化 - **现代 JavaScript 运行时** — 原型链污染、React Server Components 漏洞利用 - **AI/ML 攻击面** — LLM agent 框架注入、notebook 终端滥用、模型序列化攻击 - **PHP 反序列化** — POP 链构造、PHAR stream wrapper 滥用 - **下一代 Web 框架** — Langflow 代码注入、Crawl4AI hook 滥用、Marimo WebSocket 漏洞利用 - **经典与现代 CVE** — Log4Shell、Shellshock、Struts2、Apache 路径遍历、GitHub Enterprise、Confluence 组合利用 ## 🧪 与众不同之处 与传统的 CVE 数据库或只读的概念验证不同,`ZeroToShell-50` 专为**主动学习**而构建: | 特性 | 描述 | |---------|-------------| | 🐳 **完全容器化** | 每个实验都在隔离的 Docker 环境中运行 — 告别依赖地狱 | | 📝 **根本原因分析** | 每个实验都包含详细的漏洞分析,而不仅仅是漏洞利用脚本 | | 🎯 **确定性利用** | 针对锁定的特定漏洞版本进行验证,确保漏洞利用一致且可重复 | | 🔬 **多样化的攻击面** | 涵盖 Java、Python、PHP、JavaScript 和基于 shell 的漏洞 | | 🛡️ **防御视角** | 包含缓解策略和检测规则,适用于蓝队训练 | | 📐 **标准化结构** | 统一的实验架构,可快速部署并易于浏览 | | 🏦 **历史影响** | 实验与现实世界的数据泄露事件(如 Equifax、Log4Shell、Shellshock)紧密相关 | ## 👥 适用人群? - **渗透测试人员** — 在安全、合法的环境中练习现代漏洞利用技术 - **安全研究员** — 研究近期严重漏洞的根本原因分析 - **应用安全工程师** — 理解漏洞模式以保护您的代码库 - **蓝队 / SOC 分析师** — 学习攻击者的 TTP 以构建更好的检测规则 - **CTF 选手** — 针对现实世界的漏洞类别提升您的技能 - **学生与教育工作者** — 为现代应用安全课程提供实操教学大纲 ## ✅ 已验证的实验 | # | CVE | 描述 | CVSS | 类型 | 状态 | |---|-----|-------------|------|------|--------| | 1 | [CVE-2026-26978](labs/lab_01/CVE-2026-26978-FreePBX/) | FreePBX Backup & Restore 反序列化 RCE | 8.8 | PHP 反序列化 | ✅ 已验证 | | 2 | [CVE-2026-26216](labs/lab_02/CVE-2026-26216-Crawl4AI/) | Crawl4AI Hook 注入 RCE | 严重 | Python 代码注入 | ✅ 已验证 | | 3 | [CVE-2021-44228](labs/lab_03/CVE-2021-44228-Log4shell/) | Apache Log4Shell JNDI 注入 RCE | 10.0 | Java JNDI 注入 | ✅ 已验证 | | 4 | [CVE-2014-6172](labs/lab_04/CVE-2014-6172-Shell-shock/) | GNU Bash Shellshock RCE | 10.0 | OS 命令注入 | ✅ 已验证 | | 5 | [Python Pickle](labs/lab_05/) | Python Pickle 反序列化 RCE | — | Python 反序列化 | ✅ 已验证 | | 6 | [CVE-2023-50164](labs/lab_06/CVE-2023-50164-Struts2/) | Apache Struts2 路径遍历 RCE | 9.8 | 路径遍历 → RCE | ✅ 已验证 | | 7 | [CVE-2024-3400](labs/lab_07/CVE-2024-3400-palo-alto/) | Palo Alto PAN-OS 命令注入 | 10.0 | OS 命令注入 | ✅ 已验证 | | 8 | [CVE-2026-3854](labs/lab_08/CVE-2026-3854-Github/) | GitHub Enterprise 参数注入 RCE | 9.8 | Header 注入 | ✅ 已验证 | | 9 | [CVE-2022-22947](labs/lab_09/CVE-2022-22947-spel-gate-way/) | Spring Cloud Gateway SPEL 注入 RCE | 10.0 | 表达式注入 | ⚠️ 未实现利用 | | 10 | [CVE-2021-41773](labs/lab_10/CVE-2021-41773-apache-path-traversal/) | Apache HTTPD 2.4.49 路径遍历 RCE | 9.8 | 路径遍历 → CGI | ✅ 已验证 | | 11 | [CVE-2026-39987](labs/lab_11/CVE-2026-39987-Marimo/) | Marimo 认证前 PTY 终端 RCE | 严重 | WebSocket 滥用 | ✅ 已验证 | | 12 | [CVE-2023-22515/18](labs/lab_12/CVE-2023-22515-Confluence/) | Confluence 访问控制失效 → RCE | 9.8 | 访问控制组合利用 | ✅ 已验证 | | 13 | [CVE-2025-3248](labs/lab_13/CVE-2025-3248-Langflow/) | Langflow Flow 执行 RCE | 严重 | Python 代码注入 | ✅ 已验证 | | 14 | [CVE-2017-5638](labs/lab_14/CVE-2017-5638-Struts2/) | Apache Struts2 OGNL 注入 RCE (Equifax) | 10.0 | OGNL 表达式注入 | ✅ 已验证 | | 15 | [SSRF to RCE](labs/lab_15/) | 服务端请求伪造 → RCE | — | SSRF 组合利用 | ✅ 已验证 | | 16-50 | *敬请期待* | 更多现代 RCE 漏洞... | — | — | 🚧 开发中 | ### 统计数据 | 类别 | 数量 | 百分比 | |----------|-------|------------| | **已验证并实现利用** | **13** | 87% | | **未实现利用** | **1** | 7% | | **开发中** | **1** | 6% | ## 🚀 快速开始 ``` # 克隆 repository git clone --depth 1 https://github.com/HaakimSec/zero2shell-50.git cd zero2shell-50 # 导航到任意 lab cd labs/lab_14/CVE-2017-5638-Struts2 # 部署 vulnerable environment docker compose up --build -d # 遵循 lab README 获取利用步骤 ``` ## 🏗️ 仓库架构 本仓库中的每个漏洞都遵循严格的结构蓝图,以确保部署的整洁性和高度的学术可读性: ``` ZeroToShell-50/ ├── .github/ # CI/CD verification workflows ├── labs/ │ └── lab_XX/ # Target Lab Identifier │ ├── app/ # Raw application source / code configurations │ ├── exploit/ # Exploit automation & helper tools │ ├── src/ # Java/PHP/Python source files (when applicable) │ ├── Dockerfile # Pinning precise vulnerable layers │ ├── docker-compose.yml │ └── README.md # Lab-specific Root Cause Analysis (RCA) └── README.md # Master index and project roadmap ``` ## 🛡️ 教育理念 `ZeroToShell-50` 秉持着一个简单的原则:你不了解的东西,就无法防御。每个实验旨在: 1. **复现**带有锁定依赖项的漏洞环境 2. **解释**通过带有注释的源代码分析阐明根本原因 3. **利用**通过可用的 payload 逐步利用漏洞 4. **缓解**提供实用且能立即可用的修复方案 5. **检测**提供日志分析模式和 WAF 规则建议 ## ⚠️ 免责声明 本仓库仅供教育目的使用。所有实验必须在隔离的、受控的环境中运行。切勿对您不拥有或未获得明确书面测试许可的系统利用这些漏洞。作者对任何滥用行为不承担责任。 **开启您从 Zero 到 Shell 的旅程。 🐚**
标签:Cutter, JS文件枚举, 数据可视化, 请求拦截, 逆向工具