Passwortgeschützte 7z-Archive knacken

Kali LinuxBeginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie den grundlegenden Prozess des Knackens eines passwortgeschützten 7z-Archivs. 7-Zip ist ein beliebtes Dateikomprimierungsprogramm mit einem hohen Kompressionsverhältnis, das es Benutzern ermöglicht, Archive mit einem Passwort zu verschlüsseln. Wir werden ein Szenario simulieren, in dem Sie ein vergessenes Passwort wiederherstellen müssen.

Sie werden eine Kombination aus leistungsstarken, branchenüblichen Werkzeugen verwenden: p7zip zum Erstellen des Archivs, die John the Ripper-Suite zum Extrahieren des Passwort-Hashes und Hashcat zum eigentlichen Knacken. Diese praktische Erfahrung wird Sie durch das Erstellen eines Ziels, das Extrahieren seines kryptografischen Hashes und die Verwendung eines Maskenangriffs zur effizienten Ermittlung des Passworts führen.

Erstellen eines passwortgeschützten 7z-Archivs

In diesem Schritt erstellen wir zunächst eine Beispieldatei und komprimieren sie dann in ein passwortgeschütztes 7z-Archiv. Dieses Archiv wird unser Ziel für den Passwort-Knack-Prozess in den folgenden Schritten sein.

Erstellen wir zunächst eine einfache Textdatei namens secret.txt in Ihrem aktuellen Verzeichnis, ~/project.

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

Nun verwenden wir den Befehl 7z, um aus secret.txt ein Archiv namens secret.7z zu erstellen. Wir schützen es mit dem Passwort LabEx2024. Das Flag -p wird verwendet, um das Passwort direkt anzugeben.

7z a -pLabEx2024 secret.7z secret.txt

Sie sollten eine Ausgabe sehen, die anzeigt, dass die Datei erfolgreich erstellt und komprimiert wurde.

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs LE)

Scanning the drive:
1 file, 25 bytes (1 KiB)

Creating archive: secret.7z

Items to compress: 1


Files read from disk: 1
Archive size: 228 bytes (1 KiB)
Everything is Ok

Sie haben nun erfolgreich das passwortgeschützte Archiv erstellt, mit dem wir arbeiten werden.

Verwenden von 7z2john.pl zum Extrahieren des Hashes

In diesem Schritt extrahieren Sie den Passwort-Hash aus dem Archiv secret.7z. Passwort-Knack-Tools wie Hashcat arbeiten nicht direkt mit der Archivdatei; sie benötigen eine spezifische String-Darstellung des Verschlüsselungsschlüssels des Passworts, bekannt als Hash.

Wir werden 7z2john verwenden, ein Dienstprogramm aus der John the Ripper-Suite, das speziell zum Extrahieren dieser Hashes aus 7z-Archiven entwickelt wurde.

Führen Sie den folgenden Befehl aus, um secret.7z zu verarbeiten und seinen Hash in einer neuen Datei namens hash.txt zu speichern. Das Symbol > leitet die Ausgabe des Befehls in die angegebene Datei um.

/usr/sbin/7z2john secret.7z > hash.txt

Der Befehl erzeugt keine sichtbare Ausgabe im Terminal, da sie umgeleitet wurde. Um zu bestätigen, dass der Hash extrahiert wurde, zeigen Sie den Inhalt von hash.txt an:

cat hash.txt

Die Ausgabe ist ein langer String, der den Hash darstellt, der das Passwort repräsentiert. Er wird dem Dateinamen vorangestellt sein.

secret.7z:$7z$2$19$0$$8$d251a688873348860000000000000000$1813433382$112$96$f2172032148f1959a258c28b51933a3c8a00c1781343782d44114a2f311e1ca854028b8243b16a1f5e5811652c546412f213f7a361152b3811443a38c45a3301

Sie haben nun den Hash für die nächste Vorbereitungsphase bereit.

Bereinigen des extrahierten Hashes für Hashcat

In diesem Schritt müssen wir den extrahierten Hash für Hashcat vorbereiten. Die Ausgabe von 7z2john ist für John the Ripper formatiert und enthält den Dateinamen als Präfix (z. B. secret.7z:). Hashcat benötigt jedoch nur den reinen Hash-String, um korrekt zu funktionieren.

Wir verwenden den Befehl cut, um das Dateinamenpräfix zu entfernen. Der Befehl cut ist ein einfaches Dienstprogramm zum Extrahieren von Abschnitten aus Zeilen von Dateien. Wir weisen ihn an, den Doppelpunkt (:) als Trennzeichen zu verwenden und das zweite Feld auszuwählen.

Führen Sie den folgenden Befehl aus, um den Hash zu bereinigen und ihn in einer neuen Datei namens hashcat.txt zu speichern:

cut -d':' -f2 hash.txt > hashcat.txt
  • -d':' setzt das Trennzeichen auf einen Doppelpunkt.
  • -f2 wählt das zweite Feld nach der Aufteilung aus.

Überprüfen wir den Inhalt unserer neuen Datei, um sicherzustellen, dass das Präfix entfernt wurde.

cat hashcat.txt

Die Ausgabe sollte nun nur noch der Hash-String sein, ohne den Teil secret.7z:.

$7z$2$19$0$$8$d251a688873348860000000000000000$1813433382$112$96$f2172032148f1959a258c28b51933a3c8a00c1781343782d44114a2f311e1ca854028b8243b16a1f5e5811652c546412f213f7a361152b3811443a38c45a3301

Der Hash liegt nun im richtigen Format für Hashcat vor.

Auswahl des Hash-Modus für 7-Zip

In diesem Schritt identifizieren wir den korrekten "Hash-Modus", den Hashcat benötigt, um unseren 7-Zip-Hash zu verstehen und zu verarbeiten. Hashcat unterstützt Hunderte verschiedener Hash-Typen, und jeder von ihnen hat einen eindeutigen numerischen Code. Sie müssen den korrekten Code angeben, damit Hashcat funktioniert.

Wir können den Modus für 7-Zip finden, indem wir das Hilfe-Menü von Hashcat durchsuchen. Wir verwenden grep, um die Ausgabe nach dem Begriff "7-Zip" zu filtern.

hashcat --help | grep -i "7-Zip"

Das Flag -i in grep macht die Suche unempfindlich gegenüber Groß- und Kleinschreibung. Die Ausgabe zeigt Ihnen die dem 7-Zip-Archiv zugeordnete Modusnummer an.

11600 | 7-Zip                                          | Archives

Wie Sie aus der Ausgabe ersehen können, ist der Hash-Modus für 7-Zip 11600. Wir werden diese Nummer im nächsten Schritt verwenden, wenn wir den Knack-Angriff ausführen.

Ausführen eines Masken-Angriffs zum Knacken des 7z-Passworts

In diesem letzten Schritt verwenden wir Hashcat, um das Passwort zu knacken. Wir führen einen "Masken-Angriff" durch, eine Art Brute-Force-Angriff, der sehr effektiv ist, wenn man Kenntnisse über die Struktur des Passworts hat.

Unser Passwort ist LabEx2024. Wir können seine Struktur mit einer Maske beschreiben:

  • Es beginnt mit einem Großbuchstaben (?u).
  • Gefolgt von zwei Kleinbuchstaben (?l?l).
  • Gefolgt von einem Großbuchstaben und einem Kleinbuchstaben (?u?l).
  • Es endet mit vier Ziffern (?d?d?d?d).

Die vollständige Maske lautet ?u?l?l?u?l?d?d?d?d.

Nun konstruieren wir den Hashcat-Befehl:

  • -m 11600: Gibt den 7-Zip-Hash-Modus an, den wir im vorherigen Schritt gefunden haben.
  • -a 3: Setzt den Angriffsmodus auf "Brute-force / Mask".
  • hashcat.txt: Unsere Datei, die den bereinigten Hash enthält.
  • ?u?l?l?u?l?d?d?d?d: Die Passwortmaske.

Führen Sie den Befehl aus, um den Angriff zu starten:

hashcat -m 11600 -a 3 hashcat.txt ?u?l?l?u?l?d?d?d?d

Hashcat wird gestartet und Sie sehen seinen Statusbildschirm. Da das Passwort einfach und die Maske präzise ist, sollte es sehr schnell geknackt werden.

...
Session..........: hashcat
Status...........: Cracked
...

Sobald der Status Cracked anzeigt, wurde das Passwort gefunden. Um das wiederhergestellte Passwort anzuzeigen, können Sie das Flag --show mit demselben Befehl verwenden:

hashcat -m 11600 hashcat.txt --show

Dies zeigt den Hash gefolgt von dem geknackten Passwort an.

$7z$2$19$0$$8$d251a688873348860000000000000000$1813433382$112$96$f2172032148f1959a258c28b51933a3c8a00c1781343782d44114a2f311e1ca854028b8243b16a1f5e5811652c546412f213f7a361152b3811443a38c45a3301:LabEx2024

Herzlichen Glückwunsch! Sie haben das Passwort für das 7z-Archiv erfolgreich geknackt.

Zusammenfassung

In diesem Labor haben Sie den vollständigen Prozess des Knackens eines passwortgeschützten 7z-Archivs erfolgreich durchlaufen.

Sie haben gelernt, wie Sie:

  • Ein passwortgeschütztes 7z-Archiv mit dem Befehl 7z erstellen.
  • Das Dienstprogramm 7z2john verwenden, um den Passwort-Hash aus dem Archiv zu extrahieren.
  • Den extrahierten Hash bereinigen und formatieren, um ihn mit Hashcat zu verwenden.
  • Den korrekten Hash-Modus in Hashcat für einen bestimmten Hash-Typ identifizieren.
  • Einen gezielten Masken-Angriff mit Hashcat ausführen, um das Passwort effizient wiederherzustellen.

Dieser Workflow bietet eine solide Grundlage für das Verständnis der Prinzipien des Passwort-Crackings und die praktische Anwendung leistungsstarker Werkzeuge wie John the Ripper und Hashcat.