ZIP-Passwörter mit John the Ripper knacken

HydraBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie, wie Sie eine passwortgeschützte ZIP-Datei mit John the Ripper knacken, einem der bekanntesten und leistungsstärksten Werkzeuge zur Passwortwiederherstellung. Diese Übung führt Sie durch die grundlegenden Schritte eines Passwort-Cracking-Prozesses – von der Einrichtung der erforderlichen Tools bis hin zur Verifizierung des geknackten Passworts. Am Ende dieses Labs werden Sie verstehen, wie Passwort-Hashes extrahiert und in Wörterbuch- sowie Brute-Force-Angriffen verwendet werden. Dies verdeutlicht, wie wichtig die Verwendung starker Passwörter für den Schutz von Dateien ist.

Erforderliche Tools installieren

Bevor wir mit dem Knacken von Passwörtern beginnen können, müssen wir die notwendige Software installieren. In diesem Schritt installieren Sie John the Ripper (JtR), das Hauptwerkzeug für dieses Lab, sowie das Hilfsprogramm zip, mit dem wir unsere Zieldatei erstellen. Wir verwenden den Paketmanager apt, der Standard für Debian-basierte Systeme wie Ubuntu ist.

Installieren Sie zunächst die erforderlichen Abhängigkeiten und das zip-Tool, indem Sie die folgenden Befehle in Ihrem Terminal ausführen. Das Flag -y bestätigt die Installation automatisch.

sudo apt update
sudo apt install -y git build-essential libssl-dev zlib1g-dev zip
sudo apt install -y yasm pkg-config libgmp-dev libpcap-dev libbz2-dev

Das Standardpaket john aus den apt-Repositories enthält nicht das Hilfsprogramm zip2john, das wir benötigen. Wir werden John the Ripper aus dem offiziellen Repository klonen und selbst kompilieren, um den vollständigen Werkzeugsatz zu erhalten.

cd ~/project
git clone --depth 1 https://github.com/openwall/john -b bleeding-jumbo john
cd john/src
./configure && make -s clean && make -sj4

Warnung: Der Kompilierungsvorgang kann 3 bis 5 Minuten dauern. Bitte haben Sie etwas Geduld.

Nachdem die Kompilierung abgeschlossen ist, erstellen Sie Aliase für die John the Ripper-Tools, damit Sie diese von überall aus aufrufen können:

echo 'alias john="$HOME/project/john/run/john"' >> ~/.zshrc
echo 'alias zip2john="$HOME/project/john/run/zip2john"' >> ~/.zshrc
source ~/.zshrc

Überprüfen Sie nun, ob sowohl john als auch zip2john aus jedem beliebigen Verzeichnis korrekt funktionieren:

john

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die anzeigt, dass John the Ripper erfolgreich installiert wurde:

John the Ripper 1.9.0-jumbo-1+bleeding-7a8c81abd9 2025-08-23 23:43:48 +0200 OMP [linux-gnu 64-bit x86_64 AVX-512 AC]
Copyright (c) 1996-2025 by Solar Designer and others
Homepage: https://www.openwall.com/john/

Usage: john [OPTIONS] [PASSWORD-FILES]

Use --help to list all available options.

Überprüfen Sie ebenfalls, ob zip2john verfügbar ist:

zip2john

Dies sollte die Nutzungsinformationen für das Hilfsprogramm zip2john anzeigen.

Kehren Sie nun für den Rest des Labs in Ihr Projektverzeichnis zurück:

cd ~/project

Nachdem die erforderlichen Tools installiert sind, können Sie nun eine passwortgeschützte Datei für unsere Cracking-Übung erstellen.

Eine passwortgeschützte ZIP-Datei erstellen

Um das Knacken von Passwörtern zu üben, benötigen wir zunächst ein Ziel. In diesem Schritt erstellen Sie eine einfache Textdatei und archivieren diese anschließend in einer passwortgeschützten ZIP-Datei. Dies simuliert ein reales Szenario, in dem sensible Dateien mit einem Passwort gesichert werden.

Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden. Ihr Terminal sollte sich standardmäßig bereits dort befinden.

cd ~/project

Erstellen Sie als Nächstes eine einfache Textdatei namens secret.txt. Diese Datei wird in unser geschütztes ZIP-Archiv gepackt.

echo "my secret data" > secret.txt

Verwenden Sie nun den Befehl zip mit dem Flag -e (für Verschlüsselung), um ein passwortgeschütztes Archiv namens secret.zip zu erstellen, das die Datei secret.txt enthält.

zip -e secret.zip secret.txt

Nachdem Sie den Befehl ausgeführt haben, werden Sie aufgefordert, ein Passwort einzugeben und zu bestätigen. Verwenden Sie für dieses Lab das schwache Passwort password123. Dies beschleunigt den Cracking-Prozess zu Demonstrationszwecken.

Hinweis: Während Sie das Passwort eingeben, werden keine Zeichen auf dem Bildschirm angezeigt – dies ist ein normales Sicherheitsmerkmal und kein Systemfehler. Tippen Sie das Passwort einfach ein und drücken Sie die Eingabetaste.

Enter password:
Verify password:
  adding: secret.txt (stored 0%)

Abschließend können Sie die Dateien im Verzeichnis auflisten, um zu bestätigen, dass secret.zip erstellt wurde.

ls -l

Sie sollten secret.txt und secret.zip in der Ausgabe sehen.

total 8
-rw-rw-r-- 1 labex labex  15 Aug 29 09:57 secret.txt
-rw-rw-r-- 1 labex labex 213 Aug 29 09:57 secret.zip

Sie haben nun erfolgreich eine passwortgeschützte ZIP-Datei erstellt, die uns in den folgenden Schritten als Ziel dienen wird.

Den Hash aus der ZIP-Datei extrahieren

John the Ripper arbeitet nicht direkt mit der ZIP-Datei selbst. Stattdessen arbeitet das Tool mit dem Passwort-Hash der Datei. Ein Hash ist eine eindeutige Zeichenfolge, die das Passwort repräsentiert. In diesem Schritt verwenden Sie das in John the Ripper enthaltene Hilfsprogramm zip2john, um diesen Hash zu extrahieren.

Führen Sie den Befehl zip2john auf Ihre Datei secret.zip aus. Wir leiten die Ausgabe mit dem Operator > um, um den Hash in einer neuen Datei namens zip_hash.txt zu speichern:

zip2john secret.zip > zip_hash.txt

Wenn Sie diesen Befehl ausführen, sehen Sie im Terminal einige detaillierte Ausgaben über die Struktur der ZIP-Datei:

ver 1.0 efh 5455 efh 7875 secret.zip/secret.txt PKZIP Encr: 2b chk, TS_chk, cmplen=27, decmplen=15, crc=AF1563E8 ts=4F26 cs=4f26 type=0

Diese Informationen zeigen Details über die verschlüsselte Datei, einschließlich Kompressions- und Verschlüsselungsparametern.

Um zu sehen, wie der extrahierte Hash aussieht, verwenden Sie den Befehl cat, um den Inhalt von zip_hash.txt anzuzeigen:

cat zip_hash.txt

Die Ausgabe ist eine einzelne Textzeile, die etwa so aussieht:

secret.zip/secret.txt:$pkzip$1*2*2*0*1b*f*af1563e8*0*44*0*1b*4f26*50dbe9bcf15eafdb00ef774e1eaffef116bf5e0597fa55bb8b364c*$/pkzip$:secret.txt:secret.zip::secret.zip

Der Hash-String enthält den ursprünglichen Dateinamen, den Verschlüsselungstyp ($pkzip$) und die verschlüsselten Daten. Nachdem diese Hash-Datei erstellt wurde, sind Sie bereit, John the Ripper zum Knacken des Passworts einzusetzen.

Das Passwort knacken

Da Sie nun den Passwort-Hash haben, können Sie John the Ripper verwenden, um ihn zu knacken. JtR verwendet standardmäßig seine voreingestellten Konfigurationen, die ein Wörterbuch mit gängigen Passwörtern und Regeln enthalten, um eine Übereinstimmung für den Hash zu finden.

Um den Cracking-Prozess zu starten, führen Sie einfach den Befehl john aus und geben Sie Ihre Hash-Datei zip_hash.txt als Eingabe an:

john zip_hash.txt

Da wir ein sehr schwaches Passwort verwendet haben, sollte John the Ripper es schnell knacken. Die Ausgabe zeigt den Fortschritt und das Ergebnis an. John wird verschiedene Angriffsmodi ausprobieren – zuerst den "Single"-Modus, dann den Wortlisten-Modus:

Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 4 OpenMP threads
Note: Passwords longer than 21 [worst case UTF-8] to 63 [ASCII] rejected
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
0g 0:00:00:00 DONE 1/3 (2025-08-29 10:24) 0g/s 2619Kp/s 2619Kc/s 2619KC/s Txtsecret1900..Tzip1900
Proceeding with wordlist:/home/labex/project/john/run/password.lst
Enabling duplicate candidate password suppressor using 256 MiB
password123      (secret.zip/secret.txt)
1g 0:00:00:00 DONE 2/3 (2025-08-29 10:24) 8.333g/s 286541p/s 286541c/s 286541C/s 123456..nelly1
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Die Zeile password123 (secret.zip/secret.txt) zeigt an, dass das Passwort erfolgreich geknackt wurde. Beachten Sie, dass John zuerst den "Single"-Modus versucht (der das Passwort nicht gefunden hat) und dann zum Wortlisten-Modus übergeht, in dem das Passwort erfolgreich gefunden wird.

Sobald ein Passwort geknackt wurde, speichert John es in einer Datei. Um alle geknackten Passwörter für eine bestimmte Hash-Datei anzuzeigen, können Sie die Option --show verwenden.

john --show zip_hash.txt

Dieser Befehl zeigt das geknackte Passwort in einem übersichtlichen Format an und verknüpft es mit der Quelldatei.

secret.zip/secret.txt:password123:secret.txt:secret.zip::secret.zip

1 password hash cracked, 0 left

Sie haben John the Ripper erfolgreich eingesetzt, um das Passwort aus dem Hash der ZIP-Datei wiederherzustellen. Der letzte Schritt besteht darin, zu überprüfen, ob dieses Passwort tatsächlich funktioniert.

Zugriff mit dem geknackten Passwort verifizieren

Der letzte Schritt in diesem Prozess ist die Bestätigung, dass das von Ihnen geknackte Passwort korrekt ist. Dazu verwenden Sie das Passwort, um den Inhalt des Archivs secret.zip zu extrahieren. Dieser Schritt validiert das Ergebnis Ihrer Bemühungen.

Verwenden Sie den Befehl unzip, um das Archiv zu entpacken.

unzip secret.zip

Der Befehl wird Sie nach dem Passwort fragen. Geben Sie password123 ein, also das Passwort, das John the Ripper wiederhergestellt hat.

Archive:  secret.zip
[secret.zip] secret.txt password:
replace secret.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: yes
 extracting: secret.txt

Möglicherweise erscheint eine Aufforderung, ob Sie die vorhandene Datei secret.txt ersetzen möchten (falls diese noch aus Schritt 2 existiert). Geben Sie yes ein, um das Ersetzen zu bestätigen. Wenn das Passwort korrekt ist, extrahiert der Befehl unzip die Datei secret.txt ohne Fehler in Ihr aktuelles Verzeichnis.

Um die Verifizierung abzuschließen, lassen Sie sich den Inhalt der extrahierten Datei anzeigen, um sicherzustellen, dass die Daten intakt sind.

cat secret.txt

Die Ausgabe sollte mit dem ursprünglichen Text übereinstimmen, den wir in Schritt 2 erstellt haben.

my secret data

Durch das erfolgreiche Extrahieren der Datei und das Einsehen ihres ursprünglichen Inhalts haben Sie bestätigt, dass das von John the Ripper wiederhergestellte Passwort korrekt ist. Damit ist der vollständige Zyklus vom Erstellen einer geschützten Datei über das Knacken des Passworts bis hin zur Verifizierung des Ergebnisses abgeschlossen.

Zusammenfassung

In diesem Lab haben Sie praktische Erfahrungen im Knacken von Passwörtern mit John the Ripper gesammelt. Sie haben gelernt, wie man die notwendigen Tools installiert, eine passwortgeschützte ZIP-Datei erstellt und deren Passwort-Hash mit zip2john extrahiert. Anschließend haben Sie John the Ripper erfolgreich eingesetzt, um das Passwort aus dem Hash zu knacken, und schließlich das geknackte Passwort verifiziert, indem Sie damit auf die geschützte Datei zugegriffen haben. Diese Übung demonstriert eine grundlegende Technik bei Sicherheitstests und unterstreicht die Anfälligkeit schwacher Passwörter.