John the Ripper (souvent abrégé en John ou JtR) est un des outils les plus connus pour casser des mots de passe à partir de leurs hashs. Que vous cherchiez john the ripper, ou que vous fassiez la faute en tapant john the reaper, john the rippe ou jonh the ripper, on parle bien du même programme : un outil de bruteforce et d’attaque par dictionnaire incontournable en CTF et en pentest.

Ce guide est pensé pour les débutants : installation, fonctionnement, attaques de base (dictionnaire et bruteforce), exemples simples, wordlists utiles, cheatsheet et FAQ.

Installation de John the Ripper

Que vous l’utilisiez en CTF, en laboratoire perso ou en pentest encadré, la première étape consiste à installer correctement John the Ripper et à vérifier qu’il fonctionne.

Installation de John the Ripper sur Kali Linux

Sur Kali Linux, John est en général installé par défaut. Vous pouvez vérifier sa présence et sa version avec :

john --version

Si la commande ne répond pas, installez-le simplement avec :

sudo apt update
sudo apt install john

Installation sur Debian / Ubuntu

Sur Debian, Ubuntu et dérivés, John the Ripper est disponible dans les dépôts officiels :

sudo apt update
sudo apt install john

Cette commande installe la version « community » de John en ligne de commande, largement suffisante pour apprendre le bruteforce et faire des CTF.

Installation sur autres distributions (Arch, Fedora, etc.)

Sur d’autres distributions Linux, utilisez le gestionnaire de paquets natif :

  • Arch / Manjaro : sudo pacman -S john
  • Fedora : sudo dnf install john
  • openSUSE : sudo zypper install john

Pour des fonctionnalités avancées, il existe aussi la version « jumbo » de John compilable depuis les sources, mais pour débuter l’installation via les dépôts est largement suffisante.

Vérifier l’installation

Une fois John installé, vérifiez qu’il est bien dans le PATH et fonctionnel :

john --test
john --list=formats

Si ces commandes renvoient des informations sans erreur, John the Ripper est correctement installé et prêt pour vos premiers tests de bruteforce à l’instar de Dirb.

Fonctionnement de base de John the Ripper

John the Ripper travaille toujours sur le même principe :

  1. Vous disposez d’un ou plusieurs hashs (NTLM, MD5, SHA, etc.) dans un fichier texte.
  2. Vous choisissez une méthode d’attaque (dictionnaire, bruteforce, single mode…).
  3. Vous lancez John sur ce fichier et attendez qu’il trouve les mots de passe.
  4. Vous affichez les mots de passe récupérés avec john --show.

Exemple générique :

# Lancer John sur un fichier de hashs
john hash.txt

# Afficher les résultats
john --show hash.txt

Méthodes d’attaque principales

Attaque par dictionnaire (wordlist)

L’attaque par dictionnaire est la plus simple et la plus efficace pour un débutant. John teste chaque mot d’une wordlist comme possible mot de passe.

Exemple avec la wordlist rockyou :

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

Si le mot de passe est peu complexe ou issu de fuites connues, il sera souvent trouvé très vite.

Attaque bruteforce (mode incremental)

L’attaque bruteforce consiste à tester toutes les combinaisons possibles de caractères jusqu’à tomber sur le bon mot de passe. C’est très puissant, mais potentiellement très long.

Exemple simple :

john --incremental hash.txt
Bruteforce

Ce mode est utile quand vous n’avez aucune idée du mot de passe, mais le temps de calcul explose dès que la longueur ou la complexité augmente.

Mode single (single crack)

Le mode single utilise les informations disponibles autour du hash (nom d’utilisateur, login…) pour générer des mots de passe probables.

john --single hash.txt

Très pratique quand le mot de passe est dérivé du nom de l’utilisateur (prénom+année, pseudo+123, etc.).

Exemple complet : casser un hash pas à pas

Supposons que vous ayez un fichier ntlm.txt contenant un hash NTLM récupéré dans un CTF.

Étape 1 : attaque par wordlist

john --wordlist=/usr/share/wordlists/rockyou.txt ntlm.txt

Étape 2 : si rien n’est trouvé, bruteforce

john --incremental ntlm.txt

Étape 3 : afficher les mots de passe trouvés

john --show ntlm.txt

Dans un contexte réaliste, le but est d’abord d’essayer une wordlist (rapide), puis seulement ensuite le bruteforce si nécessaire.

Formats de hash supportés

John supporte un grand nombre de formats. Pour les lister :

john --list=formats

Parmi les plus fréquents :

  • nt : hash NTLM Windows
  • raw-md5 : MD5 simple
  • raw-sha1, raw-sha256 : SHA
  • sha512crypt : mots de passe Linux modernes
  • zip, rar, pdf : fichiers chiffrés

Pour certains formats, il faut d’abord transformer le fichier (ZIP, RAR, PDF…) en hash compatible via des outils comme zip2john, rar2john, etc.

Créer des hashs pour s’entraîner

Pour pratiquer en local sans risque, vous pouvez générer vos propres hashs.

Hash SHA-512 (style Linux)

openssl passwd -6

Hash MD5 simple

echo -n "password" | md5sum

Hash NTLM “à la main”

echo -n "password" | iconv -t utf16le | openssl md4

Vous mettez ensuite le hash dans un fichier (par exemple hash.txt) et vous le cassez avec John.

Wordlists utiles pour John the Ripper

En pratique, la qualité de votre wordlist est plus importante que la puissance brute.

rockyou.txt

Sur Kali, la wordlist la plus utilisée est :

/usr/share/wordlists/rockyou.txt

Si elle n’est pas décompressée :

gunzip /usr/share/wordlists/rockyou.txt.gz

SecLists

Le projet SecLists contient une énorme collection de wordlists : mots de passe, usernames, combinaisons spécifiques, etc. Idéal pour aller plus loin que rockyou.

Wordlists personnalisées

En CTF comme en pentest, générer une wordlist adaptée au contexte (prénoms, noms, société, dates importantes…) est souvent plus efficace qu’un bruteforce aveugle.

Cheatsheet débutant John the Ripper

Attaque par dictionnaire

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

Bruteforce (mode incremental)

john --incremental hash.txt

Mode single

john --single hash.txt

Afficher les mots de passe trouvés

john --show hash.txt

Restaurer une session interrompue

john --restore

Lister les formats disponibles

john --list=formats

FAQ – Questions fréquentes

John the Ripper peut-il casser tous les mots de passe ?

Non. Si le mot de passe est long et complexe (par exemple 16+ caractères avec symboles), un bruteforce complet est souvent irréaliste. John excelle surtout sur les mots de passe faibles, réutilisés ou dérivés d’un dictionnaire.

John the Ripper, c’est légal ?

Oui, tant que vous l’utilisez dans un cadre légal : CTF, lab perso, tests autorisés sur vos propres systèmes ou mission de pentest contractuelle. Sur un système tiers sans autorisation, c’est illégal.

Quelle différence entre John the Ripper et Hashcat ?

Hashcat est optimisé pour le GPU et très puissant pour les attaques massives, mais John the Ripper est plus simple à prendre en main et très adapté à l’apprentissage et aux CTF, surtout côté CPU.

John peut-il casser un fichier ZIP ou RAR ?

Oui, en utilisant d’abord un outil convertisseur, puis John :

# ZIP
zip2john archive.zip > hash.txt
john hash.txt

# RAR
rar2john archive.rar > hash.txt
john hash.txt

Pourquoi mon bruteforce est-il si lent ?

Parce que le nombre de combinaisons possibles explose très vite avec la longueur et le jeu de caractères. Il est souvent plus efficace d’utiliser une bonne wordlist ou des règles que du bruteforce pu

Conclusion

John the Ripper reste l’un des meilleurs outils pour comprendre les bases du cracking de mot de passe et du bruteforce. Il est simple à installer, facile à utiliser en ligne de commande, et suffisamment puissant pour la plupart des scénarios de CTF et de pentest d’initiation.

En combinant John, de bonnes wordlists et un peu de logique, vous pouvez rapidement progresser en audit de mots de passe, tout en gardant à l’esprit la limite essentielle : ne jamais utiliser ces techniques en dehors d’un cadre légal et contrôlé.