CVE-2023-44487 Strumento di Test HTTP/2 Rapid Reset - Edizione Potenziata
Uno strumento di test Python completo per CVE-2023-44487, la vulnerabilità HTTP/2 Rapid Reset. Questa versione potenziata fornisce un controllo granulare sui parametri di test, molteplici modelli di attacco e funzionalità di monitoraggio avanzate.
⚠️ DISCLAIMER IMPORTANTE
Questo strumento è destinato SOLO a scopi educativi e test autorizzati!
- Utilizzalo esclusivamente contro sistemi di tua proprietà o per i quali disponi di esplicita autorizzazione scritta
- L'uso non autorizzato può essere illegale e potrebbe causare interruzioni del servizio
- Lo strumento esegue un attacco Denial of Service che può compromettere la disponibilità del server
- Assicurati sempre di avere la dovuta autorizzazione prima di effettuare test
CVE-2023-44487, nota anche come "HTTP/2 Rapid Reset," è una vulnerabilità critica nel protocollo HTTP/2 che consente agli aggressori di:
- Causare denial of service inviando e annullando rapidamente stream HTTP/2
- Consumare risorse server eccessive con risorse client minime
- Bypassare molti meccanismi tradizionali di rate limiting
- Colpire i principali web server e load balancer
Punteggio CVSS: 7.5 (Alto)
Impatto: Denial of Service, Esaurimento delle Risorse
🚀 Funzionalità Potenziate
Molteplici Modelli di Attacco
- ⚡ Rapid Reset: HEADERS standard + RST_STREAM immediato
- 💥 Burst Reset: Richieste a raffiche con ritardi configurabili
- 📈 Gradual Reset: Tasso di attacco in aumento graduale
- 🎲 Random Reset: Temporizzazione casuale per bypassare i filtri predittivi
- 🌊 Continuation Flood: Attacco di flooding con frame CONTINUATION
- 🔀 Modello Misto: Combinazione di più modelli
Configurazione Granulare
- 📡 Controlli di Connessione: Timeout, ritardi, limiti di concorrenza
- ⏱️ Controlli di Temporizzazione: Temporizzazione precisa con supporto jitter
- 🌐 Protocollo HTTP/2: Dimensioni finestra, dimensioni frame, impostazioni HPACK
- 📋 Personalizzazione Header: Header personalizzati, generazione casuale
- 🔬 Opzioni Avanzate: Randomizzazione ID stream, frame di priorità
- 📊 Monitoraggio: Tracciamento latenza, analisi traffico, monitoraggio errori
- 🖥️ Console: Leggibile dall'uomo con aggiornamenti di avanzamento
- 📋 JSON: Dati strutturati leggibili dalla macchina
- 📊 CSV: Compatibile con fogli di calcolo per analisi
- 🗃️ XML: Integrazione con strumenti aziendali
Funzionalità di Sicurezza
- 🛡️ Controlli di Autorizzazione: Prompt di conferma obbligatori
- 🔒 Rate Limiting: Limiti integrati di connessione e richiesta
- 🎛️ Gestione Errori: Gestione corretta dei guasti
- 📝 Audit Trail: Funzionalità di logging complete
📋 Requisiti
- Python 3.7 o superiore
- Nessuna dipendenza esterna (utilizza solo la libreria standard di Python)
📖 Installazione
- Clona o scarica lo script:
git clone https://github.com/madhusudhan-in/CVE_2023_44487-Rapid_Reset.git
cd CVE_2023_44487-Rapid_Reset
- Rendi eseguibile lo script:
chmod +x rapid_reset_test.py
- Verifica la versione di Python:
python3 --version # Dovrebbe essere 3.7+
🔧 Utilizzo
Utilizzo Base
python3 rapid_reset_test.py https://target-server.com
Esempi di Utilizzo Avanzato
1. Test di Carico ad Alto Throughput
python3 rapid_reset_test.py https://target.com \
--connections 50 \
--requests 1000 \
--delay 0 \
--pattern rapid_reset \
--track-latency \
--output json
python3 rapid_reset_test.py https://target.com \
--pattern burst_reset \
--burst-size 5 \
--burst-delay 2.0 \
--custom-headers "User-Agent: Mozilla/5.0 (legitbot)" "Authorization: Bearer token123" \
--jitter 0.3
3. Test Specifico del Protocollo
python3 rapid_reset_test.py https://target.com \
--window-size 32768 \
--frame-size 32768 \
--header-table-size 8192 \
--enable-push \
--priority-frames \
--randomize-streams
4. Test di Monitoraggio Completo
python3 rapid_reset_test.py https://target.com \
--connections 10 \
--requests 200 \
--pattern mixed_pattern \
--track-latency \
--track-responses \
--monitor-memory \
--verbose \
--debug \
--log-file attack.log
5. Attacco CONTINUATION Flood
python3 rapid_reset_test.py https://target.com \
--pattern continuation_flood \
--requests 50 \
--random-headers \
--header-count 20
Opzioni Complete della Riga di Comando
Impostazioni di Connessione
| Opzione | Descrizione | Predefinito |
|---|
-c, --connections N | Numero di connessioni concorrenti | 1 |
--connection-timeout SEC | Timeout di connessione in secondi | 10 |
--read-timeout SEC | Timeout di lettura per le risposte | 5 |
--connection-delay SEC | Ritardo tra le connessioni | 0.0 |
Impostazioni delle Richieste
| Opzione | Descrizione | Predefinito |
|---|
-r, --requests N | Richieste per connessione | 100 |
--delay SEC | Ritardo tra HEADERS e RST_STREAM | 0.001 |
--request-delay SEC | Ritardo tra le richieste | 0.0 |
--jitter FACTOR | Fattore di randomizzazione della temporizzazione | 0.0 |
Modelli di Attacco
| Opzione | Descrizione | Predefinito |
|---|
--pattern TYPE | Modello di attacco da utilizzare | rapid_reset |
--burst-size N | Richieste per raffica | 10 |
--burst-delay SEC | Ritardo tra le raffiche | 0.1 |
Modelli Disponibili:
rapid_reset - Attacco rapid reset standard
burst_reset - Attacchi basati su raffiche
gradual_reset - Tasso in aumento graduale
random_reset - Temporizzazione casuale
continuation_flood - Flooding con frame CONTINUATION
mixed_pattern - Mix di modelli
Impostazioni del Protocollo HTTP/2
| Opzione | Descrizione | Predefinito |
|---|
--window-size BYTES | Dimensione finestra iniziale HTTP/2 | 65535 |
--frame-size BYTES | Dimensione massima frame | 16384 |
--header-table-size BYTES | Dimensione tabella header HPACK | 4096 |
--enable-push | Abilita server push HTTP/2 | False |
--rst-error-code CODE | Codice errore RST_STREAM | 8 |
| Opzione | Descrizione | Predefinito |
|---|
--custom-headers HEADER | Header personalizzati (Nome: Valore) | None |
--random-headers | Genera header casuali | False |
--header-count N | Numero di header casuali | 5 |
Opzioni Avanzate
| Opzione | Descrizione | Predefinito |
|---|
--randomize-streams | Utilizza ID stream casuali | False |
--priority-frames | Includi informazioni di priorità | False |
--continue-on-error | Continua dopo gli errori | True |
--max-errors N | Errori massimi prima dell'arresto | 10 |
Opzioni di Monitoraggio
| Opzione | Descrizione | Predefinito |
|---|
--track-latency | Traccia la latenza delle richieste | False |
--track-responses | Traccia le risposte del server | False |
--monitor-memory | Monitora l'utilizzo della memoria | False |
Opzioni di Output
| Opzione | Descrizione | Predefinito |
|---|
--output FORMAT | Formato di output | console |
--output-file FILE | Nome del file di output | generato automaticamente |
--verbose, -v | Output dettagliato | False |
--debug | Log di debug | False |
--log-file FILE | Scrivi log su file | None |