Einleitung
In diesem Lab werden Sie den "Single Crack Mode" von John the Ripper, einem leistungsstarken Tool zum Knacken von Passwörtern, erkunden. Der Single Crack Mode ist besonders nützlich, wenn Sie eine Liste von Benutzernamen haben und versuchen möchten, deren Passwörter mithilfe von aus den Benutzernamen abgeleiteten Informationen wie Permutationen oder gängigen Variationen zu knacken. Sie lernen, wie Sie eine Hash-Datei für diesen Modus vorbereiten, John the Ripper ausführen, seinen Knackprozess beobachten und die spezifischen Szenarien verstehen, in denen der Single Crack Mode am effektivsten ist, sowie seine Grenzen. Diese praktische Erfahrung wird Ihnen praktische Fähigkeiten in Bezug auf Passwortsicherheit und -prüfung vermitteln.
Hash-Datei mit Benutzernamen vorbereiten
In diesem Schritt bereiten Sie eine Hash-Datei vor, die John the Ripper im Single Crack Mode verwenden kann. Der Single Crack Mode nutzt Informationen aus dem Benutzernamen selbst, um potenzielle Passwörter zu generieren. Damit dies effektiv funktioniert, sollte Ihre Hash-Datei Benutzernamen enthalten.
Stellen Sie zunächst sicher, dass Sie sich in Ihrem Projektverzeichnis befinden.
cd ~/project
Als Nächstes erstellen wir eine einfache Passwortdatei namens my_hashes.txt mit einigen Einträgen. Wir verwenden für Demonstrationszwecke einen bekannten MD5-Hash für das Passwort "password" (5f4dcc3b5aa765d61d8327deb882cf99).
echo "user1:5f4dcc3b5aa765d61d8327deb882cf99" > my_hashes.txt
echo "john:5f4dcc3b5aa765d61d8327deb882cf99" >> my_hashes.txt
echo "mary:5f4dcc3b5aa765d61d8327deb882cf99" >> my_hashes.txt
echo "testuser:5f4dcc3b5aa765d61d8327deb882cf99" >> my_hashes.txt
echo "admin:5f4dcc3b5aa765d61d8327deb882cf99" >> my_hashes.txt
Sie können den Inhalt der Datei mit dem Befehl cat überprüfen:
cat my_hashes.txt
Erwartete Ausgabe:
user1:5f4dcc3b5aa765d61d8327deb882cf99
john:5f4dcc3b5aa765d61d8327deb882cf99
mary:5f4dcc3b5aa765d61d8327deb882cf99
testuser:5f4dcc3b5aa765d61d8327deb882cf99
admin:5f4dcc3b5aa765d61d8327deb882cf99
Diese Datei enthält nun Benutzernamen und ihre entsprechenden Passwort-Hashes, bereit für den Single Crack Mode von John the Ripper.
John the Ripper im Single Crack Mode ausführen
In diesem Schritt führen Sie John the Ripper im Single Crack Mode gegen die vorbereitete Hash-Datei aus. John wird versuchen, die Passwörter zu knacken, indem er potenzielle Passwörter aus den Benutzernamen ableitet.
Um John the Ripper im Single Crack Mode auszuführen, verwenden Sie die Option --single, gefolgt vom Pfad zu Ihrer Hash-Datei.
john --single my_hashes.txt
John the Ripper beginnt mit der Verarbeitung der Hashes. Da das Passwort "password" ein gängiges Wort ist und die Benutzernamen einfach sind, wird John einige davon möglicherweise schnell knacken. Die Ausgabe zeigt die geknackten Passwörter an.
Beispielhafte Ausgabe:
Using default input encoding: UTF-8
Loaded 5 password hashes with no different salts (Raw-MD5 [MD5])
Press 'q' or Ctrl-C to abort, almost any other key for status
password (user1)
password (john)
password (mary)
password (testuser)
password (admin)
5g 0:00:00:00 DONE (2023-10-27 08:30) 100% ...
Session completed.
Nachdem John fertig ist, können Sie die geknackten Passwörter anzeigen, die in der Pot-Datei von John gespeichert wurden.
john --show my_hashes.txt
Erwartete Ausgabe:
user1:password
john:password
mary:password
testuser:password
admin:password
5 password hashes cracked, 0 left
Dieser Befehl zeigt alle Passwörter an, die John erfolgreich aus der Datei my_hashes.txt geknackt hat.
Verhalten des Single Crack Mode beobachten
In diesem Schritt beobachten Sie, wie sich der Single Crack Mode von John the Ripper verhält und welche Art von Passwortkandidaten er generiert. Der Single Crack Mode ist einzigartig, da er keine Wortliste oder Brute-Force-Angriffe direkt verwendet. Stattdessen nutzt er den Benutzernamen (oder das GECOS-Feld, falls verfügbar) als Grundlage für die Generierung von Passwortvermutungen.
Lassen Sie uns die Pot-Datei von John löschen, um einen neuen Lauf zur Beobachtung zu gewährleisten. Dies wird in einem realen Szenario normalerweise nicht getan, hilft aber für die Demonstration.
john --session=clear --format=Raw-MD5 --pot=/home/labex/.john/john.pot
Führen Sie John nun erneut im Single-Modus aus, aber achten Sie diesmal genauer auf die Ausgabe und wie er jeden Eintrag verarbeitet.
john --single my_hashes.txt
Während John läuft, werden Sie feststellen, dass er Variationen des Benutzernamens ausprobiert. Zum Beispiel könnte er für john john, John, JOHN, john1, john123, johnny, j0hn usw. versuchen. Die genauen Variationen hängen von den internen Regeln von John und der Konfigurationsdatei john.conf ab.
Die wichtigste Erkenntnis ist, dass der Single Crack Mode sehr effizient beim Knacken von Passwörtern ist, die einfache Variationen des Benutzernamens sind. Es ist eine schnelle Überprüfung, bevor auf ressourcenintensivere Methoden wie Wörterbuchangriffe oder Brute-Force zurückgegriffen wird.
Sie können auch die Konfigurationsdatei von John einsehen, um die Regeln zu verstehen, die er für den Single-Modus verwendet. Obwohl wir sie nicht ändern werden, ist es nützlich, ihren Speicherort zu kennen.
ls -l /etc/john/john.conf
Erwartete Ausgabe:
-rw-r--r-- 1 root root 12345 Oct 27 08:00 /etc/john/john.conf
(Die Dateigröße und das Datum können variieren)
Diese Datei enthält unter anderem die Regelwerke für den Single Crack Mode.
Einschränkungen des Single Crack Mode verstehen
In diesem Schritt werden Sie die Einschränkungen des Single Crack Mode von John the Ripper verstehen. Obwohl er für bestimmte Szenarien leistungsfähig ist, ist er keine universelle Lösung für alle Anforderungen beim Knacken von Passwörtern.
Der Single Crack Mode stützt sich hauptsächlich auf Permutationen und Variationen des Benutzernamens (und manchmal des GECOS-Feldes aus /etc/passwd). Das bedeutet:
- Begrenzter Umfang: Er wird nur Passwörter ausprobieren, die direkt vom Benutzernamen abgeleitet werden können. Wenn ein Passwort "apple" ist und der Benutzername "user1", wird der Single Crack Mode wahrscheinlich fehlschlagen, da "apple" keine direkte Beziehung zu "user1" hat.
- Keine externen Wortlisten: Im Gegensatz zum Dictionary-Attack-Modus verwendet der Single Crack Mode keine externe Wortliste. Das macht ihn schnell, schränkt aber auch seine Fähigkeit ein, Passwörter zu knacken, die gängige Wörter sind und nicht mit dem Benutzernamen zusammenhängen.
- Kein Brute-Force: Er führt keinen vollständigen Brute-Force-Angriff durch, der jede mögliche Zeichenkombination ausprobieren würde. Das bedeutet, dass komplexe, zufällige Passwörter von diesem Modus sehr unwahrscheinlich geknackt werden.
- Abhängigkeit von Benutzernamen: Seine Effektivität ist direkt an die Qualität und Relevanz der Benutzernamen gebunden. Wenn Benutzernamen generisch sind (z. B.
user,admin), können die generierten Passwortkandidaten weniger effektiv sein.
Um diese Einschränkung zu demonstrieren, fügen wir einen Hash für ein Passwort hinzu, das nicht mit dem Benutzernamen zusammenhängt. Wir fügen randomuser:e10adc3949ba59abbe56e057f20f883e hinzu, wobei e10adc3949ba59abbe56e057f20f883e der MD5-Hash für 123456 ist.
echo "randomuser:e10adc3949ba59abbe56e057f20f883e" >> my_hashes.txt
cat my_hashes.txt
Führen Sie John nun erneut im Single-Modus aus:
john --single my_hashes.txt
Sie werden feststellen, dass das Passwort von randomuser (123456) nicht geknackt wird, da 123456 keine Ableitung von randomuser ist.
Erwartete Ausgabe (beachten Sie, dass randomuser nicht geknackt wird):
Using default input encoding: UTF-8
Loaded 6 password hashes with no different salts (Raw-MD5 [MD5])
Press 'q' or Ctrl-C to abort, almost any other key for status
password (user1)
password (john)
password (mary)
password (testuser)
password (admin)
5g 0:00:00:00 DONE (2023-10-27 08:35) 100% ...
Session completed.
Dies veranschaulicht deutlich, dass der Single Crack Mode nur dann wirksam ist, wenn Passwörter einfache Variationen des Benutzernamens sind.
Vergleich von Single Crack mit anderen Modi
In diesem letzten Schritt vergleichen Sie kurz den Single Crack Mode mit anderen gängigen Cracking-Modi in John the Ripper, wie dem Wordlist-Modus und dem Brute-Force-Modus. Das Verständnis dieser Unterschiede ist entscheidend für die Auswahl des richtigen Werkzeugs für die jeweilige Aufgabe.
Single Crack Mode (
--single):- Methode: Generiert Passwortkandidaten basierend auf dem Benutzernamen (und dem GECOS-Feld).
- Anwendungsfall: Ideal für schnelle Überprüfungen gegen Passwörter, die einfache Variationen von Benutzernamen sind. Sehr schnell.
- Einschränkungen: Begrenzter Umfang; knackt keine Passwörter, die nicht mit dem Benutzernamen zusammenhängen.
Wordlist Mode (
--wordlist=FILE):- Methode: Probiert Passwörter aus einer bereitgestellten Wörterbuch- oder Wortlisten-Datei aus. Kann mit Regeln (
--rules) für Permutationen kombiniert werden. - Anwendungsfall: Am gebräuchlichsten und effektivsten zum Knacken von Passwörtern, die gängige Wörter, Phrasen oder Kombinationen sind, die in Wörterbüchern gefunden werden.
- Einschränkungen: Nur so gut wie die Wortliste; knackt keine Passwörter, die nicht in der Liste oder ihren Permutationen enthalten sind.
- Methode: Probiert Passwörter aus einer bereitgestellten Wörterbuch- oder Wortlisten-Datei aus. Kann mit Regeln (
Incremental (Brute-Force) Mode (
--incremental):- Methode: Probiert systematisch jede mögliche Zeichenkombination innerhalb eines definierten Zeichensatzes und einer definierten Länge aus.
- Anwendungsfall: Letzte Möglichkeit zum Knacken komplexer Passwörter, die mit anderen Methoden nicht gefunden wurden. Garantiert das Finden des Passworts, wenn genügend Zeit zur Verfügung steht.
- Einschränkungen: Extrem zeitaufwendig, insbesondere bei längeren Passwörtern oder größeren Zeichensätzen. Kann Tage, Monate oder sogar Jahre dauern.
Lassen Sie uns das Knacken des randomuser-Passworts (123456) mit dem Wordlist-Modus demonstrieren. Erstellen Sie zuerst eine einfache Wortliste, die "123456" enthält.
echo "123456" > my_wordlist.txt
Führen Sie John nun im Wordlist-Modus aus:
john --wordlist=my_wordlist.txt my_hashes.txt
Erwartete Ausgabe:
Using default input encoding: UTF-8
Loaded 6 password hashes with no different salts (Raw-MD5 [MD5])
Press 'q' or Ctrl-C to abort, almost any other key for status
123456 (randomuser)
1g 0:00:00:00 DONE (2023-10-27 08:40) 100% ...
Session completed.
Wie Sie sehen können, wurde das Passwort von randomuser mit der Wortliste geknackt. Dies unterstreicht, dass verschiedene Cracking-Modi für unterschiedliche Arten von Passwörtern geeignet sind. Der Single Crack Mode ist ein guter erster Schritt, muss aber oft durch den Wordlist- oder Incremental-Modus für ein umfassenderes Knacken ergänzt werden.
Bereinigen Sie abschließend die erstellten Dateien:
rm my_hashes.txt my_wordlist.txt
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie Sie den Single Crack Mode von John the Ripper verwenden. Sie haben eine Hash-Datei mit Benutzernamen vorbereitet, John im Single Crack Mode ausgeführt und sein Verhalten beim Knacken von vom Benutzernamen abgeleiteten Passwörtern beobachtet. Sie haben auch die Einschränkungen des Single Crack Mode verstanden und erkannt, dass er am effektivsten für spezifische Passwortmuster ist und keine Allround-Lösung darstellt. Schließlich haben Sie den Single Crack Mode mit anderen gängigen John the Ripper Modi wie Wordlist und Incremental verglichen und hervorgehoben, wann jeder Modus am besten geeignet ist. Diese praktische Erfahrung vertieft Ihr Verständnis von Techniken zur Überprüfung der Passwortsicherheit.


