
Outil de déni de service de preuve de concept qui impose l'échange de clés éphémères Diffie-Hellman sur TLS et SSH pour saturer le processeur du serveur, implémentant CVE-2002-20001 pour les tests de sécurité autorisés.
D(HE)ater est l'implémentation de preuve de concept de l'attaque D(HE)at (CVE-2002-20001). Elle sature le processeur d'un serveur en imposant l'échange de clés Diffie-Hellman éphémère (DHE) ou Diffie-Hellman sur courbe elliptique éphémère (ECDHE) via TLS et SSH. Pour plus d'informations sur l'attaque, consultez la page du projet ou lisez l'article technique complet sur IEEE Access.
D(HE)ater est un outil de déni de service de preuve de concept destiné uniquement aux tests de sécurité défensifs, à la vérification des mesures d'atténuation et à la recherche. Exécutez-le exclusivement contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite. L'utiliser contre des systèmes sans autorisation peut être illégal et risque de perturber le service ciblé. Les auteurs fournissent le code tel quel, sans garantie, et déclinent toute responsabilité en cas d'utilisation abusive ou de dommages.
D(HE)ater est un outil en ligne de commande. L'option --protocol et l'uri cible sont obligatoires :
# imposer l'échange de clés DHE contre un service TLS
dheat --protocol tls example.com:443
# imposer l'échange de clés DHE contre un service SSH
dheat --protocol ssh example.com:22
Arguments optionnels :
| Option | Défaut | Description |
|---|---|---|
--key-exchange | DHE | échange de clés à imposer : DHE ou ECDHE |
--timeout | 5 | délai d'expiration de la socket en secondes |
--thread-num | 1 | nombre de threads à exécuter |
--key-size | aucun | taille de clé à imposer |
# imposer l'échange de clés sur courbe elliptique (ECDHE) au lieu de corps fini (DHE)
dheat --protocol tls --key-exchange ECDHE example.com:443
# 16 threads, délai d'expiration de 10 secondes
dheat --protocol tls --thread-num 16 --timeout 10 example.com:443
Des conseils sur la détection et l'atténuation de l'attaque D(HE)at sont maintenus sur le site officiel du projet : dheatattack.com.
D(HE)ater nécessite Python 3.9 ou plus récent et dépend de CryptoLyzer pour vérifier la prise en charge de DHE/ECDHE et générer le trafic nécessaire. La dépendance est installée automatiquement avec les méthodes décrites ci-dessous.
Installez la dernière version depuis PyPI :
pip install dheater
Pour installer la version de développement actuelle directement depuis le dépôt source :
pip install git+https://gitlab.com/dheatattack/dheater.git
Le code est disponible sous les termes de la licence Apache Version 2.0. Une description non exhaustive mais simple, ainsi que le texte intégral de la licence, sont disponibles sur le site Choose an open source license.
D(HE)ater utilise CryptoLyzer pour vérifier la prise en charge de DHE/ECDHE des services TLS/SSH et également pour générer le trafic nécessaire à l'exécution de l'attaque D(HE)at.