John the Ripper
Cracker de mots de passe classique supportant des centaines de types de hash. Moteur de règles puissant et détection automatique de format. Fonctionne en CPU uniquement (complément au GPU de hashcat). Classic password cracker supporting hundreds of hash types. Strong rule engine and format auto-detection. Works CPU-only (complement to hashcat's GPU).
↗ https://www.openwall.com/john/Overview
John the Ripper (JtR) is a venerable CPU-based password cracker with excellent format auto-detection, a rich ruleset, and the *2john helper utilities that convert files (zip, pdf, ssh keys, etc.) into crackable hashes.
Basic Cracking
Auto-detect format and crack
john hash.txt
Wordlist attack
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
With rules (mangling)
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt --rules
# Specify format explicitly
john hash.txt --format=NT --wordlist=/usr/share/wordlists/rockyou.txt
john hash.txt --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt
# Show cracked passwords
john hash.txt --show
john hash.txt --show --format=NT
Resume a session
john --restore
Incremental (brute-force) mode
john hash.txt --incremental
*2john — Converting Files to Hashes
SSH private key
ssh2john id_rsa > id_rsa.hash
ZIP archive
zip2john archive.zip > zip.hash
RAR archive
rar2john archive.rar > rar.hash
pdf2john document.pdf > pdf.hash
KeePass database
keepass2john database.kdbx > keepass.hash
/etc/shadow
unshadow /etc/passwd /etc/shadow > shadow.hash
Office documents (Word, Excel)
office2john document.docx > office.hash
Bitcoin wallet
bitcoin2john wallet.dat > wallet.hash
Common Formats
john --list=formats # List all supported formats
john --list=formats | grep -i ntlm
john --list=formats | grep -i kerberos
--format=NT # NTLM
--format=netntlmv2 # Net-NTLMv2 (Responder captures)
--format=krb5tgs # Kerberoasting
--format=krb5asrep # AS-REP Roasting
--format=sha256crypt # Linux SHA-256
--format=sha512crypt # Linux SHA-512 ($6$)
--format=bcrypt # bcrypt
--format=md5crypt # Linux MD5 ($1$)
Rules
# Built-in rule sets
john hash.txt --wordlist=rockyou.txt --rules=Single
john hash.txt --wordlist=rockyou.txt --rules=Wordlist
john hash.txt --wordlist=rockyou.txt --rules=Extra
john hash.txt --wordlist=rockyou.txt --rules=All
# Custom rules in john.conf / john.local.conf
[List.Rules:Custom]
cAz"[0-9]" # Capitalize + append digit
Tips
- Use
john --showafter cracking to view results (potfile is stored at~/.john/john.pot) - For GPU-accelerated cracking, prefer hashcat; JtR is best for its
*2johnconverters john --make-charset=custom.chrgenerates custom character sets- Specify sessions with
--session=nameto run multiple jobs in parallel
Help / Man page
john [options] [password-files]
Modes:
--single[=SECTION] "Single crack" mode
--wordlist=FILE Wordlist mode
--stdin Read passwords from stdin
--incremental[=MODE] Incremental (brute-force) mode
--restore[=NAME] Resume an interrupted session
Options:
--format=NAME Force hash type
--rules[=SECTION] Enable word mangling rules
--show[=LEFT] Show cracked passwords
--list=WHAT List capabilities (formats, rules, etc.)
--users=LIST Crack only specified users
--groups=LIST Crack only users in groups
--session=NAME Named session (for parallel runs)
--pot=FILE Alternate pot file
--no-log Disable session logging
--fork=N Fork N processes
Vue d’ensemble
John the Ripper (JtR) est un cracker de mots de passe CPU vénérable, doté d’une excellente détection automatique de format, d’un riche jeu de règles, et des utilitaires *2john qui convertissent des fichiers (zip, pdf, clés ssh, etc.) en hashes crackables.
Cracking de base
# Détection automatique du format et cracking
john hash.txt
# Attaque par dictionnaire
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
# Avec règles (mangling)
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt --rules
# Spécifier le format explicitement
john hash.txt --format=NT --wordlist=/usr/share/wordlists/rockyou.txt
john hash.txt --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt
# Afficher les mots de passe crackés
john hash.txt --show
john hash.txt --show --format=NT
# Reprendre une session
john --restore
# Mode incrémental (brute-force)
john hash.txt --incremental
*2john : conversion de fichiers en hashes
# Clé privée SSH
ssh2john id_rsa > id_rsa.hash
# Archive ZIP
zip2john archive.zip > zip.hash
# Archive RAR
rar2john archive.rar > rar.hash
# PDF
pdf2john document.pdf > pdf.hash
# Base de données KeePass
keepass2john database.kdbx > keepass.hash
# /etc/shadow
unshadow /etc/passwd /etc/shadow > shadow.hash
# Documents Office (Word, Excel)
office2john document.docx > office.hash
# Portefeuille Bitcoin
bitcoin2john wallet.dat > wallet.hash
Formats courants
john --list=formats # Lister tous les formats supportés
john --list=formats | grep -i ntlm
john --list=formats | grep -i kerberos
--format=NT # NTLM
--format=netntlmv2 # Net-NTLMv2 (captures Responder)
--format=krb5tgs # Kerberoasting
--format=krb5asrep # AS-REP Roasting
--format=sha256crypt # Linux SHA-256
--format=sha512crypt # Linux SHA-512 ($6$)
--format=bcrypt # bcrypt
--format=md5crypt # Linux MD5 ($1$)
Règles
# Jeux de règles intégrés
john hash.txt --wordlist=rockyou.txt --rules=Single
john hash.txt --wordlist=rockyou.txt --rules=Wordlist
john hash.txt --wordlist=rockyou.txt --rules=Extra
john hash.txt --wordlist=rockyou.txt --rules=All
# Règles personnalisées dans john.conf / john.local.conf
[List.Rules:Custom]
cAz"[0-9]" # Met en majuscule + ajoute un chiffre
Conseils
- Utiliser
john --showaprès le cracking pour voir les résultats (le potfile est stocké dans~/.john/john.pot) - Pour le cracking accéléré par GPU, préférer hashcat ; JtR est surtout utile pour ses convertisseurs
*2john john --make-charset=custom.chrgénère des jeux de caractères personnalisés- Spécifier des sessions avec
--session=namepour lancer plusieurs jobs en parallèle
Aide / Page de manuel
john [options] [password-files]
Modes:
--single[=SECTION] "Single crack" mode
--wordlist=FILE Wordlist mode
--stdin Read passwords from stdin
--incremental[=MODE] Incremental (brute-force) mode
--restore[=NAME] Resume an interrupted session
Options:
--format=NAME Force hash type
--rules[=SECTION] Enable word mangling rules
--show[=LEFT] Show cracked passwords
--list=WHAT List capabilities (formats, rules, etc.)
--users=LIST Crack only specified users
--groups=LIST Crack only users in groups
--session=NAME Named session (for parallel runs)
--pot=FILE Alternate pot file
--no-log Disable session logging
--fork=N Fork N processes