← retour aux outils back to tools

# 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

2. 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.