Menu Fermer

Comment cracker le mot de passe d’un utilisateur Linux

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.

Comment cracker le mot de passe d'un utilisateur Linux
Comment cracker le mot de passe d’un utilisateur Linux

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 fichier /etc/shadow stocke les mots de passe haché sur Linux
Le fichier /etc/shadow stocke les mots de passe haché sur Linux

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
Vérifier l'algorithme utilisé pour hacher les mots de passe Linux
Les distributions actuelles utilisent en général l’algorithme SHA-512.

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.

Cracker le mot de passe d'un utilisateur Linux en SH512

Avec une carte graphique Nvidia, on est à 2h pour environ 9000 hash par secondes.

Cracker le mot de passe d'un utilisateur Linux en SH512

John the Ripper

Cet outil de crackage de mot de passe fonctionne aussi avec plusieurs modes :

  1. Single Crack Mode : créé un dictionnaire à partir des données de /etc/passwd
  2. Wordlist Crack Mode : permet de cracker un mot de passe à partir d’un dictionnaire
  3. 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

Liens