Einleitung
In diesem Lab werden Sie die wesentlichen Funktionen von John the Ripper (JtR) für die Verwaltung von Passwort-Cracking-Sitzungen erkunden. Ein effektives Sitzungsmanagement ist entscheidend für langlaufende Cracking-Aufgaben, da es Ihnen ermöglicht, Operationen zu pausieren und fortzusetzen, unerwartete Unterbrechungen zu überstehen und Ihren Fortschritt zu verfolgen. Sie lernen, wie Sie eine Cracking-Sitzung starten, sie ordnungsgemäß pausieren und fortsetzen, die Rolle von Sitzungsdateien verstehen und sogar eine Sitzung nach einem simulierten Absturz wiederherstellen. Abschließend lernen Sie, wie Sie alte Sitzungsdateien bereinigen, um eine aufgeräumte Arbeitsumgebung zu erhalten.
Eine John the Ripper Cracking-Sitzung starten
In diesem Schritt starten Sie eine grundlegende John the Ripper Cracking-Sitzung. Wir verwenden einen einfachen MD5-Hash und eine kleine Wortliste, um den Prozess zu demonstrieren. John the Ripper erstellt automatisch eine Sitzungsdatei, wenn Sie einen Cracking-Prozess starten, was für die Verwaltung der Sitzung unerlässlich ist.
Erstellen Sie zunächst eine einfache Wortlistendatei namens wordlist.txt in Ihrem Verzeichnis ~/project.
echo -e "test\npassword\n123456\nadmin" > ~/project/wordlist.txt
Starten Sie nun John the Ripper, um die Datei passwords.txt mit der Datei wordlist.txt zu knacken. Wir verwenden die Option --session, um unserer Sitzung einen bestimmten Namen zu geben, was die Verwaltung erleichtert.
john --format=raw-md5 --wordlist=~/project/wordlist.txt --session=my_first_session ~/project/passwords.txt
Sie sollten sehen, wie John the Ripper den Cracking-Prozess startet. Wahrscheinlich findet er das Passwort schnell, da unsere Wortliste klein ist und das richtige Passwort enthält.
Beispielausgabe:
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password (user1)
1g 0:00:00:00 DONE (2023-10-27 08:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed
Nach Abschluss der Sitzung können Sie die geknackten Passwörter mit der Option --show anzeigen.
john --show ~/project/passwords.txt
Beispielausgabe:
user1:password
1 password hash cracked, 0 left
Eine Cracking-Sitzung pausieren und fortsetzen
In diesem Schritt lernen Sie, wie Sie eine laufende John the Ripper-Sitzung pausieren und dann fortsetzen. Dies ist besonders nützlich für langwierige Cracking-Aufgaben, die Sie möglicherweise unterbrechen und später fortsetzen müssen.
Erstellen Sie zunächst eine größere Dummy-Wortliste, um sicherzustellen, dass der Cracking-Prozess einige Zeit in Anspruch nimmt, damit wir ihn pausieren können.
seq 1000000 | sed "s/$/password/" > ~/project/large_wordlist.txt
Starten Sie nun eine neue John the Ripper-Sitzung mit dieser großen Wortliste. Wir nennen diese Sitzung long_session.
john --format=raw-md5 --wordlist=~/project/large_wordlist.txt --session=long_session ~/project/passwords.txt
Sobald das Cracking beginnt, drücken Sie sofort Strg+C, um die Sitzung zu pausieren. John the Ripper speichert seinen aktuellen Zustand in der Sitzungsdatei.
Beispielausgabe nach dem Drücken von Strg+C:
...
Press 'q' or Ctrl-C to abort, almost any other key for status
^C
Session aborted.
Um die Sitzung fortzusetzen, verwenden Sie die Option --restore mit dem Sitzungsnamen.
john --restore=long_session
John the Ripper setzt genau dort fort, wo es aufgehört hat. Sie können es laufen lassen, bis es das Passwort findet, oder erneut Strg+C drücken, um es zu pausieren.
Beispielausgabe nach dem Fortsetzen:
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
...
password (user1)
1g 0:00:00:00 DONE (2023-10-27 08:35) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed
Sitzungsdateien verstehen
In diesem Schritt untersuchen Sie die von John the Ripper erstellten Sitzungsdateien. Diese Dateien speichern den Zustand Ihrer Cracking-Sitzungen und ermöglichen das Pausieren, Fortsetzen und Wiederherstellen.
John the Ripper speichert Sitzungsdateien normalerweise im Verzeichnis ~/.john. Listen wir den Inhalt dieses Verzeichnisses auf, um die von Ihnen erstellten Sitzungsdateien anzuzeigen.
ls -l ~/.john/
Sie sollten Dateien wie my_first_session.rec und long_session.rec sehen. Die Erweiterung .rec kennzeichnet eine Wiederherstellungsdatei (recovery file).
Beispielausgabe:
total 16
-rw------- 1 labex labex 8192 Oct 27 08:30 my_first_session.rec
-rw------- 1 labex labex 8192 Oct 27 08:35 long_session.rec
Sie können auch den Inhalt einer Sitzungsdatei anzeigen, obwohl es sich hauptsächlich um Binärdaten handelt. Sie können jedoch strings verwenden, um lesbare Zeichenfolgen daraus zu extrahieren, die möglicherweise einige Sitzungsinformationen anzeigen.
strings ~/.john/long_session.rec | head -n 10
Beispielausgabe (kann variieren):
JtR session file
long_session
raw-md5
/home/labex/project/passwords.txt
/home/labex/project/large_wordlist.txt
Diese Sitzungsdateien sind entscheidend für die Fähigkeit von John the Ripper, Cracking-Prozesse zu verwalten und wiederherzustellen.
Von einer abgestürzten Sitzung wiederherstellen
In diesem Schritt lernen Sie, wie Sie eine John the Ripper-Sitzung wiederherstellen, die unerwartet abgestürzt sein könnte. Dies ähnelt dem Fortsetzen einer pausierten Sitzung, da John the Ripper seinen Zustand regelmäßig automatisch speichert.
Erstellen wir zunächst einen Absturz-Simulation. Starten Sie eine neue Sitzung, aber diesmal werden wir den Prozess abrupt beenden, anstatt ihn ordnungsgemäß zu pausieren.
john --format=raw-md5 --wordlist=~/project/large_wordlist.txt --session=crash_test ~/project/passwords.txt &
Beachten Sie das & am Ende, das den Befehl im Hintergrund ausführt. Dies ermöglicht es uns, ihn zu beenden.
Finden Sie nun die Prozess-ID (PID) des john-Prozesses.
pgrep john
Beispielausgabe (PID wird variieren):
12345
Beenden Sie nun den john-Prozess mit seiner PID. Ersetzen Sie YOUR_PID durch die tatsächliche PID, die Sie gefunden haben.
kill YOUR_PID
Sie sehen möglicherweise eine Meldung wie Terminated oder Killed. Dies simuliert eine unerwartete Beendigung.
Versuchen Sie nun, die Sitzung crash_test wiederherzustellen. John the Ripper sollte in der Lage sein, dort fortzufahren, wo es aufgehört hat, auch nach einer abrupten Beendigung.
john --restore=crash_test
Beispielausgabe:
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
...
password (user1)
1g 0:00:00:00 DONE (2023-10-27 08:40) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed
Dies demonstriert die robusten Wiederherstellungsfähigkeiten von John the Ripper, die für langwierige Cracking-Operationen unerlässlich sind.
Alte Sitzungsdateien bereinigen
In diesem Schritt lernen Sie, wie Sie alte John the Ripper-Sitzungsdateien bereinigen. Obwohl diese Dateien für die Wiederherstellung nützlich sind, können sie sich im Laufe der Zeit ansammeln, insbesondere wenn Sie viele Sitzungen ausführen.
Um eine bestimmte Sitzungsdatei zu entfernen, können Sie die Option --remove mit dem Sitzungsnamen verwenden. Entfernen wir die Datei my_first_session.
john --remove=my_first_session
Sie werden aufgefordert, die Entfernung zu bestätigen. Geben Sie y ein und drücken Sie Enter.
Beispielausgabe:
Remove session file ~/.john/my_first_session.rec? y
Überprüfen Sie nun, ob die Datei entfernt wurde, indem Sie erneut den Inhalt des Verzeichnisses ~/.john auflisten.
ls -l ~/.john/
Sie sollten my_first_session.rec nicht mehr sehen.
Beispielausgabe:
total 16
-rw------- 1 labex labex 8192 Oct 27 08:35 long_session.rec
-rw------- 1 labex labex 8192 Oct 27 08:40 crash_test.rec
Sie können die .rec-Dateien auch manuell löschen, wenn Sie dies bevorzugen. Die Verwendung von john --remove ist jedoch der empfohlene Weg, da er eine ordnungsgemäße Bereinigung gewährleistet.
rm ~/.john/long_session.rec
rm ~/.john/crash_test.rec
Überprüfen Sie abschließend, ob alle Sitzungsdateien entfernt wurden.
ls -l ~/.john/
Beispielausgabe:
total 0
Die Organisation Ihrer Sitzungsdateien hilft bei der effizienten Verwaltung Ihrer Cracking-Aufgaben.
Zusammenfassung
In diesem Lab haben Sie praktische Erfahrungen im Management von John the Ripper Cracking-Sitzungen gesammelt. Sie haben gelernt, wie man eine Sitzung startet, sie effektiv pausiert und fortsetzt und die entscheidende Rolle von Sitzungsdateien bei der Aufrechterhaltung des Cracking-Fortschritts versteht. Darüber hinaus haben Sie untersucht, wie man eine Sitzung nach einem unerwarteten Absturz wiederherstellt, was die Widerstandsfähigkeit von John the Ripper hervorhebt. Abschließend haben Sie das Bereinigen alter Sitzungsdateien geübt, um Ihre Arbeitsumgebung ordentlich zu halten. Diese Fähigkeiten sind grundlegend für jeden, der langwierige Passwort-Audits oder Cracking-Aufgaben mit John the Ripper durchführt.


