frudotz/ISU-SecOps-Nginx-RCE

GitHub: frudotz/ISU-SecOps-Nginx-RCE

一个用于渗透测试教学的隔离安全实验室,通过模拟 Nginx QUIC 漏洞并配套攻击、防御与自动化测试流程来教授漏洞研究与 DevSecOps 实践。

Stars: 5 | Forks: 0

İstinye Üniversitesi # ISU-SecOps Nginx QUIC RCE 实验室 ![GitHub](https://img.shields.io/badge/GitHub-Public-blue?style=flat-square&logo=github) ![语言](https://img.shields.io/badge/Dil-Python-blue?style=flat-square) ![状态](https://img.shields.io/badge/Durum-Devam%20Ediyor-yellow?style=flat-square) ![课程](https://img.shields.io/badge/Ders-BGT006-purple?style=flat-square)
## 指导教师信息 | | | |---|---| | **姓名** | Keyvan Arasteh | | **GitHub** | @keyvanarasteh | | **电子邮件** | keyvan.arasteh@istinye.edu.tr | | **LinkedIn** | keyvanarasteh | | **网站** | qline.tech | ## 学生信息 | | | |---|---| | **姓名** | Hamza Arda Karabacak | | **学号** | 2520****1010 | ## 课程信息 | | | |---|---| | **课程名称** | 渗透测试 | | **课程代码** | BGT006 | | **学分** | 3 AKTS | | **先修条件** | 网络基础, Linux CLI | | **学期** | 2025-2026 春季 | ## 📚 目录 - [🗂 Repo 结构](#-repo-yapısı) - [🚀 功能](#-özellikler) - [🌐 生产环境模拟 (Mock Website)](#-üretim-benzetimi-mock-website) - [🧠 架构方法](#-mimari-yaklaşım) - [⚙️ 使用说明](#️-kullanım) - [Docker 环境](#docker-ortamı) - [攻击工具](#saldırı-araçları) - [🛡️ 防御与补丁](#️-savunma-ve-yama) - [🧪 CI/CD 测试](#-cicd-testing) - [📁 产出与文档](#-çıktılar-ve-dokümantasyon) - [⚠️ 法律声明 / 限制](#️-yasal-uyarı--limitations) - [🧾 版本](#-versiyon) - [📌 备注](#-not) ## 🗂 Repo 结构 ``` . ├── .env.example ├── .gitignore ├── docker-compose.yml ├── Dockerfile ├── LICENSE ├── README.md ├── ROADMAP.md ├── assets/ ├── docs/ │ ├── modules/ │ ├── references/ │ └── research/ └── src/ ├── hedef/ ├── saldiri/ └── savunma/ ``` ## 🚀 功能 * **CVE-2026-0211 模拟:** Nginx QUIC parser 模块中基于 `dcid_len` 的 Heap Buffer Overflow 漏洞。 * **侦察 (Recon):** 对目标系统进行 HTTP/3 (QUIC) 扫描和检测 (`01_recon.py`)。 * **拒绝服务 (DoS):** 利用非对称异步请求进行内存/CPU 消耗攻击 (`03_dos.py`)。 * **源码打补丁:** 针对存在漏洞的 C 语言文件实施 Bounds Checking 补丁 (`CVE-2026-0211-defense.patch`)。 * **高级缓解措施:** 基于 eBPF (XDP) 的丢包策略与 ModSecurity WAF 规则分析。 * **隔离实验室:** 使用 Docker Compose 搭建 10.13.37.0/24 内部 bridge network。 ## 🎬 实时演示与截图 以下为展示项目运行状态的概念截图: ### 🖥️ 网络安全界面 (Web GUI) Mock Website 模拟了攻击者目标的 "ISU SecOps" 企业网关: Web GUI 演示 ### 👨‍💻 黑客终端 (CLI / Exploit 执行) 运行攻击脚本并触发 Nginx 服务器上 QUIC Buffer Overflow 漏洞的瞬间: CLI GUI 演示 ### 🎥 实时演示视频 (系统运行机制) 展示项目端到端运行、漏洞利用以及目标崩溃过程的实时演示视频: Web GUI Demo Video *(如果视频无法在您的浏览器或 Markdown 阅读器中播放,您可以通过 `assets/demo/live-demo.mp4` 路径在本地观看。)* ## 🌐 生产环境模拟 (Mock Website) 目标 Nginx 服务器托管了一个交互式的深色主题 **"Enterprise Security Gateway"** Web 界面,以展示该漏洞在现实世界中的影响。因此,测试人员渗透的不再是一个简单的 "It Works" 页面,而是一个具有企业级外观的生产环境 (production) 服务器。 ## 🧠 架构方法 该项目由 4 个主要层级组成: * **目标 (Target) 层:** 包含漏洞的 Nginx 1.25.3 Docker container 和 mock website。 * **攻击 (Attack) 层:** 基于 Python 的 QUIC fuzzer、DoS 和 Payload (JSON) 模块。 * **防御 (Defense) 层:** 原始 C 补丁和基于 Kernel 的 eBPF 解决方案建议。 * **文档层:** 威胁分析、fuzzer 方法论、崩溃分类 (crash triage) 和基准测试报告。 通过这种结构,该系统提供了一种模块化、具有教育意义且贴近真实的漏洞研究 (VulnDev) 体验。 ## ⚙️ 使用说明 ### Docker 环境 使用 Docker Compose 在您自己的计算机 (localhost) 上部署该项目: ``` docker compose up -d --build ``` *此命令将启动 `target_nginx` 容器,为其分配 10.13.37.10 的 IP 地址,并开启 HTTP/3 支持。* ### 攻击工具 在安装所需的 Python 依赖项之后,您可以启动攻击脚本: **侦察阶段 (Recon):** ``` docker exec fuzzer_node python3 /fuzzer/01_recon.py 10.13.37.10 443 ``` **DoS 攻击:** ``` docker exec fuzzer_node python3 /fuzzer/03_dos.py 10.13.37.10 443 10 ``` *注意:您可以检查 Nginx 日志以查看崩溃检测信息:* ``` docker exec target_nginx cat /var/log/nginx/asan.7 ``` ## 🛡️ 防御与补丁 该实验室不仅教授攻击,也传授防御知识。Nginx 源码中添加了如下的边界检查: ``` if (idlen > NGX_QUIC_CID_LEN_MAX || idlen == 0xFF) { ngx_log_error(NGX_LOG_INFO, c->log, 0, "quic invalid dcid_len detected"); return NGX_DECLINED; } ``` *详细的 C-patch 内容可以在 `savunma/CVE-2026-0211-defense.patch` 文件中找到。* ## 🧪 CI/CD 测试 该项目在 GitHub Actions 上拥有全自动的 DevSecOps pipeline: * 每次推送代码时,Docker 环境都会在 Actions runner 上启动。 * 自动运行 fuzzer 测试。 * 扫描 AddressSanitizer (ASAN) 日志,以审计补丁是否生效 (`.github/workflows/security_test.yml`)。 ## 📁 产出与文档 所有学术级别的研究产出均位于 `dokumantasyon/` 文件夹下: 1. 威胁分析 2. Fuzzing 方法论 3. 崩溃分类 (Crash Triage / Root Cause Analysis) 4. 高级缓解策略 (WAF/eBPF) 5. 性能与基准测试表 ## ⚠️ 法律声明 / 限制 * **仅限授权环境:** 此处的工具只能在您自己控制的隔离 Docker 系统中使用。 * **免责声明:** 对于针对未经授权系统进行的任何操作,项目所有者概不负责。 * 相比于真实的 Zero-Day,该系统是基于 Nginx QUIC 逻辑为教育目的而特意引入漏洞的自定义版本 (假设的 CVE-2026-0211) 构建的。 ## 🧾 版本 v1.0.0 ## 📌 备注 本项目旨在以学术化的方法展示渗透测试、安全漏洞发现 (VulnDev) 以及 DevSecOps 流程的基本原则。
标签:CISA项目, Docker, Docker镜像, Nginx, Python, 安全实验环境, 安全防御评估, 无后门, 漏洞复现, 版权保护, 编程工具, 请求拦截, 远程代码执行, 逆向工具