Introduction
Hashcat est un outil de récupération de mots de passe puissant et polyvalent, largement reconnu pour sa rapidité et son support de nombreux algorithmes de hachage et modes d'attaque. L'une de ses fonctionnalités les plus innovantes est l'attaque PRINCE (Probabilistic Relevant Incremental Nonce-based Candidate-generator Extension).
Contrairement à une attaque par dictionnaire standard qui ne teste que des mots d'une liste, l'attaque PRINCE génère de nouveaux candidats de mots de passe en combinant des mots d'une liste de mots donnée de diverses manières. Cela la rend très efficace contre les mots de passe qui sont des concaténations de deux mots de dictionnaire ou plus, un schéma courant pour créer des mots de passe mémorables mais apparemment complexes.
Dans ce laboratoire, vous apprendrez les bases du mode d'attaque PRINCE dans Hashcat. Vous préparerez une liste de mots, exécuterez une attaque PRINCE contre un hachage d'échantillon, analyserez les candidats générés et, enfin, la combinerez avec un fichier de règles pour aborder des variations de mots de passe encore plus complexes.
Comprendre la génération probabiliste de mots avec PRINCE
Dans cette étape, vous apprendrez le concept fondamental derrière le mode d'attaque PRINCE. Le mode d'attaque PRINCE est désigné par le drapeau de mode d'attaque -a 8 dans Hashcat. Sa force réside dans la création de nouveaux candidats de mots de passe à partir d'une liste de mots plus petite, plutôt que de s'appuyer sur un dictionnaire massif. Il combine algorithmiquement les mots de votre liste source pour générer un ensemble beaucoup plus vaste et plus complexe de mots de passe potentiels.
Par exemple, si votre liste de mots contient "apple" et "pie", PRINCE peut générer des candidats tels que "apple", "pie", "applepie", "pieapple", "appleapple", et ainsi de suite.
Commençons par confirmer l'option du mode d'attaque PRINCE dans le menu d'aide de Hashcat. Vous pouvez utiliser grep pour filtrer la sortie d'aide étendue afin de trouver la ligne pertinente.
Exécutez la commande suivante dans votre terminal :
hashcat --help | grep "PRINCE"
Vous verrez la ligne qui définit le mode d'attaque PRINCE, confirmant sa disponibilité et son numéro de mode d'attaque correspondant.
8 | PRINCE
Cela confirme que -a 8 est le drapeau correct pour invoquer une attaque PRINCE.
Préparer une petite liste de mots de base
Dans cette étape, vous allez créer une petite liste de mots de base. L'efficacité d'une attaque PRINCE est directement liée à la qualité de la liste de mots d'entrée. Même une petite liste de mots bien choisis peut être incroyablement puissante. Pour ce laboratoire, nous allons créer un fichier contenant quelques mots simples.
Le mot de passe cible pour la première partie du laboratoire est "labexrocks". Par conséquent, notre liste de mots devrait contenir les mots de base "labex" et "rocks".
Utilisez la commande echo avec redirection de sortie pour créer un fichier nommé wordlist.txt dans votre répertoire actuel (~/project).
echo -e "labex\nrocks\npass\nword" > wordlist.txt
Le drapeau -e active l'interprétation des échappements de barre oblique inverse, de sorte que \n crée une nouvelle ligne pour chaque mot.
Maintenant, vérifiez le contenu de votre liste de mots nouvellement créée à l'aide de la commande cat.
cat wordlist.txt
Vous devriez voir la sortie suivante, confirmant que le fichier a été créé correctement :
labex
rocks
pass
word
Vous disposez maintenant d'une liste de mots de base prête pour l'attaque PRINCE.
Exécuter une attaque PRINCE avec -a 8
Dans cette étape, vous utiliserez la liste de mots que vous avez créée pour cracker un hachage MD5 d'exemple. Le script de configuration de ce laboratoire a déjà créé un fichier nommé hash.txt contenant le hachage MD5 du mot de passe "labexrocks".
Construisons la commande Hashcat :
hashcat: l'exécutable.-m 0: spécifie le mode de hachage.0correspond à MD5.-a 8: spécifie le mode d'attaque, qui est PRINCE.hash.txt: le fichier contenant le hachage cible.wordlist.txt: votre liste de mots de base.
Exécutez maintenant la commande complète dans votre terminal :
hashcat -m 0 -a 8 hash.txt wordlist.txt
Hashcat s'initialisera et commencera l'attaque. Étant donné que la liste de mots est petite et que le mot de passe est une combinaison directe des mots qu'elle contient, le processus sera très rapide. Vous verrez une sortie détaillant la session, et surtout, le mot de passe cracké.
La sortie ressemblera à ceci (certains détails peuvent varier) :
...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 22
* Keyspace..: 468
2d4a2b23999534c734b26e1b31b5579d:labexrocks
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d4a2b23999534c734b26e1b31b5579d
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Mode.......: PRINCE
Speed.#*.........: ...
Recovered........: 1/1 (100.00%) Digests
Progress.........: 468/468 (100.00%)
Rejected.........: 0/468 (0.00%)
Restore.Point....: 468/468 (100.00%)
Restore.Sub.#*...: ...
Candidate.Engine.: PRINCE
Candidates.#*....: ...
Hardware.Mon.#*..: ...
...
La ligne 2d4a2b23999534c734b26e1b31b5579d:labexrocks montre clairement le hachage original et le mot de passe récupéré. Vous avez réussi à utiliser l'attaque PRINCE pour cracker le mot de passe.
Analyser les mots de passe candidats générés
Dans cette étape, vous allez explorer ce que fait PRINCE en coulisses. Au lieu de cracker un hachage, vous pouvez demander à Hashcat de simplement afficher les candidats de mots de passe qu'il génère sur la console. Ceci est fait en utilisant le drapeau --stdout. C'est un excellent moyen de comprendre comment votre liste de mots de base est transformée.
Utilisons --stdout avec notre wordlist.txt pour voir les candidats générés.
hashcat --stdout -a 8 wordlist.txt
Cela affichera un grand nombre de combinaisons sur votre écran. Pour rendre la sortie plus gérable, vous pouvez la rediriger vers la commande head pour n'afficher que les 10 premières lignes.
hashcat --stdout -a 8 wordlist.txt | head -n 10
La sortie montrera les premiers candidats générés par PRINCE.
pass
word
labex
rocks
passpass
password
passlabex
passrocks
wordpass
wordword
Comme vous pouvez le voir, PRINCE commence par les mots originaux, puis commence à créer de nouvelles combinaisons. Le mot de passe que nous avons cracké précédemment, "labexrocks", serait généré plus loin dans cette liste. Cela démontre la puissance de PRINCE pour étendre une petite liste de mots en un ensemble beaucoup plus large et plus efficace de tentatives de mots de passe.
Combiner PRINCE avec un fichier de règles pour plus de complexité
Dans cette étape, vous apprendrez à rendre l'attaque PRINCE encore plus puissante en la combinant avec un fichier de règles. Les fichiers de règles appliquent des mutations spécifiques à chaque mot de passe candidat généré par PRINCE. Cela vous permet de tester des variations courantes comme la capitalisation, l'ajout de chiffres ou l'ajout de caractères spéciaux.
La configuration du laboratoire a fourni un fichier de hachage hash2.txt (pour le mot de passe "Labexrocks") et un fichier de règles courant nommé best64.rule. Ce fichier de règles contient 64 des règles de manipulation de mots de passe les plus efficaces.
Le flux d'attaque sera le suivant :
- PRINCE génère un candidat (par exemple, "labexrocks").
- Hashcat applique les règles de
best64.ruleà ce candidat (par exemple, capitaliser la première lettre -> "Labexrocks"). - Le candidat modifié est testé contre le hachage.
Pour combiner une attaque PRINCE avec un fichier de règles, il suffit d'ajouter le drapeau -r suivi du chemin vers le fichier de règles.
Exécutez la commande suivante :
hashcat -m 0 -a 8 hash2.txt wordlist.txt -r best64.rule
Hashcat exécutera maintenant l'attaque PRINCE, mais chaque candidat généré sera modifié par les règles de best64.rule avant d'être testé.
Vous verrez un crack réussi dans la sortie :
...
15895e67271a552214b5e422d5752e47:Labexrocks
Session..........: hashcat
Status...........: Cracked
...
Le mot de passe récupéré est "Labexrocks". Il a été trouvé car PRINCE a généré "labexrocks", et l'une des règles de best64.rule a capitalisé la première lettre, correspondant au mot de passe cible. Cette combinaison de modes d'attaque est extrêmement efficace dans les scénarios réels.
Résumé
Dans ce laboratoire, vous avez appris avec succès à utiliser le mode d'attaque PRINCE dans Hashcat. Vous avez acquis une expérience pratique avec l'une des techniques de cracking de mots de passe les plus créatives et efficaces disponibles.
Vous avez appris à :
- Comprendre le concept de l'attaque PRINCE (
-a 8) et comment elle génère probabilistiquement des candidats de mots de passe. - Préparer une liste de mots simple et ciblée pour servir de base à l'attaque.
- Exécuter une attaque PRINCE de base pour cracker un mot de passe formé par la concaténation de mots.
- Utiliser le drapeau
--stdoutpour analyser les candidats générés par PRINCE et comprendre sa logique. - Combiner l'attaque PRINCE avec un fichier de règles (
-r) pour cracker des mots de passe plus complexes avec des variations comme la capitalisation.
L'attaque PRINCE est un outil puissant dans l'arsenal de tout professionnel de la sécurité, en particulier lorsqu'il s'agit de mots de passe créés à partir de plusieurs mots. Maîtriser son utilisation et sa combinaison avec d'autres modes d'attaque améliorera considérablement vos capacités de récupération de mots de passe.



