top of page
cloud-vds.png
  • 2 Base de données

  • 2 VPS AMD

  • 4 instances ARM

  • Stockage 100 Go

  • 50k appels API

theme-light-dark-white.png
Photo du rédacteurNeo is calling you

Comment cracker le hachage des mots de passes avec Haschat sur Kali-Linux

Dernière mise à jour : 7 mai

Craquer les mots de passe est une compétence importante à apprendre si vous faites des tests d'intrusion. C'est pourquoi nous allons voir ensemble comment cracker des hachages sous Linux en utilisant Hashcat.



Hashcat est un outil puissant et polyvalent qui utilise le brute force sur les informations d'identification stockées à l'aide de hachages connus en menant divers modes d'attaques. L'article vous guidera sur la prise en main cet utilitaire de craquage de mot de passe utilisé par les pentesters, les administrateurs système, les espions ou les hackers pour trouver des mots de passe.

 

Rappel sur le Hachage


Le hachage est une fonction mathématique unidirectionnelle ou un identifiant unique qui renvoie une sortie de longueur fixe, quelle que soit la taille/longueur de l'entrée. Il s'agit donc d'un processus irréversible qui ne nécessite pas de clé comme dans le chiffrement pour déchiffrer la valeur de hachage.


L'objectif le plus courant du hachage est d'assurer l'intégrité des données contre la falsification pendant la transmission des données. Les propriétés du hachage sont les suivantes :

  • Un calcul rapide

  • Les bons algorithmes évitent la même sortie pour différentes entrées

  • De petits changements dans l'entrée influencent considérablement la valeur de hachage de sortie

 

Pourquoi utiliser Hashcat ?


Hashcat est un utilitaire multithread qui vous permet de configurer le nombre de threads et de limiter l'exécution en fonction de la priorité. Il prend en charge plus de 300 algorithmes de hachage tels que MD4, MD5, SHA1, SHA512, bcrypt, HMAC-SHA512, NTLM, MySQL, WHIRLPOOL, entre autres. Il est disponible pour tous les types de systèmes d'exploitation, y compris Windows, Linux, Unix et BSD.


Hashcat offre plusieurs modes d'attaque pour craquer le hachage


Voici une explication de certaines attaques que Hashcat utilise pour déchiffrer les mots de passe hachés :

  1. Attaque par force brute : Une attaque par force brute utilise toutes les combinaisons de caractères possibles pour déterminer le mot de passe exact. Cependant, il a une limitation de la longueur maximale du mot de passe et du nombre de caractères. De plus, un niveau avancé d'attaque par force brute peut également optimiser le temps en faisant des hypothèses de complexité. Par exemple, une technique avancée de force brute peut supposer que le premier caractère est plus susceptible d'être en majuscule et que les chiffres sont plus susceptibles d'apparaître à la fin d'un mot de passe, etc.

  2. Attaque par dictionnaire : Une attaque par dictionnaire utilise une liste précalculée de mots de passe en fonction des informations recueillies autour de la cible ou d'un modèle observé parmi les utilisateurs. Par conséquent, il prend certains mots de passe les plus couramment utilisés et leur ajoute quelques permutations pour augmenter la portée.

  3. Attaque hybride : L'hybride est une combinaison des attaques décrites ci-dessus, car il vérifie si le mot de passe est "craquable" via une attaque par dictionnaire et passe à la technique de la force brute, si ce n'est pas possible.

 

Comment installer hashcat sur Linux


Hashcat est disponible par défaut dans Kali Linux. Pour l'installer sur Ubuntu et Debian :

sudo apt update
sudo apt install hashcat

Après l'installation, utilisez la commande help pour afficher les options disponibles :

hashcat --help
 

Comment déchiffrer un mot de passe via une attaque par dictionnaire


1. Créez un dictionnaire avec des hachages MD5


Pour commencer cette démonstration, nous allons créer plusieurs entrées de hachage contenant plusieurs mots de passe.


En détail, ils seront ensuite sortis dans un fichier appelé "hashes_list.txt". Chaque commande doit être exécutée dans le terminal, comme illustré ci-dessous :

echo -n "password" | md5sum | tr -d " -">> hashes_list.txt
echo -n "HELLO" | md5sum | tr -d " -">> hashes_list.txt
echo -n "MYSECRET" | md5sum | tr -d " -">> hashes_list.txt
echo -n "Test1234" | md5sum | tr -d " -">> hashes_list.txt
echo -n "P455w0rd" | md5sum | tr -d " -">> hashes_list.txt
echo -n "GuessMe" | md5sum | tr -d " -">> hashes_list.txt
echo -n "S3CuReP455Word" | md5sum | tr -d " -">> hashes_list.txt

L' option -n supprime la nouvelle ligne ajoutée à la fin de "Password". Ceci est important car nous ne voulons pas que les nouveaux caractères de ligne soient hachés avec notre mot de passe. La partie « tr –d ' -' » supprime tous les caractères qui sont un espace ou un trait d'union de la sortie.


2. Vérifiez les hachages de mot de passe


Pour ce faire, nous devons taper la ligne de commande suivante dans le terminal :

cat hashes_list.txt

Voici la sortie ci-dessous :

root@kali:# cat hashes_list.txt
dc647eb65e6711e155375218212b3964
eb61eead90e3b899c6bcbe27ac581660
958152288f2d2303ae045cffc43a02cd
2c9341ca4cf3d87b9e4eb905d6a3ec45
75b71aa6842e450f12aca00fdf54c51d
031cbcccd3ba6bd4d1556330995b8d08
b5af0b804ff7238bce48adef1e0c213f

3. Démarrez Hashcat dans Kali Linux


Hashcat peut être démarré sur la console Kali avec la ligne de commande suivante :

hashcat -h

Certaines des options de hashcat les plus importantes sont -m (le type de hachage) et -a (mode d'attaque). En général, nous devons utiliser les deux options dans la plupart des tentatives de piratage de mot de passe lors de l'utilisation de Hashcat.


Hashcat a également des règles spécialement conçues à utiliser sur un fichier de liste de mots. La liste des caractères peut être personnalisée pour déchiffrer le ou les mots de passe.


Hashcat fournit de nombreuses options pour les hachages de mot de passe qui peuvent être piratés. Cela peut être un peu plus bas après la commande.



4. Choisissez le dictionnaire de mots


Kali Linux contient de nombreuses listes de mots intégrées. Pour les trouver, utilisez la ligne de commande suivante : (anciennement locate wordlists)

wordlists

Nous utiliserons la liste de mots « rockyou » à l'emplacement suivant : /usr/share/wordlists/rockyou.txt.gz


L'extension .gz indique que la liste est compressé. Entrons la commande gzip pour la décompresser, comme ceci :

sudo gzip -d /usr/share/wordlists/rockyou.txt.gz

5. Craquer les hachages


Dans la dernière étape, nous pouvons maintenant commencer à craquer les hachages contenus dans le fichier hashes_list.txt. Nous utiliserons la ligne de commande suivante, comme illustré ci-dessous :


hashcat -m 0 -a 0 -o cracked.txt hashes_list.txt /usr/share/wordlists/rockyou.txt

L'algorithme de hachage est sélectionné avec l'option -m, le 0 fait référence au md5

Les résultats seront enregistrés dans le fichier cracked.txt spécifié avec l'option -o

L'option -a permet de définir le type d'attaque utilisé.


Craquer les hachages à partir du fichier /etc/shadow sous Linux


Le fichier /etc/shadow stocke les valeurs hachées de tous les mots de passe des utilisateurs sous Linux. C'est un fichier critique avec des autorisations d'accès strictes ; il est et ne doit être accessible que par le compte root.


Par conséquent, si vous rencontrez un fichier /etc/shadow lisible via n'importe quel compte d'utilisateur normal, vous pouvez obtenir la valeur de hachage du compte root et déchiffrer le hachage du mot de passe à l'aide de l'utilitaire Hashcat.


À des fins de démonstration, nous allons passer au compte root et créer un nouveau compte utilisateur alice pour comprendre le fonctionnement de Hashcat :

sudo su
useradd -c "Bob" bob

Créons un mot de passe à l'aide de la commande passwd :

passwd alice

Vérifions la valeur du mot de passe haché dans le fichier /etc/shadow à l'aide de la commande cut qui permettra d'extraire directement le champ recherché :

tail /etc/shadow

Le hachage dans la sortie ci-dessus commence à partir de " bob: ".


La valeur $y$ indique qu'il s'agit de yescrypt, un schéma de hachage récent utilisé par défaut dans Debian 11, Fedora 35+, et Kali Linux 2021.1+. Il est supporté par Fedora 29+ et Ubuntu 20.04+, et est aussi recommandé pour les nouveaux mots de passes.


yescrypt n'est pour le moment pas disponible dans Hashcat alors il faudra essayer avec un autre algorithme de hachage ou une autre machine Linux pour réaliser votre test.


Historiquement, l'utilisation du SHA-512


Vous trouverez ci dessous un exemple de hachage avec SHA-512 qui est très utilisé et fut d'ailleurs la méthode par défaut sur Kali-Linux avant yescrypt.


La valeur $6$ indique un hachage de mot de passe de type 6 (SHA-512, plusieurs tours). Les caractères après $6$, jusqu'au prochain $, sont le SALT.

Dans l'exemple, le SALT est CqiOcwyE


Vous pouvez vous rendre sur le site Web hashcat pour identifier le type de fonction de hachage et la valeur de référence associée. Le mode de hachage SHA512 est généralement identifié par le terme $6$ et a une valeur de référence de 1800.

Posts similaires

Voir tout

Comments


Comment cracker le hachage des mots de passes avec Haschat sur Kali-Linux

Craquer les mots de passe est une compétence importante à apprendre si vous faites des tests d'intrusion. C'est pourquoi nous allons voir ensemble comment cracker des hachages sous Linux en utilisant Hashcat.


Rappel sur le Hachage

Pourquoi utiliser Hashcat

Comment installer Hashcat sur Linux

Comment déchiffrer un mot de passe via une attaque par dictionnaire

Craquer les hachages à partir du fichier /etc/shadow


Hashcat est un outil puissant et polyvalent qui utilise le brute force sur les informations d'identification stockées à l'aide de hachages connus en menant divers modes d'attaques. L'article vous guidera sur la prise en main cet utilitaire de craquage de mot de passe utilisé par les pentesters, les administrateurs système, les espions ou les hackers pour trouver des mots de passe.

 

Rappel sur le Hachage


Le hachage est une fonction mathématique unidirectionnelle ou un identifiant unique qui renvoie une sortie de longueur fixe, quelle que soit la taille/longueur de l'entrée. Il s'agit donc d'un processus irréversible qui ne nécessite pas de clé comme dans le chiffrement pour déchiffrer la valeur de hachage.


L'objectif le plus courant du hachage est d'assurer l'intégrité des données contre la falsification pendant la transmission des données. Les propriétés du hachage sont les suivantes :

  • Un calcul rapide

  • Les bons algorithmes évitent la même sortie pour différentes entrées

  • De petits changements dans l'entrée influencent considérablement la valeur de hachage de sortie

 

Pourquoi utiliser Hashcat ?


Hashcat est un utilitaire multithread qui vous permet de configurer le nombre de threads et de limiter l'exécution en fonction de la priorité. Il prend en charge plus de 300 algorithmes de hachage tels que MD4, MD5, SHA1, SHA512, bcrypt, HMAC-SHA512, NTLM, MySQL, WHIRLPOOL, entre autres. Il est disponible pour tous les types de systèmes d'exploitation, y compris Windows, Linux, Unix et BSD.


Hashcat offre plusieurs modes d'attaque pour craquer le hachage


Voici une explication de certaines attaques que Hashcat utilise pour déchiffrer les mots de passe hachés :

  1. Attaque par force brute : Une attaque par force brute utilise toutes les combinaisons de caractères possibles pour déterminer le mot de passe exact. Cependant, il a une limitation de la longueur maximale du mot de passe et du nombre de caractères. De plus, un niveau avancé d'attaque par force brute peut également optimiser le temps en faisant des hypothèses de complexité. Par exemple, une technique avancée de force brute peut supposer que le premier caractère est plus susceptible d'être en majuscule et que les chiffres sont plus susceptibles d'apparaître à la fin d'un mot de passe, etc.

  2. Attaque par dictionnaire : Une attaque par dictionnaire utilise une liste précalculée de mots de passe en fonction des informations recueillies autour de la cible ou d'un modèle observé parmi les utilisateurs. Par conséquent, il prend certains mots de passe les plus couramment utilisés et leur ajoute quelques permutations pour augmenter la portée.

  3. Attaque hybride : L'hybride est une combinaison des attaques décrites ci-dessus, car il vérifie si le mot de passe est "craquable" via une attaque par dictionnaire et passe à la technique de la force brute, si ce n'est pas possible.

 

Comment installer hashcat sur Linux


Hashcat est disponible par défaut dans Kali Linux. Pour l'installer sur Ubuntu et Debian :

sudo apt update
sudo apt install hashcat

Après l'installation, utilisez la commande help pour afficher les options disponibles :

hashcat --help
 

Comment déchiffrer un mot de passe via une attaque par dictionnaire


1. Créez un dictionnaire avec des hachages MD5


Pour commencer cette démonstration, nous allons créer plusieurs entrées de hachage contenant plusieurs mots de passe.


En détail, ils seront ensuite sortis dans un fichier appelé "hashes_list.txt". Chaque commande doit être exécutée dans le terminal, comme illustré ci-dessous :

echo -n "password" | md5sum | tr -d " -">> hashes_list.txt
echo -n "HELLO" | md5sum | tr -d " -">> hashes_list.txt
echo -n "MYSECRET" | md5sum | tr -d " -">> hashes_list.txt
echo -n "Test1234" | md5sum | tr -d " -">> hashes_list.txt
echo -n "P455w0rd" | md5sum | tr -d " -">> hashes_list.txt
echo -n "GuessMe" | md5sum | tr -d " -">> hashes_list.txt
echo -n "S3CuReP455Word" | md5sum | tr -d " -">> hashes_list.txt

L' option -n supprime la nouvelle ligne ajoutée à la fin de "Password". Ceci est important car nous ne voulons pas que les nouveaux caractères de ligne soient hachés avec notre mot de passe. La partie « tr –d ' -' » supprime tous les caractères qui sont un espace ou un trait d'union de la sortie.


2. Vérifiez les hachages de mot de passe


Pour ce faire, nous devons taper la ligne de commande suivante dans le terminal :

cat hashes_list.txt

Voici la sortie ci-dessous :

root@kali:# cat hashes_list.txt
dc647eb65e6711e155375218212b3964
eb61eead90e3b899c6bcbe27ac581660
958152288f2d2303ae045cffc43a02cd
2c9341ca4cf3d87b9e4eb905d6a3ec45
75b71aa6842e450f12aca00fdf54c51d
031cbcccd3ba6bd4d1556330995b8d08
b5af0b804ff7238bce48adef1e0c213f

3. Démarrez Hashcat dans Kali Linux


Hashcat peut être démarré sur la console Kali avec la ligne de commande suivante :

hashcat -h

Certaines des options de hashcat les plus importantes sont -m (le type de hachage) et -a (mode d'attaque). En général, nous devons utiliser les deux options dans la plupart des tentatives de piratage de mot de passe lors de l'utilisation de Hashcat.


Hashcat a également des règles spécialement conçues à utiliser sur un fichier de liste de mots. La liste des caractères peut être personnalisée pour déchiffrer le ou les mots de passe.


Hashcat fournit de nombreuses options pour les hachages de mot de passe qui peuvent être piratés. Cela peut être un peu plus bas après la commande.



4. Choisissez le dictionnaire de mots


Kali Linux contient de nombreuses listes de mots intégrées. Pour les trouver, utilisez la ligne de commande suivante : (anciennement locate wordlists)

wordlists

Nous utiliserons la liste de mots « rockyou » à l'emplacement suivant : /usr/share/wordlists/rockyou.txt.gz


L'extension .gz indique que la liste est compressé. Entrons la commande gzip pour la décompresser, comme ceci :

sudo gzip -d /usr/share/wordlists/rockyou.txt.gz

5. Craquer les hachages


Dans la dernière étape, nous pouvons maintenant commencer à craquer les hachages contenus dans le fichier hashes_list.txt. Nous utiliserons la ligne de commande suivante, comme illustré ci-dessous :


hashcat -m 0 -a 0 -o cracked.txt hashes_list.txt /usr/share/wordlists/rockyou.txt

L'algorithme de hachage est sélectionné avec l'option -m, le 0 fait référence au md5

Les résultats seront enregistrés dans le fichier cracked.txt spécifié avec l'option -o

L'option -a permet de définir le type d'attaque utilisé.


Craquer les hachages à partir du fichier /etc/shadow sous Linux


Le fichier /etc/shadow stocke les valeurs hachées de tous les mots de passe des utilisateurs sous Linux. C'est un fichier critique avec des autorisations d'accès strictes ; il est et ne doit être accessible que par le compte root.


Par conséquent, si vous rencontrez un fichier /etc/shadow lisible via n'importe quel compte d'utilisateur normal, vous pouvez obtenir la valeur de hachage du compte root et déchiffrer le hachage du mot de passe à l'aide de l'utilitaire Hashcat.


À des fins de démonstration, nous allons passer au compte root et créer un nouveau compte utilisateur alice pour comprendre le fonctionnement de Hashcat :

sudo su
useradd -c "Bob" bob

Créons un mot de passe à l'aide de la commande passwd :

passwd alice

Vérifions la valeur du mot de passe haché dans le fichier /etc/shadow à l'aide de la commande cut qui permettra d'extraire directement le champ recherché :

tail /etc/shadow

Le hachage dans la sortie ci-dessus commence à partir de " bob: ".


La valeur $y$ indique qu'il s'agit de yescrypt, un schéma de hachage récent utilisé par défaut dans Debian 11, Fedora 35+, et Kali Linux 2021.1+. Il est supporté par Fedora 29+ et Ubuntu 20.04+, et est aussi recommandé pour les nouveaux mots de passes.


yescrypt n'est pour le moment pas disponible dans Hashcat alors il faudra essayer avec un autre algorithme de hachage ou une autre machine Linux pour réaliser votre test.


Historiquement, l'utilisation du SHA-512


Vous trouverez ci dessous un exemple de hachage avec SHA-512 qui est très utilisé et fut d'ailleurs la méthode par défaut sur Kali-Linux avant yescrypt.


La valeur $6$ indique un hachage de mot de passe de type 6 (SHA-512, plusieurs tours). Les caractères après $6$, jusqu'au prochain $, sont le SALT.

Dans l'exemple, le SALT est CqiOcwyE


Vous pouvez vous rendre sur le site Web hashcat pour identifier le type de fonction de hachage et la valeur de référence associée. Le mode de hachage SHA512 est généralement identifié par le terme $6$ et a une valeur de référence de 1800.

Rappel sur le Hachage

Pourquoi utiliser Hashcat ?

Comment installer hashcat sur Linux

Comment déchiffrer un mot de passe via une attaque par dictionnaire

Craquer les hachages à partir du fichier /etc/shadow sous Linux

bottom of page