Les hashs ou empreintes sont très utilisés notamment pour stocker les mots de passe.
Les sites internet, les systèmes d’exploitation comme Linux ou Windows en utilisent aussi pour stocker les mots de passe des utilisateurs.
hashcat est un utilitaire très populaire pour cracker des empreintes et hashs.
Dans cet article, nous allons voir comment cracker des hashs avec des hashcat.
Table des matières
La syntaxe de hashcat
hashcat permet donc de cracker un hash à partir d’un dictionnaire ou en testant successivement une suite de caractère.
Il permet de casser et cracker des hash.
Vous pouvez télécharger hashcat depuis ce lien : Télécharger hashcat
Ce dernier s’utilise en ligne de commandes.
Il faut donc ouvrir une invite de commandes.
Il existe énormément d’option.
Pour obtenir l’aide :
hashcat64.exe -h
L’aide complète est disponible depuis ce lien.
Je vous conseille de l’ouvrir en parallèle afin d’avoir la liste des paramètres de hashcat.
Les types d’attaques
Le paramètre a définit le type d’attaque.
Ainsi on peut faire des attaques par bruteforce ou par dictionnaire.
- 0 Straight (Attaque par dictionnaire) – essayer tous les mots d’une liste; également appelé mode «straight» (mode d’attaque 0, -a 0)
- 1 – Combination (Attaque combinée) – concaténation de mots de plusieurs listes de mots (mode 1)
- 2 Brute-force (Attaque par force brute et attaque par masque) – essayer tous les combinaisons des jeux de caractères donnés, par position (mode 3)
- 6 Hybrid -Attaque hybride) – combinant listes de mots + masques (mode 6) et masques + listes de mots (mode 7); peut également être fait avec des règles0 | Straight
Syntaxe d’une attaque par dictionnaire
Le dictionnaire est un fichier avec une liste de mot de passe candidat.
hashcat teste chacun d’eux dans l’ordre.
Pour que l’attaque fonctionne, il faut que le mot de passe se trouve dans le dictionnaire.
Vous pouvez en télécharger de ce lien : Télécharger dictionnaire
Par exemple ci-dessous, on effectue une attaque par dictionnaire basique :
hashcat64.exe -a 0 -m 0 md5_hashes.txt combined_seclists_password_list.txt -O
- md5_hashes.txt est le fichier contenant les MD5 à cracker
- combined_seclists_password_list.txt est le dictionnaire
Mais on peut utiliser plusieurs dictionnaire, par exemple ici on combine les caractères minuscules et majuscules.
Il faut alors utiliser le paramètre -a 1.
Cette attaque utilise mes deux dictionnaires (j’ai utilisé le même deux fois) et en ajoute également un! (-k “$!”) à droite du deuxième dictionnaire. Donc, si j’ai le mot combiné candidat de ThePassword, le -k “$!” le transforme en ThePassword !.
De même, vous pouvez utiliser l’option -j pour ajouter des caractères à gauche du deuxième dictionnaire. Par exemple, si j’avais également ajouté -j “$ &”, mon mot candidat serait Le & Mot de passe !.
hashcat64.exe -a 1 -m 0 md5_hashes.txt combined_seclists_password_list_caps.txt combined_seclists_password_list_caps.txt -k "$!" -O
Syntaxe d’une attaque par bruteforce par masque
Voici un bruteforce par masque.
hashcat --force --hwmon-temp-abort=100 -m 1000 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?d ca76a276340f0291e1cc8ea7277fc571 ?1?1?1?1?1?1?1?1?1
Voici les explications des paramètres utilisés :
- hashcat est le nom du fichier exécutable. Sous Windows, il peut s’agir de hashcat64.exe.
- –force signifie ignorer les avertissements
- –hwmon-temp-abort=100 signifie définir la température maximale, après laquelle l’attaque de force brute sera interrompue, de 100 degrés Celsius
- -m 1000 signifie le type de hachage NTLM
- -D 1,2 signifie utiliser à la fois le processeur central et la carte vidéo pour la force brute
- -a 3 signifie attaque au masque
- -i signifie augmenter progressivement le nombre de caractères dans les mots de passe générés
- –increment-min 1 signifie commencer avec une longueur de masque égale à un
- –increment-max 10 signifie terminer la recherche avec une longueur de masque de dix
- -1? L? D signifie le jeu de caractères personnalisé numéro 1, il comprend les petites lettres latines (? L) et les chiffres (? D)
- ca76a276340f0291e1cc8ea7277fc571 est le hachage à cracker
- ? 1? 1? 1? 1? 1? 1? 1? 1? 1 est un masque d’un jeu de caractères personnalisé
Le masque de caractère est expliqué sur la page suivante :
- ?l = abcdefghijklmnopqrstuvwxyz
- ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
- ?d = 0123456789
- ?h = 0123456789abcdef
- ?H = 0123456789ABCDEF
- ?s = «space»!”#$%&'()*+,-./:;<=>?@[\]^_`{|}~
- ?a = ?l?u?d?s
- ?b = 0x00 – 0xff
Ci-dessous le masque particulier tentera de forcer un mot de passe à 8 caractères :
- où le premier caractère (? U) est une lettre majuscule,
- les trois caractères suivants (? L? L? L) sont des lettres minuscules
- et les quatre derniers caractères (? D? d? d? d) sont des chiffres
hashcat64.exe -a 3 -m 0 example_md5_hashes.txt ?u?l?l?l?d?d?d?d
A partir de là, l’attaque et le crack s’effectue.
hashcat affiche la combinaison de caractère qu’il attaque.
Ci-dessous, on est sur les combinaisons de longueurs 3 caractères sur un hash en SHA512.
- Le temps estimé s’affiche alors.
- Progress affiche la progression sur le nombre de combinaison total
hashcat : cracker des hashs, empreintes (MD5, SHA1, SHA256)
Ici on effectuera que des attaques par bruteforce pour casser ces empreintes.
Il s’agit des empreintes et hash pour le mot malekal.
MD5
Pour cracker un MD5 avec hashcat, on utilise -m 0.
Pour casser le MD5 malekal, cela prend 2 minutes.
hashcat64 -m 0 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?u?d 56622ed8679bfec49a10b08ba7b5c2664148c8fb ?1?1?1?1?1?1?1?1?1
En vidéo :
SHA1
On utilise le paramètre -m 100 pour casser un SHA1
hashcat64 -m 100 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?u?d 56622ed8679bfec49a10b08ba7b5c2664148c8fb ?1?1?1?1?1?1?1?1?1
SHA256
On utilise le paramètre -m 1400
hashcat64 -m 1400 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?u?d b0c83cbeff5e6e61cfc00eb4c1802289c9514d5328d718484a4eb195266e14a4 ?1?1?1?1?1?1?1?1?1
Il faut environ 20 minutes pour casser et cracker ce SHA256.
SHA512
Généralement utilisé pour stocker les mots de passe des utilisateurs Linux.
Il faut alors utiliser l’option -m 1800.
hashcat --force -m 1800 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?u?d hash.txt ?a?a?a?a?a?a?a?a?a
NTLM HASH
Enfin on peut aussi casser les NTLM Hash.
Ce sont les empreintes numériques utilisées par Windows pour stocker les mots de passe des comptes utilisateurs.
Cela sans le Security Account Manager (SAM).
Pour cela, on utilise le paramètre -m 1000 de hashcat.
Reportez-vous à l’article suivant.
La vidéo qui va avec où on utilise hashcat en seconde partie.