I — Brute-force en ligne vs hors-ligne
Une fois des formulaires d'authentification ou des hashs identifiés, deux approches principales existent pour tenter de retrouver des mots de passe.
• Brute-force en ligne — Attaquer directement un service actif (SSH, HTTP, FTP…). On envoie des tentatives de connexion en temps réel au service. C'est l'approche de Hydra.
• Craquage hors-ligne — On dispose d'un hash récupéré (depuis /etc/shadow, une base de données, une archive…) et on tente de le retrouver localement sans interagir avec le service. C'est l'approche de John the Ripper.
À retenir : Le brute-force en ligne est limité par la vitesse du réseau et les mécanismes anti-brute-force (verrouillage de compte, rate limiting). Le craquage hors-ligne est uniquement limité par la puissance de calcul locale — bien plus rapide.
II — Hydra
Hydra est l'outil de référence pour le brute-force en ligne. Il supporte un grand nombre de protocoles : SSH, FTP, HTTP, SMB, RDP, Telnet, MySQL…
Syntaxe générale
hydra -l utilisateur -P wordlist.txt cible protocole
Options principales :
• -l — Utilisateur unique / -L — Fichier liste d'utilisateurs.
• -p — Mot de passe unique / -P — Fichier liste de mots de passe.
• -t — Nombre de threads parallèles (défaut : 16).
• -vV — Mode verbose : affiche chaque tentative.
• -f — Stoppe dès qu'un mot de passe valide est trouvé.
Exemples par protocole
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://cible
hydra -L users.txt -P passwords.txt ssh://cible
hydra -l admin -P rockyou.txt ftp://cible
hydra -l admin -P rockyou.txt cible http-post-form "/login:username=^USER^&password=^PASS^:F=Invalid"
hydra -l admin -P rockyou.txt smb://cible
hydra -l admin -P rockyou.txt rdp://cible
À noter : Le brute-force en ligne génère beaucoup de trafic et peut déclencher des mécanismes de verrouillage de compte ou des alertes IDS. Toujours vérifier la politique de l'application cible avant de lancer Hydra.
III — John the Ripper
John the Ripper (ou simplement john) est l'outil de référence pour le craquage de hashs hors-ligne. Il supporte des dizaines de formats : MD5, SHA1, bcrypt, NTLM, SHA-512 (Linux), zip, pdf…
Craquage basique
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
john hash.txt
john --format=bcrypt --wordlist=rockyou.txt hash.txt
john --format=NT --wordlist=rockyou.txt hash.txt
john --format=sha512crypt --wordlist=rockyou.txt hash.txt
Formats courants
• Linux (/etc/shadow) — format sha512crypt.
• Windows (NTLM) — format NT.
• Archives ZIP/RAR — utiliser d'abord zip2john / rar2john pour extraire le hash.
• Clés SSH protégées — utiliser ssh2john.
• Fichiers PDF — utiliser pdf2john.
Outils de conversion (john2*)
John the Ripper embarque des utilitaires pour convertir des fichiers protégés en hashs craquables. Le principe est toujours le même : extraire le hash, puis le craquer avec john.
zip2john archive.zip > hash.txt && john --wordlist=rockyou.txt hash.txt
rar2john archive.rar > hash.txt && john --wordlist=rockyou.txt hash.txt
ssh2john id_rsa > hash.txt && john --wordlist=rockyou.txt hash.txt
pdf2john fichier.pdf > hash.txt && john --wordlist=rockyou.txt hash.txt
Afficher les résultats
john --show hash.txt
john --show --format=NT hash.txt
Wordlist recommandée : rockyou.txt est la wordlist de référence pour les CTF et pentests. Disponible sur Kali Linux dans /usr/share/wordlists/rockyou.txt.gz — à décompresser avec gunzip rockyou.txt.gz avant utilisation.
IV — Récapitulatif
Voici un résumé des outils et concepts couverts dans cette documentation :
• Brute-force en ligne — Attaque directe d'un service réseau actif. Limité par la vitesse réseau et les protections anti-brute-force.
• Craquage hors-ligne — Craquage d'un hash récupéré localement. Limité uniquement par la puissance de calcul.
• hydra — Brute-force en ligne, supporte SSH, FTP, HTTP, SMB, RDP et bien d'autres.
• john — Craquage de hashs hors-ligne, supporte des dizaines de formats.
• zip2john, ssh2john, pdf2john… — Convertissent des fichiers protégés en hashs craquables par john.