
Prueba de concepto de herramienta de denegación de servicio que fuerza el intercambio de claves efímeras Diffie-Hellman sobre TLS y SSH para saturar la CPU del servidor, implementando CVE-2002-20001 para pruebas de seguridad autorizadas.
D(HE)ater es la implementación de prueba de concepto del ataque D(HE)at (CVE-2002-20001). Satura la CPU de un servidor forzando el intercambio de claves Diffie-Hellman efímero (DHE) o Diffie-Hellman de curva elíptica efímero (ECDHE) tanto sobre TLS como sobre SSH. Para más información sobre el ataque, visita la página del proyecto o lee el artículo técnico completo en IEEE Access.
D(HE)ater es una herramienta de denegación de servicio de prueba de concepto destinada únicamente a pruebas de seguridad defensivas, verificación de mitigaciones e investigación. Ejecútala exclusivamente contra sistemas que poseas o para los cuales tengas autorización explícita por escrito. Usarla contra sistemas sin permiso puede ser ilegal y es probable que interrumpa el servicio objetivo. Los autores proporcionan el código tal cual, sin garantía, y no aceptan ninguna responsabilidad por su uso indebido o daños.
D(HE)ater es una herramienta de línea de comandos. La opción --protocol y el uri objetivo son obligatorios:
# forzar el intercambio de claves DHE contra un servicio TLS
dheat --protocol tls example.com:443
# forzar el intercambio de claves DHE contra un servicio SSH
dheat --protocol ssh example.com:22
Argumentos opcionales:
| Opción | Valor predeterminado | Descripción |
|---|---|---|
--key-exchange | DHE | intercambio de claves a forzar: DHE o ECDHE |
--timeout | 5 | tiempo de espera del socket en segundos |
--thread-num | 1 | número de hilos a ejecutar |
--key-size | ninguno | tamaño de clave a forzar |
# forzar el intercambio de claves de curva elíptica (ECDHE) en lugar de campo finito (DHE)
dheat --protocol tls --key-exchange ECDHE example.com:443
# 16 hilos, tiempo de espera de 10 segundos
dheat --protocol tls --thread-num 16 --timeout 10 example.com:443
Las pautas para detectar y mitigar el ataque D(HE)at se mantienen en el sitio oficial del proyecto: dheatattack.com.
D(HE)ater requiere Python 3.9 o superior y depende de CryptoLyzer para comprobar la compatibilidad con DHE/ECDHE y generar el tráfico necesario. La dependencia se instala automáticamente con los métodos descritos a continuación.
Instala la última versión desde PyPI:
pip install dheater
Para instalar la versión de desarrollo actual directamente desde el repositorio fuente:
pip install git+https://gitlab.com/dheatattack/dheater.git
El código está disponible bajo los términos de la Licencia Apache Versión 2.0. Una descripción no exhaustiva pero sencilla, así como el texto completo de la licencia, se pueden encontrar en el sitio web Choose an open source license.
D(HE)ater utiliza CryptoLyzer para comprobar la compatibilidad con DHE/ECDHE de los servicios TLS/SSH y también para generar el tráfico necesario para realizar el ataque D(HE)at.