Linux comme tout système d’exploitation stocke les données utilisateurs.
Les mots de passe le sont sous la forme de hash dans le fichier /etc/shadow.
En récupérant ces derniers, on peut tenter de cracker le mot de passe de l’utilisateur root ou autre.
Cet article vous guide pour cracker le mot de passe d’un utilisateur Linux.

Table des matières
Comment cracker le mot de passe d’un utilisateur Linux
Le fichier /etc/shadow
Dans Linux, les hashs des utilisateurs sont stockés dans le fichier /etc/shadow.
Ainsi, pour pouvoir récupérer le hash, il faut avoir un accès à ce dernier.
Les permissions font que seuls l’utilisateur root peut accéder à ce dernier.
-rw-r----- 1 root shadow 962 avril 16 23:58 /etc/shadow
Ainsi la récupération ne peut se faire que si :
- Une mauvaise permission du fichier qui permet à un utilisateur tiers de le lire ou le rendre accessible par une vulnérabilité sur une application.
- Une vulnérabilité qui permet l’élévation de privilèges et donne accès temporairement à ce fichier
- En bootant depuis un Live USB si on a un accès physique à la machine
La structure du fichier est assez simple, on a la liste des utilisateurs avec le mot de passe haché et les dates de changements de mot de passe, etc.
Le $ indique le type de HASH :
- $1$ = MD5 hashing algorithm.
- $2$ =Blowfish Algorithm.
- $2a$=eksblowfish Algorithm
- $5$ =SHA-256 Algorithm
- $6$ =SHA-512 Algorithm
Vous pouvez le confirmer en vérifiant la méthode utilisée dans /etc/login.defs :
grep ^ENCRYPT_METHOD /etc/login.defs
Cracker le hash d’un utilisateur Linux
Il existe deux méthodes d’attaque bruteforce pour cracker une empreinte :
- Attaque par dictionnaire : ce dernier est une suite de mot qui sera testé comme mot de passe candidat. La qualité de l’attaque dépend de la qualité du dictionnaire. Cela ne fonctionnera que si la personne utilise un mot de passe courant se trouvant dans le dictionnaire.
- Attaque incrémentale : Cela consiste à tenter des caractères aléatoires pour couvrir toutes les combinaisons et tenter ainsi de trouver le mot de passe.
hashcat
hashcat est un outil très connu pour cracker des hashs et empreinte.
Pour une attaque bruteforce incrémentale :
hashcat64 --force -m 1800 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?u?d $6$ZH6Jrdc1Mm1e21hS$mitIkKAZaQ67q2doq/Hh6PSKqeKgWEe1Wa2vpuSEeG2PJMFOnjv3nLljIc9ucuSvDpm0cgKRGq9/CSeuf2IYx1 ?a?a?a?a?a?a?a?a?a
Pour une attaque bruteforce par dictionnaire :
hashcat64.exe -a 0 -m 0 $6$ZH6Jrdc1Mm1e21hS$mitIkKAZaQ67q2doq/Hh6PSKqeKgWEe1Wa2vpuSEeG2PJMFOnjv3nLljIc9ucuSvDpm0cgKRGq9/CSeuf2IYx1 combined_seclists_password_list.txt
Le SHA512 est particulièrement long.
Par exemple sur un Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz sans optimisation, les combinaisons à 4 caractères prennent plus d’une journée.
Avec une carte graphique Nvidia, on est à 2h pour environ 9000 hash par secondes.
John the Ripper
Cet outil de crackage de mot de passe fonctionne aussi avec plusieurs modes :
- Single Crack Mode : créé un dictionnaire à partir des données de /etc/passwd
- Wordlist Crack Mode : permet de cracker un mot de passe à partir d’un dictionnaire
- Incremental Mode : lance l’attaque à partir d’une incrémentation de caractères pour tester toutes les combinaisons possibles.
Voici quelques syntaxe de John the ripper.
Pour lancer une attaque bruteforce par dictionnaire :
john --incremental --format=raw-sha512 hash.txt
ou une attaque bruteforce par dictionnaire :
john --wordlist=dictionnaire.txt --format=raw-sha512 hash.txt