Tables arc-en-ciel et attaques précalculées

Échanger du stockage contre de la vitesse dans le craquage de mots de passe

Compromis temps-mémoire Chaînes précalculées Défense par sel

Ce que vous allez découvrir

🎯 Pourquoi c'est important

Les tables arc-en-ciel représentent l'une des solutions les plus élégantes en matière d'attaques cryptographiques—échanger un espace de stockage massif contre une récupération de mot de passe ultra-rapide. Les professionnels de la sécurité doivent comprendre ces méthodes d'attaque précalculées car elles changent fondamentalement l'économie du craquage de mots de passe. Ce qui prenait autrefois des jours de calcul peut maintenant se produire en quelques secondes, faisant des tables arc-en-ciel une considération critique dans la conception des politiques de mots de passe et la sélection des algorithmes de hachage.

🔍 Ce que vous allez apprendre

Vous maîtriserez les principes mathématiques derrière les compromis temps-mémoire, apprendrez à générer et utiliser des tables arc-en-ciel avec des outils professionnels comme RainbowCrack, et comprendrez pourquoi le salage fournit une défense absolue contre les attaques précalculées. Ces concepts sont essentiels pour concevoir des systèmes d'authentification sécurisés et mener des évaluations de sécurité approfondies.

🚀 Votre première victoire

Dans les 15 prochaines minutes, vous craquerez un hash NTLM en utilisant des tables arc-en-ciel, comprendrez pourquoi cela a fonctionné instantanément, et verrez comment le salage aurait entièrement empêché l'attaque.

🔧 Essayez ceci maintenant

Craquons un hash NTLM en utilisant des tables arc-en-ciel en ligne pour voir la puissance des attaques précalculées :

# Hash NTLM cible (hash de mot de passe Windows)
# Hash : 8846f7eaee8fb117ad06bdd830b7586c
# C'est le hash NTLM pour "password"

# Méthode 1 : Recherche de hash en ligne (utilise des tables de recherche, pas des tables arc-en-ciel)
# Visitez : https://crackstation.net/
# Collez le hash et cliquez sur "Crack Hashes"

# Méthode 2 : Ligne de commande avec RainbowCrack (véritable outil de table arc-en-ciel)
echo "8846f7eaee8fb117ad06bdd830b7586c" > ntlm.hash
# rcrack ntlm_tables/*.rt -h 8846f7eaee8fb117ad06bdd830b7586c

# Résultat attendu : Craquage instantané révélant "password"

Vous verrez : Comment les tables arc-en-ciel fournissent des résultats instantanés pour les mots de passe courants qui prendraient des heures à craquer par force brute.

Compétences que vous maîtriserez

✅ Compréhension fondamentale

  • Mathématiques et principes du compromis temps-mémoire
  • Structure des tables arc-en-ciel et réduction de chaînes
  • Probabilité de couverture et calcul du taux de réussite
  • Exigences de stockage et stratégies d'optimisation

🔍 Compétences expertes

  • Génération de tables arc-en-ciel personnalisées pour des cibles spécifiques
  • Optimisation de la longueur des chaînes pour une efficacité maximale
  • Stratégies multi-tables pour une couverture complète
  • Analyse du sel et contre-mesures aux tables arc-en-ciel

Comprendre les tables arc-en-ciel

Les tables arc-en-ciel résolvent le problème fondamental du craquage de mots de passe : le compromis entre le temps et le stockage. Les attaques par force brute traditionnelles nécessitent un stockage minimal mais un temps de calcul massif. Les tables arc-en-ciel inversent cette équation, utilisant d'énormes bases de données précalculées pour obtenir une récupération instantanée des mots de passe couverts.

⚡ Le compromis temps-mémoire

Force brute : 0 stockage + heures de calcul
Table de recherche : Téraoctets de stockage + 0 calcul
Tables arc-en-ciel : Gigaoctets de stockage + secondes de calcul

L'innovation

Les tables arc-en-ciel utilisent des fonctions de réduction pour créer des chaînes de mots de passe et de hashes, ne stockant que les points d'extrémité tout en maintenant la couverture.

Les mathématiques

Un équilibre soigneux entre la longueur des chaînes, le nombre de tables et la probabilité de couverture pour optimiser le taux de réussite par rapport aux exigences de stockage.

Le résultat

Récupération instantanée de mots de passe pour des millions de mots de passe courants en utilisant des exigences de stockage gérables.

Le génie des tables arc-en-ciel réside dans leur structure en chaînes. Au lieu de stocker chaque paire mot de passe-hash possible, elles créent des chaînes où chaque mot de passe est haché, puis réduit à un nouveau mot de passe, puis haché à nouveau. En ne stockant que le début et la fin de chaque chaîne, les tables arc-en-ciel obtiennent une compression massive tout en maintenant la capacité de récupérer n'importe quel mot de passe dans la chaîne.

Les évaluateurs de sécurité professionnels comprennent que les tables arc-en-ciel représentent un changement de paradigme dans la sécurité des mots de passe. Elles démontrent pourquoi les règles traditionnelles de complexité des mots de passe sont insuffisantes et pourquoi les systèmes d'authentification modernes doivent incorporer le salage, l'étirement de clé et l'authentification multi-facteurs pour rester sécurisés.

Outils et techniques

🌈 RainbowCrack : l'outil original

RainbowCrack, développé par Zhu Shuanglei, a été le pionnier des attaques pratiques par tables arc-en-ciel. Cette suite d'outils comprend des capacités de génération, d'optimisation et de craquage de tables pour plusieurs algorithmes de hachage.

# Installer RainbowCrack sur différents systèmes d'exploitation :

# Ubuntu/Debian
sudo apt update && sudo apt install rainbowcrack

# CentOS/RHEL/Fedora
sudo yum install rainbowcrack  # ou : sudo dnf install rainbowcrack

# macOS (pas de binaire standard disponible)
# Option 1 : Compiler RainbowCrack-NG depuis les sources (nécessite OpenSSL)
brew install openssl
git clone https://github.com/inAudible-NG/RainbowCrack-NG.git
cd RainbowCrack-NG/src
# Définir les chemins OpenSSL pour la compilation
export CPPFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"
make
# Option 2 : Utiliser Docker ou une machine virtuelle avec Linux
# Option 3 : Télécharger la version Windows et utiliser via Wine

# Windows
# Télécharger depuis : http://project-rainbowcrack.com/
# Extraire vers C:\RainbowCrack\ et ajouter au PATH
# Ou utiliser Windows Subsystem for Linux (WSL)

# Arch Linux
sudo pacman -S rainbowcrack

# Générer une table arc-en-ciel pour les hashes NTLM
# Charset : minuscules + chiffres, Longueur : 1-8, Longueur de chaîne : 3800, Nombre de chaînes : 33554432
rtgen ntlm loweralpha-numeric 1 8 0 3800 33554432 0

# Trier la table générée pour des recherches plus rapides
rtsort *.rt

# Craquer un hash NTLM en utilisant la table arc-en-ciel
rcrack *.rt -h 8846f7eaee8fb117ad06bdd830b7586c

Les paramètres contrôlent la couverture et l'efficacité de la table : des chaînes plus longues réduisent le stockage mais augmentent le temps de recherche, tandis que plus de chaînes améliorent la probabilité de succès au prix de l'espace de stockage.

⚡ Pourquoi hashcat n'utilise pas les tables arc-en-ciel

Hashcat utilise des attaques par dictionnaire/liste de mots, qui sont fondamentalement différentes des tables arc-en-ciel. Les attaques par dictionnaire testent directement les mots de passe des listes contre les hashes, tandis que les tables arc-en-ciel utilisent des chaînes précalculées. L'accélération GPU moderne rend souvent l'approche de hashcat plus rapide que les recherches dans les tables arc-en-ciel.

# Hashcat utilise des attaques par dictionnaire directes (PAS des tables arc-en-ciel)
# Télécharger de grandes bases de données de fuites pour les attaques par liste de mots
wget https://download.g0tmi1k.com/wordlists/large/36.4GB-18_in_1.lst.7z

# Extraire et utiliser avec l'attaque par dictionnaire hashcat
7z x 36.4GB-18_in_1.lst.7z
hashcat -m 1000 ntlm_hashes.txt 36.4GB-18_in_1.lst

# Différence clé :
# Tables arc-en-ciel : Chaînes précalculées, compromis temps-mémoire
# Hashcat : Test direct de mots de passe, calcul accéléré par GPU

🎯 Services de recherche de hash en ligne (tables de recherche)

Plusieurs services en ligne maintiennent d'énormes bases de données de tables de recherche (pas des tables arc-en-ciel), fournissant des recherches instantanées de hash vers mot de passe. Ces services utilisent des mappages directs hash-mot de passe, qui nécessitent un stockage énorme mais fournissent des résultats instantanés.

# Services populaires de tables de recherche en ligne (PAS des tables arc-en-ciel) :
# - CrackStation.net (base de données massive hash-mot de passe)
# - HackerDNA.com/tools/md5 (inversion et génération de hash MD5)
# - HashKiller.co.uk (bases de données de recherche spécialisées)
# - OnlineHashCrack.com (algorithmes multiples)
# - MD5Decrypt.net (tables de recherche axées MD5)

# Différence clé :
# Tables de recherche : Mappage direct hash → mot de passe, résultats instantanés
# Tables arc-en-ciel : Chaînes calculées, nécessite une traversée de chaîne

# Exemple : CrackStation utilise des tables de recherche pour des résultats instantanés
# Visitez crackstation.net et collez : 8846f7eaee8fb117ad06bdd830b7586c
# Résultat : "password" instantané (aucun calcul nécessaire)

Les évaluateurs professionnels utilisent ces services de tables de recherche pour une identification rapide des hashes pendant les tests d'intrusion. Comprendre la différence entre les tables de recherche et les tables arc-en-ciel est crucial pour choisir la bonne approche.

🔧 Génération de tables arc-en-ciel personnalisées

Pour des cibles spécialisées, les professionnels de la sécurité peuvent avoir besoin de générer des tables arc-en-ciel personnalisées optimisées pour des jeux de caractères, des longueurs ou des algorithmes de hachage spécifiques.

# Générer une table personnalisée pour un environnement d'entreprise
# Cible : mots de passe de 8 caractères, majuscules/minuscules + chiffres + symboles courants
rtgen md5 mixalpha-numeric-symbol32-space 8 8 0 5000 67108864 0

# Générer une table pour un motif spécifique (ex : format Word123!)
# Cela nécessite une définition de charset personnalisé
echo "abcdefghijklmnopqrstuvwxyz0123456789!" > custom.charset
rtgen md5 custom.charset 8 8 0 4000 50000000 0

# Optimiser les paramètres de table basés sur l'analyse de la cible
# Plus de chaînes = meilleure couverture, chaînes plus longues = moins de stockage
# Équilibrer en fonction du stockage disponible et des motifs de mots de passe cibles

La génération de tables personnalisées nécessite une analyse minutieuse des politiques de mots de passe cibles et des modèles de comportement des utilisateurs pour optimiser la couverture et l'efficacité.

Scénarios d'attaque réels

🎯 Compromission de contrôleur de domaine Windows (2019)

Lors de tests d'intrusion, les chercheurs en sécurité ont documenté comment les attaquants obtiennent des hashes NTLM des contrôleurs de domaine Windows via des attaques DCSync. La nature non salée des hashes NTLM en faisait des cibles parfaites pour les attaques par tables arc-en-ciel, permettant une récupération instantanée des mots de passe courants utilisés par les utilisateurs du domaine.

# Hashes NTLM extraits via DCSync
# Exemples de hashes (mots de passe d'entreprise courants) :
# Administrator : 8846f7eaee8fb117ad06bdd830b7586c (password)
# ServiceAccount : 2b2ac2d1c7c8fda6cea606687acf9f2f (Password123)
# BackupUser : 5835048ce94ad0564e29a924a03510ef (Welcome1)

# Résultats de l'attaque par table arc-en-ciel :
rcrack ntlm_tables/*.rt -l hash_list.txt

# Résultats :
# 8846f7eaee8fb117ad06bdd830b7586c:password
# 2b2ac2d1c7c8fda6cea606687acf9f2f:Password123
# 5835048ce94ad0564e29a924a03510ef:Welcome1

# Attaque terminée en moins de 30 secondes

Aperçu expert : L'absence de salage de NTLM le rend extrêmement vulnérable aux attaques par tables arc-en-ciel. Les organisations utilisant des domaines Windows doivent implémenter des politiques de mots de passe robustes et envisager de passer à une authentification Kerberos uniquement.

⚡ Analyse de base de données de hashes non salés

Les chercheurs en sécurité analysant des bases de données avec des hashes MD5 non salés ont constamment trouvé des taux de succès élevés avec les attaques par tables arc-en-ciel. Le format de hash prévisible rend des bases de données d'utilisateurs entières vulnérables aux attaques précalculées, avec des mots de passe courants récupérés rapidement en utilisant des tables arc-en-ciel disponibles publiquement.

# Structure courante de base de données MD5 non salée
# CREATE TABLE users (id INT, username VARCHAR(50), password_hash CHAR(32));
# Exemples de hashes MD5 (mots de passe courants) :
# 5d41402abc4b2a76b9719d911017c592 (hello)
# 098f6bcd4621d373cade4e832627b4f6 (test)
# e99a18c428cb38d5f260853678922e03 (abc123)

# Attaque par table arc-en-ciel contre les hashes MD5
rcrack md5_tables/*.rt -l hash_list.txt

# Résultats typiques pour les mots de passe courants :
# Taux de succès élevé pour les mots du dictionnaire et les motifs simples
# Taux de succès plus faible pour les mots de passe complexes et uniques
# Économies de temps significatives par rapport aux approches par force brute

Aperçu expert : Les hashes non salés sont considérés comme fondamentalement cassés en sécurité moderne. Même les mots de passe complexes deviennent vulnérables lorsque les attaquants peuvent précalculer des attaques contre l'ensemble de la base d'utilisateurs, rendant le salage approprié essentiel pour tout système de stockage de mots de passe.

🔍 Craquage de poignée de main WiFi WPA/WPA2

Les chercheurs en sécurité WiFi ont développé des tables arc-en-ciel spécialisées pour le craquage de poignées de main WPA/WPA2. Les chercheurs en sécurité ont créé d'énormes bases de données précalculées pour les SSID WiFi courants, permettant une récupération rapide des mots de passe WiFi lorsque des poignées de main WPA sont capturées.

# Workflow d'attaque par table arc-en-ciel WPA
# 1. Capturer la poignée de main WPA
airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon

# 2. Convertir la poignée de main au format hash
aircrack-ng -J hashcat_format capture-01.cap

# 3. Utiliser les tables arc-en-ciel WPA (si disponibles pour le SSID cible)
# Des tables existent pour les SSID courants : "linksys", "netgear", "dlink", etc.
rcrack wpa_tables/linksys/*.rt -l hashcat_format.hccapx

# 4. Résultats pour les SSID courants avec des mots de passe faibles
# SSID "linksys" + mot de passe "password123" = craquage instantané
# Les SSID personnalisés/uniques nécessitent des attaques traditionnelles par dictionnaire/force brute

Aperçu expert : Les tables arc-en-ciel WPA ne fonctionnent que pour des SSID spécifiques puisque le nom du réseau fait partie du calcul du hash. Cela démontre à la fois la puissance et les limites des attaques précalculées.

Contre-mesures défensives

🧂 Protection de hash basée sur le sel

Le salage fournit une protection absolue contre les attaques par tables arc-en-ciel en garantissant que des mots de passe identiques produisent des hashes différents. Chaque mot de passe reçoit une valeur de sel aléatoire unique avant le hachage, rendant les attaques précalculées computationnellement infaisables.

  • Sels cryptographiquement aléatoires : Utilisez des générateurs de nombres aléatoires sécurisés pour la génération du sel
  • Sels uniques par mot de passe : Ne réutilisez jamais les valeurs de sel entre différents mots de passe
  • Longueur de sel suffisante : Minimum 128 bits (16 octets) de sels pour prévenir les attaques par collision
  • Stockage approprié du sel : Stockez les sels aux côtés des hashes dans la base de données

🔐 Algorithmes modernes de hachage de mots de passe

Les algorithmes contemporains de hachage de mots de passe incorporent un salage intégré et un étirement de clé, les rendant intrinsèquement résistants aux attaques par tables arc-en-ciel et fournissant une protection supplémentaire contre les tentatives de force brute.

  • bcrypt : Hachage adaptatif avec sel intégré et facteur de travail configurable
  • scrypt : Fonction à mémoire dure qui résiste aux attaques par matériel spécialisé
  • Argon2 : Vainqueur du Password Hashing Competition, optimisé pour la sécurité
  • PBKDF2 : Acceptable lorsqu'il est configuré avec un nombre élevé d'itérations (100 000+)

⚡ Étirement de clé et facteurs de travail

Les algorithmes d'étirement de clé ralentissent intentionnellement le calcul du hash, rendant la génération de tables arc-en-ciel et les attaques par force brute exponentiellement plus coûteuses. Une configuration appropriée du facteur de travail équilibre la sécurité avec les performances du système.

  • Facteurs de travail adaptatifs : Augmentez le coût computationnel à mesure que le matériel s'améliore
  • Tests de performance : Configurez les facteurs de travail pour cibler un temps de calcul de hash de 250-500ms
  • Révision régulière : Augmentez les facteurs de travail annuellement pour maintenir les marges de sécurité
  • Considérations matérielles : Tenez compte de la capacité du serveur lors de la définition des facteurs de travail

🛡️ Stratégies de défense en profondeur

Une protection complète contre les attaques précalculées nécessite plusieurs couches de contrôles de sécurité qui travaillent ensemble pour prévenir, détecter et répondre aux attaques basées sur les mots de passe.

  • Authentification multi-facteurs : Éliminez l'authentification par mot de passe uniquement pour les systèmes critiques
  • Application de la complexité des mots de passe : Exigez des mots de passe à haute entropie qui résistent à la précalculation
  • Surveillance des violations : Vérifications régulières contre les bases de données de mots de passe compromis connus
  • Journalisation des accès : Surveillez les modèles d'authentification inhabituels qui pourraient indiquer une compromission

FAQ

Fondamentaux des tables arc-en-ciel

Comment les tables arc-en-ciel obtiennent-elles une compression si massive par rapport aux tables de recherche ?

Les tables arc-en-ciel utilisent des fonctions de réduction pour créer des chaînes de mots de passe et de hashes. Au lieu de stocker chaque paire mot de passe-hash, elles ne stockent que le début et la fin de chaque chaîne. Lors du craquage, elles régénèrent la chaîne pour trouver le hash cible. Cela fournit un compromis temps-mémoire : moins de stockage que les tables de recherche complètes, mais nécessitant un calcul pendant le processus de recherche.

Pourquoi les tables arc-en-ciel ne fonctionnent-elles pas contre les hashes salés ?

Le salage ajoute une valeur aléatoire unique à chaque mot de passe avant le hachage, ce qui signifie que des mots de passe identiques produisent des hashes différents. Les tables arc-en-ciel sont précalculées pour des algorithmes de hachage spécifiques sans sels. Avec le salage, les attaquants auraient besoin de tables arc-en-ciel séparées pour chaque valeur de sel possible, rendant la précalculation computationnellement infaisable. Une seule table arc-en-ciel devient inutile contre les hashes salés.

Quelle est la différence entre les tables arc-en-ciel et les tables de recherche simples ?

Les tables de recherche stockent chaque paire mot de passe-hash possible, nécessitant un stockage énorme (téraoctets pour une couverture complète). Les tables arc-en-ciel utilisent des chaînes mathématiques pour réduire les exigences de stockage de 1000x ou plus tout en maintenant une bonne couverture. Le compromis est que les tables arc-en-ciel nécessitent un calcul pendant la recherche, tandis que les tables de recherche fournissent des résultats instantanés mais sont impraticables à stocker de manière exhaustive.

Implémentation technique

Comment calculer la longueur de chaîne optimale pour mes tables arc-en-ciel ?

L'optimisation de la longueur de chaîne équilibre l'efficacité du stockage avec le temps de recherche et la probabilité de succès. Des chaînes plus longues réduisent les exigences de stockage mais augmentent le temps de recherche et réduisent les taux de succès en raison de la fusion des chaînes. La longueur de chaîne optimale dépend de vos contraintes de stockage et des temps de recherche acceptables. Une approche courante consiste à utiliser la formule : longueur_chaîne = sqrt(taille_espace_clé / nombre_tables) comme point de départ, puis à ajuster en fonction des tests.

Puis-je utiliser les tables arc-en-ciel avec l'accélération GPU ?

La recherche traditionnelle dans les tables arc-en-ciel est principalement limitée par le CPU en raison de la nature séquentielle de la traversée de chaîne. Cependant, les outils modernes accélérés par GPU comme hashcat surpassent souvent les tables arc-en-ciel en utilisant un traitement parallèle massif pour les attaques par dictionnaire et force brute. Pour de nombreux scénarios, la force brute GPU est plus rapide que la recherche dans les tables arc-en-ciel, en particulier avec les cartes graphiques modernes capables de milliards de hashes par seconde.

Applications pratiques de sécurité

Dois-je générer des tables arc-en-ciel personnalisées pour les tests d'intrusion ?

La génération de tables arc-en-ciel personnalisées est rarement rentable pour les tests d'intrusion. Le temps requis pour générer des tables complètes (jours à semaines) dépasse généralement le calendrier des tests. Au lieu de cela, utilisez les services de tables arc-en-ciel en ligne existants pour des recherches de hash rapides, puis revenez aux attaques par dictionnaire et force brute accélérées par GPU avec des outils comme hashcat. Les tables personnalisées n'ont de sens que pour des projets de recherche spécialisés à long terme.

Comment me défendre contre les attaques par tables arc-en-ciel dans mes applications ?

Implémentez un hachage de mot de passe approprié avec des algorithmes modernes comme bcrypt, scrypt ou Argon2. Ces algorithmes incluent un salage intégré et un étirement de clé, rendant les attaques par tables arc-en-ciel impossibles. N'utilisez jamais de hashes non salés comme MD5, SHA-1 ou SHA-256 simple pour le stockage des mots de passe. De plus, appliquez des politiques de mots de passe fortes et implémentez l'authentification multi-facteurs pour fournir une défense en profondeur. Pour plus de conseils, consultez la Fiche de référence OWASP sur le stockage des mots de passe .

🎯 Vous maîtrisez les tables arc-en-ciel !

Vous comprenez maintenant l'élégance mathématique des compromis temps-mémoire, pouvez exploiter les attaques précalculées pour une récupération rapide des mots de passe, et savez exactement pourquoi le salage fournit une protection absolue contre les tables arc-en-ciel. Ces connaissances vous permettent de concevoir des systèmes d'authentification sécurisés et de mener des évaluations de sécurité complètes.

Compromis temps-mémoire Attaques précalculées Défense par sel Hachage moderne

Prêt à explorer l'analyse avancée des hashes et les attaques sur algorithmes personnalisés

Validation des Connaissances

Démontrez votre compréhension pour gagner des points et progresser

1
Question du Chapitre

Vous avez obtenu un hash NTLM Windows lors d'un test d'intrusion : 8846f7eaee8fb117ad06bdd830b7586c. En utilisant les techniques de rainbow tables couvertes dans ce chapitre, quelle est la valeur en clair ?

1
Lire
2
Valider
3
Terminer

Prêt à suivre votre progression?

Créez un compte gratuit pour sauvegarder votre progression, gagner des points et accéder à plus de 170 labs pratiques de cybersécurité.

Commencer à Apprendre Gratuitement
Rejoignez 5 000+ hackers qui apprennent la cybersécurité avec des labs pratiques. Créer un Compte