Einleitung
John the Ripper ist ein beliebtes Open-Source-Tool zum Knacken von Passwörtern. Bei der Durchführung von Passwortaudits oder Crack-Versuchen ist das Verständnis seiner Ausgabe und seines Status entscheidend für die Überwachung des Fortschritts, die Identifizierung geknackter Passwörter und die Fehlerbehebung. Dieses Lab führt Sie durch die Interpretation der verschiedenen Ausgabenachrichten von John the Ripper, die Überprüfung seines Echtzeit-Crack-Status, die Anzeige der Ergebnisse einer Crack-Sitzung, das Verständnis seiner Leistungsstatistiken und die Protokollierung seiner Ausgabe zur späteren Analyse.
John the Ripper Ausgabenachrichten interpretieren
In diesem Schritt lernen Sie, die verschiedenen Nachrichten zu verstehen, die John the Ripper während einer Crack-Sitzung anzeigt. Diese Nachrichten geben Einblicke in den Fortschritt, den Crack-Modus und eventuell aufgetretene Probleme.
Zuerst starten wir eine einfache Crack-Sitzung mit einer Wortliste. Wir verwenden die in der Einrichtung erstellte Datei passwords.txt und eine kleine wordlist.txt.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
john --wordlist=wordlist.txt passwords.txt
Sie sehen eine Ausgabe, die der folgenden ähnelt:
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts to the same type of crypt (sha512crypt, crypt(3) $6$)
Remaining 3 password hashes with no different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
user1 (user1)
user2 (user2)
user3 (user3)
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed
Lassen Sie uns die wichtigsten Teile dieser Ausgabe aufschlüsseln:
Using default input encoding: UTF-8: Zeigt die Zeichenkodierung an, die John verwendet.Loaded 3 password hashes...: Zeigt an, wie viele Hashes aus der Eingabedatei geladen wurden.Press 'q' or Ctrl-C to abort, almost any other key for status: Dies ist eine wichtige Aufforderung. Sie informiert Sie darüber, wie Sie während einer Sitzung mit John interagieren können.user1 (user1): Dies ist ein geknacktes Passwort.user1ist der Benutzername (oder die Hash-ID), und(user1)ist das geknackte Passwort. John zeigt jedes geknackte Passwort an, sobald es gefunden wird.3g 0:00:00:00 DONE ...: Dies ist die Zusammenfassungszeile.3g: Anzahl der geknackten Hashes (3 Versuche).0:00:00:00 DONE: Die verstrichene Zeit und dass die Sitzung abgeschlossen ist.100.0%: Prozentsatz des abgeschlossenen Crack-Vorgangs.3.000g/s: Versuche pro Sekunde.18.00p/s: Passwörter pro Sekunde (Anzahl der getesteten Kandidatenpasswörter).18.00c/s: Crypts pro Sekunde (Anzahl der Hash-Berechnungen).18.00C/s: Kandidaten pro Sekunde (Anzahl der generierten eindeutigen Kandidatenpasswörter).user1 user2 user3: Die letzten geknackten Passwörter.
Session completed: Bestätigt, dass die Crack-Sitzung beendet wurde.
Das Verständnis dieser Nachrichten hilft Ihnen, den Fortschritt und die Ergebnisse Ihrer John the Ripper-Operationen zu überwachen.
Crack-Status während einer Sitzung überprüfen
In diesem Schritt lernen Sie, wie Sie den Echtzeitstatus einer John the Ripper Crack-Sitzung überprüfen. Dies ist besonders nützlich für langlaufende Sitzungen, um den Fortschritt zu überwachen, ohne den Prozess zu unterbrechen.
Zuerst bereinigen wir den Zustand der vorherigen Sitzung, damit John frisch beginnt.
john --session=test_session --restore=NONE --wordlist=wordlist.txt passwords.txt --force-load-hashes
Starten Sie nun eine neue Crack-Sitzung. Diesmal verwenden wir eine etwas größere Wortliste, um sicherzustellen, dass die Sitzung lange genug läuft, damit wir ihren Status überprüfen können. Wir verwenden die Datei passwords.txt und die Datei wordlist.txt.
Führen Sie den folgenden Befehl aus. Beachten Sie, dass wir --session=test_session verwenden, um dieser Sitzung einen Namen zu geben, was nützlich ist, um den Status später wiederherzustellen oder zu überprüfen.
john --session=test_session --wordlist=wordlist.txt passwords.txt
Während John läuft (es könnte mit der kleinen Wortliste schnell beendet sein, aber stellen Sie sich vor, es ist eine große), öffnen Sie einen neuen Terminal-Tab (oder ein neues Terminalfenster, wenn Sie sich nicht in der LabEx-Umgebung befinden). Im neuen Terminal können Sie den Status der laufenden Sitzung überprüfen.
Um den Status zu überprüfen, verwenden Sie die Option --status mit dem Sitzungsnamen:
john --session=test_session --status
Sie sehen eine Ausgabe, die der folgenden ähnelt (die genauen Zahlen variieren je nach Fortschritt):
Session test_session (john)
Progress: 3/3 (100%)
Speed: 3.000g/s (words), 18.00p/s (passwords), 18.00c/s (crypts), 18.00C/s (candidates)
Remaining: 0:00:00:00
Cracked: 3
Diese Ausgabe liefert eine Momentaufnahme des Sitzungsfortschritts, einschließlich der Anzahl der geknackten Hashes, der Crack-Geschwindigkeit und der geschätzten verbleibenden Zeit.
Nachdem Sie den Status überprüft haben, können Sie den neuen Terminal-Tab schließen. Die ursprüngliche John the Ripper-Sitzung wird weiterlaufen, bis sie abgeschlossen ist.
Wenn die Sitzung bereits abgeschlossen ist, zeigt der Befehl --status an, dass die Sitzung beendet ist.
Session test_session (john)
Session completed
Diese Funktion ist für die Verwaltung langlaufender Crack-Operationen von unschätzbarem Wert.
Geknackte Passwörter einer Sitzung anzeigen
Nachdem eine John the Ripper-Sitzung abgeschlossen ist, werden die geknackten Passwörter in einer Datei namens john.pot (oft in ~/.john/john.pot gespeichert) abgelegt. In diesem Schritt lernen Sie, wie Sie diese geknackten Passwörter anzeigen können.
Stellen Sie zunächst sicher, dass Sie eine john.pot-Datei mit geknackten Passwörtern haben. Wenn Sie die vorherigen Schritte befolgt haben, sollte diese bereits existieren. Falls nicht, führen Sie den Crack-Befehl erneut aus:
john --wordlist=wordlist.txt passwords.txt
Sobald die Sitzung abgeschlossen ist, können Sie die geknackten Passwörter mit der Option --show anzeigen. Diese Option weist John an, alle gespeicherten geknackten Passwörter für die angegebene Hash-Datei anzuzeigen.
Führen Sie den folgenden Befehl aus:
john --show passwords.txt
Sie sehen eine Ausgabe, die der folgenden ähnelt:
user1:user1
user2:user2
user3:user3
3 password hashes cracked, 0 left
Die Ausgabe listet jeden geknackten Hash im Format Benutzername:Passwort auf. Die Zeile 3 password hashes cracked, 0 left fasst die Ergebnisse zusammen.
Die Datei john.pot ist eine entscheidende Komponente von John the Ripper, da sie alle erfolgreich geknackten Passwörter speichert. John überprüft diese Datei automatisch, bevor es versucht, einen Hash zu knacken, und vermeidet so redundante Arbeit. Sie können die Datei john.pot auch direkt mit cat einsehen:
cat ~/.john/john.pot
Der Inhalt wird in etwa so aussehen:
user1:user1
user2:user2
user3:user3
Dieser Schritt zeigt, wie Sie die wertvollen Ergebnisse Ihrer Crack-Bemühungen abrufen und überprüfen können.
John the Ripper Statistiken verstehen
John the Ripper liefert detaillierte Statistiken über seine Crack-Leistung. Das Verständnis dieser Statistiken hilft Ihnen, die Effizienz Ihrer Crack-Versuche zu bewerten und verschiedene Crack-Strategien zu vergleichen.
Lassen Sie uns erneut eine Crack-Sitzung ausführen, um einige Statistiken zu generieren. Wir verwenden denselben Befehl wie zuvor.
john --wordlist=wordlist.txt passwords.txt
Beobachten Sie die abschließende Zusammenfassungszeile, die nach Abschluss der Sitzung erscheint:
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed
Betrachten wir die wichtigsten statistischen Kennzahlen noch einmal genauer:
3g: Dies gibt die Anzahl der gemachten "Vermutungen" an, was in diesem Kontext der Anzahl der erfolgreich geknackten Hashes entspricht.0:00:00:00 DONE: Die für die Sitzung verstrichene Gesamtzeit. Bei kurzen Sitzungen kann hier 0 stehen.100.0%: Der Prozentsatz des abgeschlossenen Crack-Vorgangs.3.000g/s(guesses/s): Die Rate, mit der John pro Sekunde Vermutungen anstellt. Dies ist oft das direkteste Maß für die Crack-Geschwindigkeit.18.00p/s(passwords/s): Die Anzahl der pro Sekunde getesteten Kandidaten-Passwörter. Dies kann höher sein alsg/s, wenn mehrere Hashes gegen dasselbe Kandidaten-Passwort getestet werden.18.00c/s(crypts/s): Die Anzahl der pro Sekunde durchgeführten Hash-Berechnungen (kryptografische Operationen). Dies ist ein Maß für die genutzte reine Rechenleistung.18.00C/s(candidates/s): Die Anzahl der pro Sekunde generierten eindeutigen Kandidaten-Passwörter. Dies kann vonp/sabweichen, wenn derselbe Kandidat gegen mehrere Hashes getestet wird.
Diese Statistiken sind entscheidend für:
- Leistungsbewertung: Verstehen, wie schnell John Passwörter knackt.
- Ressourcennutzung: Einschätzen, wie viel CPU-Leistung für Hash-Berechnungen verwendet wird.
- Strategievergleich: Vergleichen der Effektivität verschiedener Wortlisten oder Crack-Modi.
Indem Sie auf diese Zahlen achten, können Sie wertvolle Einblicke in Ihre Passwort-Auditierungsbemühungen gewinnen.
John the Ripper Ausgabe in eine Datei protokollieren
Bei langlaufenden Sitzungen oder zu Auditierungszwecken ist es oft vorteilhaft, die Ausgabe von John the Ripper in eine Datei zu protokollieren. Dies ermöglicht es Ihnen, den Fortschritt und die Ergebnisse später zu überprüfen, ohne ein Terminal offen halten zu müssen.
Sie können die Standardausgabe von John mit der Standard-Shell-Umleitung (>) in eine Datei umleiten.
Zuerst bereinigen wir alle vorherigen Sitzungsdateien, um einen Neuanfang zu gewährleisten.
john --session=log_session --restore=NONE --wordlist=wordlist.txt passwords.txt --force-load-hashes
Führen Sie nun John the Ripper aus und leiten Sie seine Ausgabe in eine Datei namens john_output.log in Ihrem ~/project-Verzeichnis um.
john --session=log_session --wordlist=wordlist.txt passwords.txt > john_output.log
Beachten Sie, dass nach der Ausführung dieses Befehls Ihr Terminal scheinbar nichts tut. Das liegt daran, dass die gesamte Ausgabe, die normalerweise auf dem Bildschirm angezeigt würde, nun in john_output.log geschrieben wird.
Sobald der Befehl abgeschlossen ist (was bei unserer kleinen Wortliste fast augenblicklich geschieht), können Sie den Inhalt der Log-Datei mit cat anzeigen:
cat john_output.log
Sie sehen die vollständige Ausgabe der John the Ripper-Sitzung, identisch mit dem, was Sie auf dem Bildschirm gesehen hätten, aber nun in der Datei gespeichert:
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts to the same type of crypt (sha512crypt, crypt(3) $6$)
Remaining 3 password hashes with no different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
user1 (user1)
user2 (user2)
user3 (user3)
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed
Das Protokollieren der Ausgabe ist eine bewährte Methode für alle langlaufenden oder kritischen Befehlszeilenoperationen, da es eine dauerhafte Aufzeichnung von Ereignissen und Ergebnissen bietet.
Zusammenfassung
In diesem Lab haben Sie ein umfassendes Verständnis dafür entwickelt, wie die Ausgabe von John the Ripper interpretiert und seine Sitzungen verwaltet werden. Sie haben gelernt, die verschiedenen Meldungen zu entschlüsseln, die während einer Crack-Sitzung angezeigt werden, den Echtzeitstatus einer laufenden Sitzung zu überprüfen und geknackte Passwörter aus der Datei john.pot abzurufen. Darüber hinaus haben Sie erfahren, wie Sie die Leistungsstatistiken von John verstehen und seine Ausgabe zur dauerhaften Aufzeichnung in eine Datei protokollieren können. Diese Fähigkeiten sind grundlegend für die effektive Nutzung von John the Ripper für Passwort-Audits und Sicherheitstests.


