Crackage de mot de passe — John the ripper Hashcat
Nous avons réussi à récupérer les hashs des mots de passe des utilisateurs du système.
Dans les résultats de notre extraction, nous constatons que pour l'utilisateur John, nous avons une première partie correspondant au hash LM et une seconde correspondant au hash NTLM.
C'est cette seconde partie, le hash NTLM, qui nous intéresse car elle contient l'empreinte du mot de passe que nous pouvons tenter de casser en utilisant différents outils.
Il faut savoir que le hash en lui-même, même sous sa forme brute, est extrêmement utile pour mener d'autres types d'attaques, notamment les attaques de type « pass-the-hash » (PtH).
Lorsque vous auditez un environnement Active Directory, la simple détention du hash d'un utilisateur peut suffire à s'authentifier sur d'autres serveurs du réseau, sans avoir besoin de découvrir le mot de passe en clair.
Cependant, pour cette démonstration, je vais vous montrer comment casser ces hashs.
Intéressons-nous à l'utilisateur John.
Je copie son hash NTLM.
Par défaut, Kali Linux propose deux outils de cassage de mots de passe très populaires : John the Ripper et Hashcat.
En tapant `john` dans le terminal, vous affichez son menu d'aide.
Hashcat est également un outil extrêmement puissant.
La différence principale réside dans le fait que Hashcat est optimisé pour exploiter la puissance de calcul des processeurs graphiques (GPU), tandis que John the Ripper utilise par défaut le processeur (CPU).
Si vous utilisez Kali Linux dans une machine virtuelle, celle-ci n'aura généralement pas accès aux ressources physiques de la carte graphique de votre ordinateur hôte, ce qui rendra Hashcat peu efficace.
Dans ce cas, il est souvent préférable d'installer la version Windows de Hashcat sur votre machine hôte pour profiter du GPU, ou d'utiliser John the Ripper sur votre machine virtuelle.
L'utilisation de John the Ripper est très simple.
Il suffit de placer les hashs dans un fichier texte.
Pour l'exemple, créons un fichier `hash.txt` avec l'éditeur `nano`.
Mettons-y un hash de test (par exemple, celui d'un utilisateur nommé Karl).
Pour lancer le cassage, tapez simplement `john hash.txt`.
Si John the Ripper a déjà cassé ce hash auparavant, il ne va pas refaire le calcul mais affichera le résultat en utilisant l'option `--show` : `john --show hash.txt`.
Ici, on voit que le mot de passe associé au compte de Karl est « doggie ».
Pour casser le mot de passe de John, nous allons remplacer le contenu de notre fichier `hash.txt` par son hash NTLM, puis enregistrer le fichier.
Nous pouvons lancer John the Ripper en lui associant un dictionnaire de mots de passe (une wordlist) avec l'option `--wordlist=`.
Sous Kali Linux, les listes de mots de passe se trouvent généralement dans le répertoire `/usr/share/wordlists/`.
Nous allons utiliser le célèbre dictionnaire `rockyou.txt` : `john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt`.
Si le mot de passe est simple, John le cassera en quelques millisecondes.
Si John the Ripper ne trouve pas le mot de passe avec le dictionnaire, l'option `--show` n'affichera rien.
Cela signifie que le mot de passe n'est pas présent dans la liste `rockyou.txt`.
Dans ce cas, vous pouvez lancer John the Ripper en mode d'attaque par force brute (sans spécifier de dictionnaire), ce qui va pousser le processeur de votre machine virtuelle à 100% pour tester toutes les combinaisons possibles.
Cela peut prendre beaucoup de temps.
Heureusement, il existe une alternative rapide : utiliser des services de cassage en ligne (des bases de données de recherche de hashs inversés) comme CrackStation (crackstation.net).
Il vous suffit de vous rendre sur le site, de coller le hash NTLM, de valider le captcha et de cliquer sur « Crack Hashes ».
En quelques millisecondes, CrackStation compare le hash avec sa base de données géante de mots de passe pré-calculés (rainbow tables).
Dans notre cas, CrackStation trouve immédiatement la correspondance : le type de hash est bien NTLM, et le mot de passe en clair associé est « alkfna22 ».
Nous pouvons donc retourner dans notre terminal et arrêter le processus de John the Ripper.
Pensez à toujours avoir le réflexe de soumettre un hash à CrackStation en premier lieu.
Si cela ne fonctionne pas, vous pouvez alors utiliser John the Ripper ou exécuter Hashcat sur votre machine hôte Windows.
Plus votre carte graphique est puissante, plus vous serez en mesure de tester de mots de passe par seconde.
John the Ripper supporte un très grand nombre de formats de hashs (MD5, SHA-256, NTLM, etc.).
Une fois que vous avez récupéré le mot de passe en clair de votre cible, notez-le précieusement dans votre document CherryTree pour la suite de votre test d'intrusion.