THC-SSL-DOS

Teste la résilience d'un serveur SSL/TLS face aux attaques par épuisement de ressources en exploitant le coût de calcul asymétrique du handshake TLS et de la renégociation. Tests SSL/TLS server resilience against exhaustion attacks by abusing the asymmetric computational cost of the TLS handshake and renegotiation.

↗ https://github.com/hackerschoice/thc-tls-dos

Overview

THC-SSL-DOS exploits the CPU asymmetry of the SSL/TLS handshake — the client’s cost to initiate a handshake or renegotiation is far cheaper than the server’s cost to process it. By firing many rapid handshakes/renegotiations at a target, it can exhaust server resources without needing significant bandwidth, useful for testing whether a server is exposed to this class of DoS. Most modern TLS stacks disable client-initiated renegotiation, so this is largely a legacy/legacy-config testing tool now.

Common Usage

Basic renegotiation-based DoS test against an HTTPS server

thc-ssl-dos <target> 443

Accelerated mode (multiple simultaneous connections)

thc-ssl-dos --accept <target> 443

Test against a specific non-standard TLS port

thc-ssl-dos mail.example.com 465

Assessment Workflow

  1. Confirm renegotiation is enabled server-side
openssl s_client -connect <target>:443 -reconnect
  1. Run THC-SSL-DOS to measure resource exhaustion under load
thc-ssl-dos <target> 443
# 3. Monitor server-side CPU/connection metrics during the test
#    (only against systems you're authorized to test — this is a DoS tool)

Tips

  • Only run against systems you have explicit authorization to load-test — this is a genuine denial-of-service tool.
  • Most current TLS libraries (OpenSSL post-2011, IIS, nginx defaults) mitigate this by disabling client-triggered renegotiation, so a “target not vulnerable” result is expected on modern stacks.
  • Useful as a config-verification check during a hardening review rather than as an offensive technique on current infrastructure.
Help / Man page
thc-ssl-dos [options] <ip> <port>

  --accept       Use accept() to open more connections in parallel
  --debug        Print debug information
  --version      Show version
  -h, --help     Show this help

Notes:
  Requires OpenSSL library with renegotiation support to build.
  Exploits SSL/TLS renegotiation — sends repeated ClientHello /
  renegotiation requests to force expensive server-side key
  computation with minimal client-side cost.

Vue d’ensemble

THC-SSL-DOS exploite l’asymétrie de coût CPU du handshake SSL/TLS : le coût pour le client d’initier un handshake ou une renégociation est bien plus faible que le coût pour le serveur de le traiter. En envoyant de nombreux handshakes/renégociations rapides vers une cible, il peut épuiser les ressources du serveur sans nécessiter une bande passante importante, ce qui est utile pour tester si un serveur est exposé à cette classe de DoS. La plupart des piles TLS modernes désactivent la renégociation initiée par le client, donc il s’agit désormais principalement d’un outil de test sur des configurations legacy.

Utilisation courante

# Test de DoS basé sur la renégociation contre un serveur HTTPS
thc-ssl-dos <target> 443

# Mode accéléré (connexions simultanées multiples)
thc-ssl-dos --accept <target> 443

# Test contre un port TLS non standard spécifique
thc-ssl-dos mail.example.com 465

Workflow d’évaluation

# 1. Confirmer que la renégociation est activée côté serveur
openssl s_client -connect <target>:443 -reconnect

# 2. Lancer THC-SSL-DOS pour mesurer l'épuisement de ressources sous charge
thc-ssl-dos <target> 443

# 3. Surveiller les métriques CPU/connexions côté serveur pendant le test
#    (uniquement contre des systèmes pour lesquels vous êtes autorisé à tester : c'est un vrai outil de DoS)

Conseils

  • N’exécuter que contre des systèmes pour lesquels vous avez une autorisation explicite de test de charge : c’est un véritable outil de déni de service.
  • La plupart des bibliothèques TLS actuelles (OpenSSL post-2011, IIS, nginx par défaut) atténuent ce problème en désactivant la renégociation déclenchée par le client, donc un résultat “cible non vulnérable” est attendu sur les piles modernes.
  • Utile comme vérification de configuration lors d’une revue de durcissement plutôt que comme technique offensive sur une infrastructure actuelle.
Aide / Page de manuel
thc-ssl-dos [options] <ip> <port>

  --accept       Use accept() to open more connections in parallel
  --debug        Print debug information
  --version      Show version
  -h, --help     Show this help

Notes:
  Requires OpenSSL library with renegotiation support to build.
  Exploits SSL/TLS renegotiation — sends repeated ClientHello /
  renegotiation requests to force expensive server-side key
  computation with minimal client-side cost.