# Casser un hash de mot de passe

*Par Louis “Nullptr” Crespin*

# Rappel : stockage mots de passe

**Jamais** en clair dans une base de données

Hash : MD5, SHA-1, SHA-256, SHA-3, Argon2id, …

Salt, Pepper

# L’outil : Hashcat

`sudo apt install hashcat`

* Attaque par force brute
* Attaque par dictionnaire
* Attaque mixte
* …

Paramètres :

* `-a n` : type d’attaque.
  * `0` : par dictionnaire
  * `3` : par force brute
  * `6` : mixte
* `-m n` : type de hash
  * `0` : md5
  * sinon RTFM
* fichier contenant les hash de mot de passe (un par ligne)
* fichier dictionnaire (s’il y a lieu)
* motif
* `-O` : optimise

## Dictionnaire

liste de mots de passe candidats

Trouver des listes toute faites (\~100Go)

On peut le passer en pipe

## Motif

`a` pour caractère quelconque

`d` pour chiffre

ex : `?d?d?d?d` pour une année

# Exemples

## Date

`hashcat -a 3 -m 0 hash.txt "?d?d?d?d"`

## Dictionnaire + motif

mot de passe : `toto2005`

`hashcat -a 6 -m 0 hash.txt candidates.txt "?d?d?d?d"`


# Défis

## bruteforce

6 caractères de long

## dict

combinaison de 3 mots parmi toto, titi, tutu, tata, séparés par ‘-’, ‘_’, ou ‘ ‘

[challenges.zip 284](https://notes.iiens.net/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2E5ODM5ZjZmLTE5NDctNDJkYy04NGJkLWVjN2M2YWNjMmU2Yy9iYzVjMmI1Mi0yZDgzLTQ0NTAtYWE1Ny0yODc2MTFjNTFjNjgvY2hhbGxlbmdlcy56aXAiLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjIxNDEwMCwiZXhwIjoxNzkyMzAwNTAwfQ.eUF8OhLL-jS5bmbNakI0wa1eYA6xk-15v8K2vuetauo)


[solutions.zip 621](https://notes.iiens.net/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2E5ODM5ZjZmLTE5NDctNDJkYy04NGJkLWVjN2M2YWNjMmU2Yy9kYjVkNTQ0My1kMDliLTQzZDQtODQ3YS02N2RjZmU1ODg0MzYvc29sdXRpb25zLnppcCIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyMjE0MTAwLCJleHAiOjE3OTIzMDA1MDB9.6CDoM9rbFNXgjtXPWVdolCX-qoA6MrrTOox3gt98P0Q)