Leviticus-Triage/APEX-Ngin2dos

GitHub: Leviticus-Triage/APEX-Ngin2dos

该项目是一个针对多种 Web 服务器进行 HTTP/2 HPACK 放大攻击测试的多变体基准测试框架,主要用于授权安全研究与防御性验证。

Stars: 5 | Forks: 0

# APEX Ngin2dos [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![HTTP/2](https://img.shields.io/badge/HTTP%2F2-HPACK%20bomb-red.svg)](https://github.com/califio/publications/tree/main/MADBugs/http2-bomb) [![研究](https://img.shields.io/badge/type-offensive%20security%20research-purple.svg)](#) [![仅限授权使用](https://img.shields.io/badge/use-authorized%20targets%20only-critical.svg)](#legal--authorized-use) **多变量 HTTP/2 HPACK 放大基准测试框架** — 使用 **APEX v2** 攻击引擎、实验室重放环境、隧道路由、MCP + CLI 接口以及可复现的 OOM/性能下降指标扩展了 [califio/publications MADBugs/http2-bomb](https://github.com/califio/publications/tree/main/MADBugs/http2-bomb)。 目标:**nginx**、**Pingora**、**Apache httpd**、**Envoy**、**Microsoft IIS**。 ## 目录 - [关键结果](#key-results) - [架构](#architecture) - [快速开始](#quick-start) - [APEX 模式](#apex-modes) - [接口](#interfaces-mcp--cli) - [隧道路由](#tunnel-routing) - [实验室重放](#lab-replay) - [安全加固](#hardening) - [文档](#documentation) - [上游与披露](#upstream--disclosure) - [法律与授权使用](#legal--authorized-use) ## 关键结果 在 Proxmox 上完成实验室验证(除非另有说明,均为 8 GiB Docker 限制): | 变体 | 模式 | 结果 | 备注 | |---------|------|--------|-------| | **nginx** | `apex_scaled` | **100/100** bomb 成功 @ ~200 MB 网络流量 | 通过批量 bomb + 128-stream 预算修复了 44 连接上限 | | **nginx** | `apex_scaled` | **20/20** @ 40 MB 网络流量 | run_id `dacca1b8`,端口 8443 | | **nginx** | Proxmox 活动 | **8 GiB 容器已填满** | 50 连接,worker RSS ~8170 MiB | | **httpd** | `apex_cookie_scaled` | **12/12** bomb 成功 | 端口 10080,run_id `01ea8a01` | | **Win11 IIS** | `apex_iis_mp` | **服务降级** | 预设 8gb 下的 5 个进程;攻击后 HTTPS 超时,可自我恢复 | 有关完整指标、A/B 比较(califio 基准 vs APEX v2)和 E2E 报告,请参阅 [`docs/LAB_RESULTS.md`](docs/LAB_RESULTS.md)。 ## 架构 ``` ┌──────────────────────────────────────────────────────────────┐ │ MCP (FastMCP) │ CLI (bin/http2-bomb) │ benchmark_runner │ └────────────────────────────┬───────────────────────────────────┘ │ ┌──────────────┼──────────────┐ ▼ ▼ ▼ h2_enhanced cookie_bomb_enhanced iis_apex_orchestrator.ps1 (nginx/pingora) (httpd/envoy) (Windows IIS) │ │ │ └──────────────┼──────────────┘ ▼ attack_config.py + variants.py + tunnel.py ▼ vendor/califio-publications/MADBugs/http2-bomb/ ``` 完整详情:[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) ## 快速开始 ``` git clone https://github.com/Leviticus-Triage/APEX-Ngin2dos.git cd APEX-Ngin2dos python3 -m venv .venv && source .venv/bin/activate pip install -r requirements-dev.txt # 单元测试(无需 nginx/apache — 在你的机器上运行) pytest -q # Real HTTP/2 实验室验证 → Proxmox ai-workstation(不是你笔记本电脑上的 localhost) chmod +x lab-replay/deploy_proxmox.sh ./lab-replay/deploy_proxmox.sh smoke # deploy + 5-conn smoke on remote ./lab-replay/deploy_proxmox.sh campaign # full OOM campaign on remote ``` **运行位置** | 步骤 | 位置 | 目标 | |------|--------|--------| | `pytest` | 你的笔记本电脑 | 无需服务器 | | `deploy_proxmox.sh` | rsync → **192.168.2.116** | *VM 上的* `127.0.0.1:8443` Docker nginx | | RSS / 探针监控 | 同一 VM,并行循环 | 不会从你的笔记本电脑上运行 | 除非你在本地启动了 `lab-replay/replay.sh start`,否则**不要**在你的笔记本电脑上运行 `./bin/http2-bomb probe --host 127.0.0.1 --port 8443`。`benchmark_runner.py` 中默认的 `127.0.0.1:8443` 指的是**运行测试框架的机器上的实验室环回地址**(通常是部署后的 ai-workstation)。 可选的本地 Docker 实验室(相同的 VM 布局,在你的机器上运行): ``` ./lab-replay/replay.sh start 8g ./lab-replay/replay.sh probe ./lab-replay/replay.sh attack 5 ``` ### 验证层级 | 层级 | 命令 | 需求 | |------|---------|-------| | 单元 | `pytest -q` | 仅需 Python venv | | 本地完整 | `./scripts/verify.sh` | + Docker 用于实验室冒烟测试 | | Proxmox E2E | `./lab-replay/deploy_proxmox.sh smoke` | SSH 连接到 ai-workstation | | CI | GitHub Actions `test` + `lab-smoke` 作业 | 推送时自动触发 | 任何攻击配置文件都**需要授权** — 请参阅[法律声明](#legal--authorized-use)。 ## APEX 模式 | 模式 | 变体 | 描述 | |------|----------|-------------| | `apex` | nginx, pingora | 多波次 (64×2) + 批量 bomb + hard_hold | | `apex_scaled` | nginx, pingora | N 个连接,每个约 2 MB 网络流量(@100 连接约 200 MB) | | `apex_mp` | nginx, pingora | 每个连接对应一个 OS 进程 | | `apex_cookie` | httpd, envoy | Cookie-crumb HPACK apex | | `apex_cookie_scaled` | httpd, envoy | 扩展的 cookie 连接(批量) | | `apex_cookie_mp` | httpd, envoy | 多进程 cookie worker | | `apex_iis_mp` | IIS (Windows) | PowerShell 多进程协调器 | | `churn` | nginx | fire-and-forget + 多波次分配扰动 | | `optimized_oom` | nginx | 用于单客户端 OOM 周期的效率配置文件 | 注册表:`benchmark/variants.py` — `--variant nginx|pingora|httpd|envoy|iis` 其他活动模式(`ramp`、`burst`、`cumulative`、`multiprocess`、`sustained`、`pipelined_sustain`、`full_campaign`)记录在 [`benchmark/README.md`](benchmark/README.md) 中。 ## 接口 (MCP + CLI) ### Cursor MCP 添加到 `~/.cursor/mcp.json`: ``` "http2-bomb": { "command": "/path/to/APEX-Ngin2dos/.venv/bin/python3", "args": ["/path/to/APEX-Ngin2dos/http2_bomb_mcp.py"], "description": "APEX HTTP/2 HPACK bomb — authorized targets only", "timeout": 900 } ``` 工具:`probe_http2`、`run_http2_bomb_test`、`run_http2_bomb_benchmark`、`configure_http2_bomb_tunnel`、`list_http2_bomb_variants`、`get_http2_bomb_disclosure`。 ### 独立 CLI 可在任何终端(Codex、Gemini CLI、Claude Code、SSH)中运行: ``` ./bin/http2-bomb variants ./bin/http2-bomb run --host TARGET --profile safe --scope "Ticket-123" --yes ./bin/http2-bomb benchmark --host TARGET --mode apex_scaled --connections 100 --yes ./bin/http2-bomb tunnel set --mode tor ./bin/http2-bomb logs --last 10 ``` 设置:复制 `config/cli_settings.example.json` → `config/cli_settings.json`。 ## 隧道路由 通过 SOCKS5、HTTP proxy、Tor、proxychains、ngrok 或 cloudflared 路由流量: ``` cp config/tunnel.example.json config/tunnel.json ./bin/http2-bomb tunnel set --mode socks5 --proxy-url socks5://127.0.0.1:1080 ./bin/http2-bomb tunnel test --host staging.example.com python3 benchmark/benchmark_runner.py --host TARGET --mode apex_scaled \ --tunnel-mode tor --connections 50 ``` Python socket 路由需要 `PySocks`。请参阅 [`benchmark/README.md`](benchmark/README.md)。 ## 实验室重放 | 目录 | 技术栈 | 端口 | 命令 | |-----------|-------|------|---------| | `lab-replay/` | nginx 1.24 | 8443 | `./lab-replay/replay.sh start 8g` | | `lab-replay-httpd/` | Apache httpd | 10080 | `./lab-replay-httpd/replay.sh start 8g` | | `lab-replay-envoy/` | Envoy | 10000 | `./lab-replay-envoy/replay.sh start 8g` | | `lab-replay/pingora/` | Pingora (vendor compose) | 8444 | `./lab-replay/pingora/replay.sh start` | Proxmox 部署:`lab-replay/deploy_proxmox.sh`、`lab-replay-httpd/deploy_proxmox.sh`。 Windows IIS 实验室:`benchmark/setup_win11_iis_lab.ps1` + `benchmark/iis_apex_orchestrator.ps1`。 ## 安全加固 针对易受攻击技术栈(1.29.8 之前版本)的示例 nginx 缓解配置: - [`hardening/README.md`](hardening/README.md) - `hardening/nginx-1.29.8-post-upgrade.conf` — `http2_max_headers 100` - `hardening/nginx-http2-bomb-mrx3k1.conf` — 针对 nginx 1.24 的纵深防御 ## 文档 | 文档 | 内容 | |----------|---------| | [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 组件、数据流、变体调度 | | [`docs/LAB_RESULTS.md`](docs/LAB_RESULTS.md) | 经过验证的指标、A/B 测试、Proxmox、Win11 IIS | | [`docs/DISCLOSURE.md`](docs/DISCLOSURE.md) | 每个技术栈的 CVE/修复状态 | | [`docs/OPTIMIZATION.md`](docs/OPTIMIZATION.md) | 发布路线图 (P0–P3) | | [`RELEASE_NOTES_v1.0.1.md`](RELEASE_NOTES_v1.0.1.md) | v1.0.1 更新日志 | | [`benchmark/README.md`](benchmark/README.md) | 框架模式、CSV/JSONL 日志记录 | | [`SECURITY.md`](SECURITY.md) | 负责任的使用政策 | | [`CONTRIBUTING.md`](CONTRIBUTING.md) | 如何贡献实验室数据 | ## 上游与披露 PoC 源自 **[califio/publications](https://github.com/califio/publications/tree/main/MADBugs/http2-bomb)**(包含在 `vendor/` 下)。更新上游: ``` cd vendor/califio-publications && git pull ``` | 技术栈 | 修复状态 | |-------|------------| | nginx | 已在 **1.29.8** 修复 — `max_headers` / `http2_max_headers` | | Apache httpd | 已在 mod_http2 **v2.0.41** 修复 — cookie 统计 | | IIS, Envoy, Pingora | 2026 年 5 月报告 — 状态未知 | 详情:[`docs/DISCLOSURE.md`](docs/DISCLOSURE.md) ## 法律与授权使用 **本软件仅用于授权的安全研究和防御性验证。** - **仅**测试你拥有或获得**书面授权**评估的系统。 - 每次攻击调用都需要明确的范围说明(`--scope`、`scope_description` 或工单引用)。 - 未经授权对第三方基础设施的使用可能违反计算机犯罪法。 - 作者对滥用行为**不承担任何责任**。 使用此仓库即表示你同意这些条款。请参阅 [`SECURITY.md`](SECURITY.md)。 ## 引用 如果你引用了这项工作: ``` @software{apex_ngin2dos_2026, title = {APEX Ngin2dos: Multi-Variant HTTP/2 HPACK Benchmark Harness}, author = {Leviticus-Triage}, year = {2026}, url = {https://github.com/Leviticus-Triage/APEX-Ngin2dos} } ``` 基于 [califio/publications HTTP/2 Bomb](https://github.com/califio/publications/tree/main/MADBugs/http2-bomb) 构建。
标签:AI合规, HTTP/2, Maven, Python, 性能测试, 拒绝服务攻击, 无后门, 漏洞验证, 请求拦截, 逆向工具, 配置错误