ZIP-Archive mit John the Ripper knacken

Kali LinuxBeginner
Jetzt üben

Einleitung

In diesem Labor erhalten Sie praktische Erfahrung mit Techniken zur Passwortknackung, die speziell auf ZIP-Archive abzielen. Sie werden John the Ripper, ein leistungsstarkes Open-Source-Tool zur Passwortknackung, in Verbindung mit zip2john, einem Dienstprogramm zur Konvertierung von ZIP-Dateien in ein Hash-Format, das John the Ripper versteht, verwenden. Dieses Labor führt Sie durch die Erstellung einer passwortgeschützten ZIP-Datei, die Extraktion ihres Hashes und den anschließenden Versuch, diesen zu knacken. Darüber hinaus lernen Sie die inhärenten Schwächen älterer ZIP-Verschlüsselungsmethoden kennen und entdecken sicherere Alternativen zum Schutz Ihrer sensiblen Daten.

Erstellen eines passwortgeschützten ZIP-Archivs

In diesem Schritt erstellen Sie eine einfache Textdatei und komprimieren sie dann in ein passwortgeschütztes ZIP-Archiv. Diese ZIP-Datei dient als unser Ziel für die nachfolgenden Knackversuche. Wir verwenden zu Demonstrationszwecken ein einfaches, leicht zu erratendes Passwort.

Stellen Sie zunächst sicher, dass Sie sich im Ordner project Ihres Home-Verzeichnisses befinden.

cd ~/project

Erstellen Sie nun eine Datei namens secret.txt mit etwas Inhalt.

echo "This is a secret message." > secret.txt

Erstellen Sie als Nächstes ein passwortgeschütztes ZIP-Archiv namens archive.zip, das secret.txt enthält. Geben Sie bei Aufforderung password123 als Passwort ein.

zip -e archive.zip secret.txt

Sie werden aufgefordert, ein Passwort einzugeben:

Enter password:
Verify password:
  adding: secret.txt (deflated 29%)

Sie können die Erstellung der ZIP-Datei überprüfen, indem Sie den Inhalt des aktuellen Verzeichnisses auflisten.

ls -l

Sie sollten archive.zip und secret.txt aufgelistet sehen.

Hash aus ZIP-Datei mit zip2john extrahieren

In diesem Schritt verwenden Sie das Dienstprogramm zip2john, um den Passwort-Hash aus der Datei archive.zip zu extrahieren. Dieser Hash ist eine Darstellung des Passworts, die John the Ripper verwenden kann, um zu versuchen, das ursprüngliche Passwort zu knacken.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project

Führen Sie nun zip2john auf archive.zip aus und leiten Sie dessen Ausgabe in eine Datei namens zip_hash.txt um.

zip2john archive.zip > zip_hash.txt

Dieser Befehl extrahiert den Hash und speichert ihn in zip_hash.txt. Die Ausgabe von zip2john sieht typischerweise so aus (der tatsächliche Hash wird anders sein):

archive.zip:$zip$*0*1*0*...*secret.txt*$/zip$

Sie können den Inhalt der Datei zip_hash.txt anzeigen, um zu bestätigen, dass der Hash extrahiert wurde.

cat zip_hash.txt

Die Ausgabe sollte den extrahierten Hash-String anzeigen.

ZIP-Hash mit John the Ripper knacken

Nachdem Sie den Hash extrahiert haben, verwenden Sie nun John the Ripper, um zu versuchen, das Passwort zu knacken. Wir verwenden für diese Demonstration eine einfache Wortliste, die das zuvor festgelegte Passwort enthält.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project

John the Ripper verwendet oft eine Wortliste, um gängige Passwörter auszuprobieren. Für dieses Lab erstellen wir eine kleine benutzerdefinierte Wortliste, die unser Zielpasswort enthält.

echo -e "test\npassword\n123456\npassword123\nadmin" > wordlist.txt

Führen Sie nun John the Ripper mit der Datei zip_hash.txt und der wordlist.txt aus.

john --wordlist=wordlist.txt zip_hash.txt

John the Ripper verarbeitet den Hash und die Wortliste. Bei Erfolg wird das geknackte Passwort angezeigt. Die Ausgabe wird in etwa wie folgt aussehen:

Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (archive.zip)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123

Sie können auch die geknackten Passwörter, die John gefunden hat, überprüfen, indem Sie Folgendes ausführen:

john --show zip_hash.txt

Dieser Befehl zeigt alle Passwörter an, die John the Ripper erfolgreich geknackt und in seiner internen Pot-Datei gespeichert hat.

archive.zip:password123

1 password hash cracked, 0 left

Schwächen der ZIP-Verschlüsselung verstehen

In diesem Schritt lernen Sie die inhärenten Schwächen der Standard-ZIP-2.0-Verschlüsselungsmethode kennen, die in den vorherigen Schritten verwendet wurde. Das Verständnis dieser Schwächen ist entscheidend, um zu erkennen, warum stärkere Verschlüsselungsmethoden notwendig sind.

Die Standardverschlüsselung, die vom zip-Befehl verwendet wird (oft als "traditionelle PKZIP-Verschlüsselung" oder "ZIP-2.0-Verschlüsselung" bezeichnet), ist bekanntermaßen schwach. Sie verwendet einen proprietären Algorithmus, der anfällig für verschiedene Angriffe ist, darunter Known-Plaintext-Angriffe und Brute-Force-Angriffe, insbesondere mit moderner Rechenleistung.

Wichtige Schwächen:

  • Proprietärer Algorithmus: Der Algorithmus ist nicht öffentlich geprüft wie moderne kryptografische Standards (z. B. AES).
  • Schwache Schlüsselableitung: Die Schlüsselableitungsfunktion ist einfach und erleichtert es Angreifern, Passwörter zu erraten oder per Brute-Force zu knacken.
  • Known-Plaintext-Angriffe: Wenn ein Angreifer sowohl Zugriff auf die verschlüsselte ZIP-Datei als auch auf eine unverschlüsselte Version mindestens einer darin enthaltenen Datei (auch einer kleinen) hat, kann er den Verschlüsselungsschlüssel oft sehr schnell wiederherstellen. Dies ist eine erhebliche Schwachstelle.
  • Begrenzter Schlüsselraum: Bei kürzeren Passwörtern ist der effektive Schlüsselraum klein, was Brute-Force-Angriffe praktikabel macht.

Aufgrund dieser Schwächen wird die Verwendung der Standard-ZIP-2.0-Verschlüsselung für sensible Daten dringend abgeraten. Selbst ein moderat komplexes Passwort kann relativ schnell geknackt werden, wenn ein Angreifer über ausreichende Ressourcen oder einen bekannten Klartext verfügt.

Dieser Schritt erfordert keine Befehlsausführung, aber es ist wichtig, diese Konzepte für eine sichere Datenhandhabung zu verstehen.

ZIP-Archive effektiv sichern

Angesichts der Schwächen der traditionellen ZIP-Verschlüsselung ist es unerlässlich, bei der Sicherung sensibler Daten robustere Methoden zu verwenden. In diesem Schritt lernen Sie einen robusteren Verschlüsselungsstandard kennen und verwenden ihn: AES-256.

Viele moderne zip-Implementierungen, einschließlich der auf Ihrer LabEx VM installierten, unterstützen AES-Verschlüsselung. Beim Erstellen eines ZIP-Archivs können Sie die Verschlüsselungsmethode angeben.

Um ein ZIP-Archiv mit AES-256-Verschlüsselung zu erstellen, verwenden Sie normalerweise das Flag -P für das Passwort und das Flag -m für die Methode oder verlassen sich auf die standardmäßige starke Verschlüsselung, falls verfügbar. Das -e-Flag des zip-Befehls verwendet jedoch oft standardmäßig die schwächere PKZIP 2.0-Verschlüsselung. Für eine stärkere Verschlüsselung wie AES-256 ist es oft besser, 7z (7-Zip) oder WinRAR zu verwenden, die dies explizit unterstützen.

Da 7z ein weit verbreitetes Werkzeug für starke Archivierung ist, demonstrieren wir, wie ein AES-256-verschlüsseltes Archiv mit 7z erstellt wird. Installieren Sie zuerst p7zip-full.

sudo apt-get install -y p7zip-full

Erstellen Sie nun für diese Demonstration eine neue Datei.

echo "This is a highly secret message." > super_secret.txt

Erstellen Sie als Nächstes ein 7z-Archiv namens secure_archive.7z mit AES-256-Verschlüsselung. Geben Sie bei Aufforderung ein sicheres Passwort ein (z. B. StrongPassword!23).

7z a -p secure_archive.7z super_secret.txt

Sie werden aufgefordert, ein Passwort einzugeben:

Enter password (will not be echoed):
Verify password (will not be echoed):

Dieser Befehl erstellt standardmäßig ein 7z-Archiv mit AES-256-Verschlüsselung, das aufgrund seiner starken Verschlüsselungsalgorithmen und Schlüsselableitungsfunktionen deutlich sicherer ist als die traditionelle ZIP-2.0-Verschlüsselung.

Sie können die Erstellung des 7z-Archivs überprüfen.

ls -l

Sie sollten secure_archive.7z in der Liste sehen.

Bewährte Praktiken für sichere Archive:

  • Starke Verschlüsselung verwenden: Bevorzugen Sie immer AES-256-Verschlüsselung (z. B. mit 7z oder modernen zip-Tools, die AES explizit unterstützen).
  • Starke Passwörter verwenden: Kombinieren Sie Groß- und Kleinbuchstaben, Zahlen und Symbole. Streben Sie eine Länge von mindestens 12-16 Zeichen an.
  • Known-Plaintext vermeiden: Fügen Sie keine leicht zu erratenden oder öffentlich verfügbaren Dateien in Ihre verschlüsselten Archive ein.
  • Tools regelmäßig aktualisieren: Stellen Sie sicher, dass Ihre Archivierungssoftware auf dem neuesten Stand ist, um von den neuesten Sicherheitspatches und Verbesserungen zu profitieren.

Durch die Befolgung dieser Praktiken können Sie die Sicherheit Ihrer archivierten Daten erheblich verbessern.

Zusammenfassung

In diesem Labor haben Sie erfolgreich gelernt, wie man passwortgeschützte ZIP-Archive erstellt, deren Hashes mit zip2john extrahiert und diese Hashes dann mit John the Ripper knackt. Diese praktische Erfahrung demonstrierte den Prozess des Passwort-Crackings und hob die Schwachstellen älterer Verschlüsselungsmethoden hervor. Entscheidend ist, dass Sie auch die inhärenten Schwächen der traditionellen ZIP-2.0-Verschlüsselung verstanden und sicherere Alternativen wie die AES-256-Verschlüsselung mit Tools wie 7z kennengelernt haben. Durch die Anwendung der besprochenen Best Practices können Sie sicherstellen, dass Ihre sensiblen Daten mit robusten kryptografischen Standards geschützt sind.