Créer une règle personnalisée dans Hashcat

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Hashcat est un outil de récupération de mots de passe puissant et polyvalent. L'une de ses fonctionnalités les plus efficaces est l'attaque basée sur des règles (rule-based attack), qui vous permet d'effectuer des manipulations sur une liste de mots (wordlist) pour créer un vaste nombre de candidats mots de passe. Au lieu d'utiliser des fichiers de règles préfabriqués, vous pouvez créer vos propres règles personnalisées, adaptées à une cible spécifique.

Dans ce laboratoire, vous apprendrez les bases de la syntaxe des règles de Hashcat et créerez votre propre fichier de règles personnalisé à partir de zéro. Vous écrirez des règles pour mettre en majuscule la première lettre d'un mot et ajouter une année, puis vous utiliserez ce fichier de règles personnalisé dans une attaque d'exemple de cassage de mots de passe.

Apprendre la syntaxe de base des règles comme l'ajout '$' et le préfixe '^'

Dans cette étape, vous apprendrez la syntaxe de base des règles de Hashcat. Les règles sont des commandes simples, composées d'un seul caractère, qui indiquent à Hashcat comment manipuler un mot de votre liste de mots (wordlist). Deux des règles les plus fondamentales sont celles pour ajouter un préfixe et un suffixe.

  • ^x : Ajoute le caractère x au début du mot.
  • $x : Ajoute le caractère x à la fin du mot.

Pour voir comment ces règles fonctionnent sans lancer une attaque complète, nous pouvons utiliser l'option --stdout. Cela affichera directement le résultat des manipulations de règles dans le terminal.

Tout d'abord, testons la règle d'ajout de suffixe. Nous allons créer un fichier de règles temporaire qui ajoute le chiffre 1 à chaque mot.

echo '$1' > temp_rule.txt

Maintenant, lancez Hashcat avec cette règle contre notre wordlist.txt. L'indicateur --force est utilisé pour faire fonctionner Hashcat même s'il détecte un environnement non pris en charge, comme une machine virtuelle (VM).

hashcat --force --stdout wordlist.txt -r temp_rule.txt

Vous devriez voir le mot de votre liste avec 1 ajouté à la fin :

password1

Ensuite, testons la règle d'ajout de préfixe. Nous allons créer une règle pour ajouter le caractère A en préfixe.

echo '^A' > temp_rule.txt

Lancez à nouveau Hashcat avec cette nouvelle règle :

hashcat --force --stdout wordlist.txt -r temp_rule.txt

La sortie affichera maintenant le caractère A au début du mot :

Apassword

N'hésitez pas à expérimenter avec d'autres caractères pour consolider votre compréhension. Une fois terminé, vous pouvez supprimer le fichier temporaire.

rm temp_rule.txt

Créer un nouveau fichier de règles personnalisé

Dans cette étape, vous allez créer un nouveau fichier vide qui contiendra toutes les règles personnalisées pour notre attaque. Il est d'usage de donner aux fichiers de règles une extension .rule pour plus de clarté.

Nous allons créer un fichier nommé labex.rule dans votre répertoire de travail actuel, ~/project. Vous pouvez créer un fichier vide facilement en utilisant la commande touch.

Exécutez la commande suivante dans votre terminal :

touch labex.rule

Pour confirmer que le fichier a été créé avec succès, vous pouvez lister le contenu du répertoire en utilisant la commande ls.

ls

Vous devriez voir labex.rule listé dans la sortie, ainsi que les fichiers hashes.txt et wordlist.txt.

hashes.txt  labex.rule  wordlist.txt

Vous disposez maintenant d'un fichier dédié prêt à accueillir vos règles personnalisées.

Ajouter une règle pour capitaliser la première lettre 'c'

Dans cette étape, vous allez ajouter votre première règle au fichier labex.rule. Un schéma de mot de passe très courant consiste à capitaliser la première lettre d'un mot. Hashcat dispose d'une règle spécifique pour cela :

  • c : Capitalise la première lettre du mot et met toutes les autres lettres en minuscules.

Nous allons ajouter cette règle à notre fichier labex.rule. La commande echo combinée à une redirection simple > est un moyen rapide d'écrire du contenu dans un fichier, en écrasant tout ce qui s'y trouvait précédemment.

echo 'c' > labex.rule

Maintenant, testons notre nouveau fichier de règles pour voir son effet. Nous utiliserons à nouveau l'option --stdout pour prévisualiser la sortie.

hashcat --force --stdout wordlist.txt -r labex.rule

La sortie devrait être le mot password avec la première lettre capitalisée, comme spécifié par la règle c.

Password

Vous avez créé et testé avec succès votre première règle personnalisée.

Ajouter une règle pour ajouter une année ' $2 $0 $2 $4'

Dans cette étape, vous allez améliorer votre règle pour la rendre plus complexe. Vous pouvez combiner plusieurs commandes de règle sur une seule ligne pour créer des candidats de mot de passe plus spécifiques. Nous allons modifier notre règle pour qu'elle ne se contente pas de capitaliser la première lettre, mais qu'elle ajoute également une année, par exemple, 2024.

Pour ajouter un caractère spécifique, vous utilisez la commande $ suivie du caractère. Par exemple, $2 ajoute le chiffre 2. Pour construire la chaîne 2024, nous devons ajouter 2, puis 0, puis 2, puis 4.

La règle combinée ressemblera à ceci : c $2 $0 $2 $4. Cela indique à Hashcat d'effectuer d'abord la capitalisation (c), puis d'ajouter les caractères spécifiés dans l'ordre.

Mettons à jour le fichier labex.rule avec cette nouvelle règle plus puissante.

echo 'c $2 $0 $2 $4' > labex.rule

Maintenant, testez le fichier de règles mis à jour pour voir le résultat des commandes combinées.

hashcat --force --stdout wordlist.txt -r labex.rule

La sortie devrait maintenant être le mot capitalisé suivi de l'année 2024.

Password2024

Cela démontre comment vous pouvez enchaîner des règles pour créer des schémas de mots de passe complexes et ciblés.

Tester le fichier de règles personnalisé lors d'une attaque d'échantillon

Dans cette étape, vous utiliserez votre fichier de règles personnalisé complété, labex.rule, pour effectuer une véritable attaque de cassage de mot de passe. Nous ciblerons le hachage MD5 d'échantillon fourni dans le fichier hashes.txt.

La commande pour l'attaque spécifiera le type de hachage, le mode d'attaque, le fichier de hachage, la liste de mots et, enfin, notre fichier de règles personnalisé.

  • -m 0 : Spécifie que le type de hachage est MD5.
  • -a 0 : Spécifie que le mode d'attaque est une attaque "Straight" (directe) ou par dictionnaire.
  • hashes.txt : Le fichier contenant le(s) hachage(s) à casser.
  • wordlist.txt : Le fichier dictionnaire à utiliser comme base.
  • -r labex.rule : Spécifie le fichier de règles personnalisé à appliquer à la liste de mots.

Exécutez la commande suivante pour lancer l'attaque :

hashcat --force -m 0 -a 0 hashes.txt wordlist.txt -r labex.rule

Hashcat démarrera, appliquera la règle c $2 $0 $2 $4 au mot password, générera Password2024, le hachera et le comparera au hachage dans hashes.txt. Il trouvera une correspondance et rapportera le mot de passe cassé.

Une fois l'attaque terminée (elle devrait être très rapide), vous pouvez afficher les mots de passe cassés en utilisant l'option --show.

hashcat --force -m 0 --show hashes.txt

La sortie affichera le hachage suivi de son mot de passe en clair cassé.

a915550249347678553a332349443648:Password2024

Félicitations, vous avez créé avec succès une règle personnalisée et l'avez utilisée pour casser un mot de passe !

Résumé

Dans ce laboratoire, vous avez acquis les compétences essentielles pour créer des règles personnalisées dans Hashcat. Vous avez commencé par comprendre la syntaxe de base pour ajouter des caractères au début (^) et à la fin ($) d'un mot. Vous avez ensuite créé votre propre fichier de règles, labex.rule, et l'avez rempli avec des règles de plus en plus complexes.

Vous avez réussi à écrire une règle pour capitaliser la première lettre d'un mot (c), puis vous l'avez améliorée en chaînant des commandes pour ajouter une année ($2 $0 $2 $4). Enfin, vous avez appliqué cette règle personnalisée dans un scénario d'attaque pratique, réussissant à casser un hachage MD5.

Ces connaissances sont un tremplin pour maîtriser le puissant moteur de règles de Hashcat, vous permettant de créer des stratégies de cassage de mots de passe hautement ciblées et efficaces.