John the Ripper
Wer in der IT arbeitet oder wissen möchte, wie sicher Passwörter wirklich sind, für den ist John the Ripper ein neuer bester Freund – oder schlimmster Feind, je nach Perspektive 😬.
Was ist John the Ripper?
John the Ripper (kurz: John) ist ein Open-Source Password-Cracker, der seit den 90ern existiert und immer noch einer der mächtigsten Tools seiner Art ist.
Die Software kann verschiedene Hash-Formate knacken:
- Unix/Linux crypt(3) Hashes
- Windows LM/NTLM Hashes
- MD5, SHA-1, SHA-256, SHA-512
- bcrypt, scrypt
- Und gefühlt hunderte andere Formate (siehe unten den Befehl für die Auflistung der Formate)
Installation
Linux/macOS:
# Ubuntu/Debian
sudo apt-get install john
# macOS mit Homebrew
brew install john
Windows: Am besten direkt von der offiziellen Website herunterladen. Oder nutze WSL – ist eh besser.
Die Basics
John hat drei Hauptmodi:
1. Single Crack Mode
Der schnellste Modus – probiert intelligente Variationen basierend auf dem Username. John extrahiert die Benutzernamen automatisch aus der Hash-Datei:
john --single passwords.txt
Die Datei muss das Format username:hash haben, damit John weiß, welcher Username zu welchem Hash gehört. Bei Unix-Systemen machst du das mit unshadow.
2. Wordlist Mode
Nutzt eine Wordlist und probiert jedes Wort durch:
john --wordlist=/usr/share/wordlists/rockyou.txt passwords.txt
3. Incremental Mode (Brute Force)
Langsamer, aber gründlicher Ansatz – probiert alle möglichen Kombinationen:
john --incremental passwords.txt
Praktisches Beispiel: Linux Shadow File
Angenommen, es sollen die Passwörter aus `/etc/shadow` getestet werden (natürlich nur auf dem eigenen System – das versteht sich von selbst):
# Erst die Hashes extrahieren
sudo unshadow /etc/passwd /etc/shadow > mypasswords.txt
# Dann John loslassen
john --wordlist=/usr/share/wordlists/rockyou.txt mypasswords.txt
# Status checken
john --show mypasswords.txt
Power-Features
John kann Regeln anwenden, um aus jedem Wort in der Wordlist automatisch Variationen zu erstellen:
# Nutze die built-in Rules (Best4, Wordlist, etc.)
john --rules --wordlist=wordlist.txt passwords.txt
Was passiert hier konkret? Aus dem Wort „password“ werden automatisch Variationen wie:
- Password (Großbuchstabe am Anfang)
- password123 (Zahlen anhängen)
- p@ssword (Buchstaben durch Sonderzeichen ersetzen)
- drowssap (rückwärts)
Die Rules sind in der john.conf definiert. Du kannst dir die verfügbaren Rules anzeigen lassen:
john --list=rules
Format-spezifische Attacks
# Für Windows NTLM Hashes
john --format=NT passwords.txt
# Für MD5 Hashes
john --format=Raw-MD5 passwords.txt
# Alle verfügbaren Formate anzeigen
john --list=formats
Session Management
# Session starten
john --session=mysession passwords.txt
# Session fortsetzen
john --restore=mysession
Wordlists
Ohne gute Wordlists ist John wie ein Porsche ohne Benzin. Hier sind die gängigsten:
- rockyou.txt – Der Klassiker mit 14 Millionen Passwörtern
- SecLists – Riesige Sammlung verschiedener Wordlists
- CrackStation – Massive Wordlist mit über 1.4 Milliarden Wörtern
# rockyou.txt downloaden (falls nicht vorhanden)
wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
Performance-Tipps
Multi-Threading nutzen
# Nutze alle verfügbaren CPU-Cores
john --fork=4 passwords.txt
GPU-Power (mit John Jumbo)
Wenn du die Jumbo-Version nutzt, kannst du auch deine GPU einsetzen:
john --format=raw-md5-opencl passwords.txt
Häufige Stolperfallen
Problem: John findet die Hashes nicht
Lösung: Format explizit angeben mit --format=
Problem: Zu langsam
Lösung: Erst Single Mode, dann Wordlist, dann Incremental
Problem: Keine Ergebnisse
Lösung: Bessere Wordlists verwenden oder Rules aktivieren
Defensive Perspektive
Als Entwickler solltest du John nutzen, um:
- Deine eigenen Passwörter zu testen: Wenn John sie in unter einer Stunde knackt, sind sie zu schwach
- Leaked Credentials zu checken: Teste, ob Passwörter aus Datenlecks in deinem System verwendet werden
- Password Policies zu validieren: Simuliere Angriffe auf deine Benutzer-Passwörter
Legale Hinweise
John sollte nur auf eigenen Systemen mit eigenen Daten oder mit expliziter Erlaubnis der jeweiligen Partei eingesetzt werden. Alles andere ist illegal.
Fazit
John the Ripper ist ein mächtiges Tool, das in jeden Security-Toolkit gehört. Nutze es verantwortungsvoll für Penetration Testing, Security Audits und um deine eigenen Systeme zu prüfen.
Wichtig: Wenn John ein Passwort knacken kann, ist das auch für andere möglich. Daher sollten sichere Passwörter gewählt werden.