🐧 Linux

Passwörter aus Archiven knacken: ZIP, RAR, 7z mit Profi-Tools

Passwörter aus Archiven knacken: ZIP, RAR, 7z mit Profi-Tools
⚠️ Hinweis: Alle Guides auf smoth.me dienen ausschließlich zu Informations- und Lernzwecken. Die Umsetzung erfolgt auf eigene Gefahr. Wir übernehmen keine Haftung für Schäden, Datenverluste oder Systemausfälle, die durch die Anwendung dieser Anleitungen entstehen können. → Vollständiger Haftungsausschluss

Servus, Homelab-Freunde und angehende Digital-Detektive! Heute tauchen wir in ein Thema ein, das uns im Alltag immer mal wieder begegnen kann: verschlüsselte Archive. Ob du nun ein altes ZIP-Archiv von vor zehn Jahren wiederfindest, dessen Passwort du partout vergessen hast, oder ob du im Rahmen eines kontrollierten Pentests ein verschlüsseltes Archiv analysieren musst – die Fähigkeit, Passwörter aus ZIP-, RAR- und 7z-Dateien zu extrahieren, ist Gold wert. Und glaub mir, ich hab schon einige Stunden damit verbracht, alte Backups wieder zugänglich zu machen!

Wir werden uns heute drei mächtige Werkzeuge ansehen: fcrackzip für ZIP-Dateien, John the Ripper als Schweizer Taschenmesser für diverse Hash-Typen (inklusive RAR und 7z) und natürlich Hashcat, den unangefochtenen König, wenn es um GPU-beschleunigte Angriffe geht. Mit diesen Tools und ein bisschen Geduld kriegen wir so manches Geheimnis wieder ans Licht.

Was wir vorhaben

Mein Ziel ist es, dir einen praxisnahen Guide an die Hand zu geben, der dich Schritt für Schritt durch den Prozess führt. Wir beginnen mit der Einrichtung unserer Arbeitsumgebung, erstellen Testarchive und gehen dann die verschiedenen Angriffsmethoden durch. Wir decken sowohl Wörterbuchangriffe als auch Brute-Force-Methoden ab. In meiner Erfahrung ist das der schnellste Weg, um ein Gefühl für die Tools zu bekommen.

Voraussetzungen

Bevor wir loslegen, sollten wir sicherstellen, dass dein System bereit ist. Du brauchst keine High-End-Hardware, aber je mehr Power du hast, desto schneller geht's natürlich. Gerade bei Hashcat macht eine gute Grafikkarte einen riesigen Unterschied.

  • Betriebssystem: Eine aktuelle Linux-Distribution. Ich persönlich nutze Kali Linux oder ein Debian/Ubuntu mit den entsprechenden Paketen, weil da vieles schon vorinstalliert oder leicht nachzuinstallieren ist.
  • Hardware:
    • CPU: Ein moderner Mehrkernprozessor ist von Vorteil, besonders für John the Ripper.
    • GPU: Für Hashcat ist eine NVIDIA- oder AMD-Grafikkarte mit aktuellen Treibern dringend empfohlen. Ohne GPU ist Hashcat zwar nutzbar, aber oft quälend langsam.
    • RAM: Mindestens 4 GB, besser 8 GB oder mehr, besonders wenn du mit großen Wordlists arbeitest.
    • Festplattenspeicher: Genug Platz für die Tools, die Wordlists (die rockyou.txt allein ist schon ein paar hundert MB groß!) und die Hash-Dateien. Rechne mit mindestens 20 GB freiem Speicher.
  • Benutzerrechte: Du benötigst sudo-Rechte, um Pakete zu installieren.
  • Testdateien: Für diesen Guide erstellen wir selbst verschlüsselte Archive mit bekannten Passwörtern. Wichtig: Verwende diese Methoden niemals, um unautorisiert auf Daten zuzugreifen! Das ist illegal und kann ernsthafte Konsequenzen haben. Dieser Guide dient ausschließlich Bildungszwecken und zur Wiederherstellung deiner eigenen vergessenen Passwörter.

Die Werkzeuge im Überblick

Bevor wir uns die Finger schmutzig machen, ein kurzer Überblick über unsere Waffen:

  • fcrackzip: Ein spezialisiertes Tool zum Knacken von ZIP-Archiven. Es ist schnell, schlank und perfekt, wenn du es nur mit ZIP-Dateien zu tun hast.
  • John the Ripper (JtR): Ein unglaublich vielseitiger Passwort-Cracker, der eine breite Palette von Hash-Typen unterstützt. John ist bekannt für seine Effizienz auf CPUs und seine Fähigkeit, Hashes aus vielen verschiedenen Dateiformaten zu extrahieren.
  • Hashcat: Der Platzhirsch für GPU-beschleunigte Passwort-Angriffe. Wenn du eine leistungsstarke Grafikkarte hast, ist Hashcat oft die schnellste Option, besonders bei komplexen Passwörtern und großen Wordlists.

Vorbereitung des Systems

Zuerst bringen wir unser System auf den neuesten Stand und installieren die benötigten Tools. Das ist der Standard-Startschuss für jedes neue Projekt in meinem Homelab.

sudo apt update
sudo apt install fcrackzip john hashcat p7zip-full unrar

Mit diesem Befehl installieren wir alle Werkzeuge, die wir für ZIP, RAR und 7z benötigen. p7zip-full und unrar sind wichtig, um die Archive später auch entpacken zu können und um die Hash-Extraktions-Tools wie 7z2john und rar2john nutzen zu können.

Testdateien anlegen

Für unsere Übungen erstellen wir jetzt ein paar Testdateien mit einfachen Passwörtern. So können wir sicher sein, dass unsere Methoden funktionieren.

echo "Dies ist ein Testinhalt für ZIP." > zip_test.txt
zip -e test.zip zip_test.txt
# Passwort: "test" eingeben

echo "Dies ist ein Testinhalt für RAR." > rar_test.txt
rar a -hp"test1234" test.rar rar_test.txt
# Achtung: RAR kann das Passwort direkt im Befehl akzeptieren, hier "test1234"

echo "Dies ist ein Testinhalt für 7z." > 7z_test.txt
7z a -p"secret" test.7z 7z_test.txt
# Achtung: 7z kann das Passwort direkt im Befehl akzeptieren, hier "secret"

Jetzt haben wir drei verschlüsselte Archive: test.zip (Passwort: "test"), test.rar (Passwort: "test1234") und test.7z (Passwort: "secret"). Perfekt für unsere Experimente.

Als Nächstes brauchen wir noch eine vernünftige Wordlist. Die rockyou.txt ist ein Klassiker und ein guter Startpunkt für Wörterbuchangriffe. Falls du sie nicht eh schon auf deinem System hast, kannst du sie so herunterladen und entpacken:

wget https://github.com/brannondorsey/naive-hashcat/releases/download/v0.0.1/rockyou.txt
mv rockyou.txt rockyou.txt.gz # Falls die Datei noch .gz Endung hat
gzip -d rockyou.txt.gz

Manchmal ist die rockyou.txt auch schon in /usr/share/wordlists/ vorhanden, oft aber komprimiert. Einfach mal nachsehen!

ZIP-Archive knacken mit fcrackzip

fcrackzip ist super, wenn es um ZIP-Dateien geht. Es ist ein schnelles und unkompliziertes Tool. Ich nutze es gerne für erste Versuche, bevor ich die schwereren Geschütze auffahre.

Das einfache Bruteforce-Szenario

Stell dir vor, du weißt, dass das Passwort kurz ist und nur aus Ziffern besteht. Oder nur Kleinbuchstaben. Mit fcrackzip kannst du den Zeichensatz und die Länge genau definieren. Das spart enorm Zeit, wenn du schon eine Ahnung hast.

Unser test.zip hat das Passwort "test". Wir wissen, es sind Kleinbuchstaben und 4 Zeichen lang. Versuchen wir einen Brute-Force-Angriff mit einem kleinen Zeichensatz und einer Längenbegrenzung:

fcrackzip -b -c a -l 1-5 -u test.zip
  • -b: Brute-Force-Modus.
  • -c a: Zeichensatz. Hier 'a' für Kleinbuchstaben (a-z). Andere Optionen sind '1' für Ziffern (0-9), 'A' für Großbuchstaben (A-Z), '!' für Sonderzeichen, 's' für alle druckbaren Zeichen.
  • -l 1-5: Die Passwortlänge soll zwischen 1 und 5 Zeichen liegen.
  • -u: Zeigt das gefundene Passwort an.

Das Tool wird nun alle Kombinationen durchprobieren. Bei "test" und einem kleinen Zeichensatz geht das relativ schnell. Du wirst sehen, wie die Kombinationen durchlaufen und irgendwann das Passwort "test" ausgegeben wird.

Der Wörterbuchangriff mit rockyou.txt

Der Wörterbuchangriff ist oft der erste Schritt, weil er im Erfolgsfall am schnellsten ist. Viele Leute verwenden einfache, gebräuchliche Passwörter, die in solchen Listen enthalten sind. Hier kommt unsere rockyou.txt ins Spiel.

fcrackzip -D -u -p rockyou.txt test.zip
  • -D: Wörterbuchangriff (Dictionary Attack).
  • -u: Zeigt das gefundene Passwort an.
  • -p rockyou.txt: Gibt die zu verwendende Wörterbuchdatei an.

In meiner Erfahrung ist der Wörterbuchangriff immer der erste Versuch. Wenn das Passwort nicht zu komplex ist oder eine gängige Phrase, dann ist die Chance gut, dass es hier gefunden wird.

RAR- und 7z-Archive mit John the Ripper

Für RAR- und 7z-Archive ist der Prozess etwas anders. Wir können diese Archive nicht direkt mit John the Ripper füttern, sondern müssen zuerst die Hashes extrahieren. Dafür gibt es spezielle Tools, die mit John the Ripper mitgeliefert werden.

Hashes extrahieren

John the Ripper kann nicht direkt auf die verschlüsselten Archive losgehen. Stattdessen müssen wir die Passwort-Hashes aus den Archiven extrahieren. Dafür gibt es die sogenannten "tojohn"-Tools.

rar2john test.rar > test.rar.hash
7z2john test.7z > test.7z.hash

Diese Befehle generieren jeweils eine Datei (test.rar.hash und test.7z.hash), die den extrahierten Hash des Archivs enthält. Diese Hash-Dateien sind das, was John the Ripper dann zum Knacken verwendet. Wenn du dir den Inhalt mal ansiehst (cat test.rar.hash), wirst du eine ziemlich unleserliche Zeichenkette sehen – das ist der Hash!

Mein Tipp: Überprüfe immer, ob die Hash-Dateien auch wirklich Inhalt haben. Eine leere Hash-Datei bedeutet, dass etwas schiefgelaufen ist, und John wird nichts zu tun haben.

Der Wörterbuchangriff mit John

Sobald wir die Hashes haben, können wir John the Ripper mit unserer rockyou.txt Wordlist darauf ansetzen.

john --wordlist=rockyou.txt test.rar.hash
john --wordlist=rockyou.txt test.7z.hash

John the Ripper beginnt nun, die Passwörter aus der Wordlist gegen den extrahierten Hash zu testen. Je nach Länge der Wordlist und Komplexität des Passworts kann das eine Weile dauern. John ist dabei recht gesprächig und zeigt dir seinen Fortschritt an. Wenn er ein Passwort findet, wird er es intern speichern.

Gefundene Passwörter anzeigen

Nachdem John the Ripper seine Arbeit beendet hat (oder du ihn mit Ctrl+C unterbrochen hast), kannst du dir alle gefundenen Passwörter für eine bestimmte Hash-Datei anzeigen lassen:

john --show test.rar.hash
john --show test.7z.hash

John listet dann das Archiv und das dazugehörige gefundene Passwort auf. In unserem Fall solltest du "test1234" für test.rar und "secret" für test.7z sehen. Das hat mir schon oft den Tag gerettet, wenn ich nach einer langen John-Session wissen wollte, was er denn nun gefunden hat.

Die GPU-Power nutzen mit Hashcat

Jetzt kommen wir zum Herzstück der modernen Passwort-Wiederherstellung: Hashcat. Wenn du eine Grafikkarte hast, die nicht nur für Minecraft da ist, dann ist Hashcat dein bester Freund. Es nutzt die massiv parallele Architektur von GPUs, um Hashes in atemberaubender Geschwindigkeit zu knacken.

ZIP-Hashes für Hashcat vorbereiten

Auch für ZIP-Dateien müssen wir Hashes extrahieren, die Hashcat versteht. Hierfür gibt es ein spezielles Tool namens zip2john, das oft mit John the Ripper oder Hashcat selbst mitgeliefert wird.

zip2john test.zip > test.zip.hash

Diese Datei test.zip.hash enthält nun den Hash, den Hashcat verarbeiten kann. Der Hash für ZIP-Dateien ist übrigens etwas komplexer als ein einfacher String, da er auch Metadaten enthalten muss, um den Angriff zu ermöglichen.

Wörterbuchangriff mit Hashcat

Der Wörterbuchangriff ist auch bei Hashcat die erste Wahl. Wir müssen nur den richtigen Hash-Modus angeben.

hashcat -m 13600 -a 0 test.zip.hash rockyou.txt
  • -m 13600: Dies ist der Hash-Modus für PKZIP (Standard-ZIP-Verschlüsselung). Hashcat hat Hunderte von Modi, jeder für einen spezifischen Hash-Typ. Die korrekte Auswahl ist entscheidend! Für RAR3-hp wäre es z.B. 13700, für RAR5 13800 und für 7z 11600.
  • -a 0: Dies ist der Angriffsmodus 0, also ein Wörterbuchangriff (Wordlist Attack).
  • test.zip.hash: Unsere extrahierte Hash-Datei.
  • rockyou.txt: Unsere Wordlist.

Hashcat wird dir detaillierte Informationen über deine GPU und den Fortschritt des Angriffs anzeigen. Die Geschwindigkeit wird in Hashes pro Sekunde (H/s) angegeben – und du wirst staunen, wie viele das sein können!

Bruteforce mit Hashcat (spezifische Zeichensätze)

Wenn der Wörterbuchangriff nichts gebracht hat, kommt Brute-Force zum Einsatz. Hier definieren wir, welche Zeichen in welcher Reihenfolge und Länge ausprobiert werden sollen. Das ist rechenintensiv, aber wenn das Passwort einfach ist, kann es zum Erfolg führen.

Nehmen wir an, wir wissen, dass das Passwort für test.zip aus 4 Ziffern besteht (was bei "test" nicht der Fall ist, aber zur Demonstration):

hashcat -m 13600 -a 3 test.zip.hash ?d?d?d?d
  • -a 3: Dies ist der Angriffsmodus 3, also ein Brute-Force-Angriff (Mask Attack).
  • ?d?d?d?d: Die Maske für den Brute-Force-Angriff. ?d steht für eine Ziffer (0-9). In diesem Beispiel versuchen wir also alle 4-stelligen Zahlenkombinationen.

Hashcat bietet eine Reihe von Platzhaltern für Masken:

  • ?l: Kleinbuchstaben (a-z)
  • ?u: Großbuchstaben (A-Z)
  • ?d: Ziffern (0-9)
  • ?s: Sonderzeichen (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
  • ?a: Alle druckbaren Zeichen (?l?u?d?s)
  • Du kannst auch eigene Zeichensätze definieren, z.B. -1 ?l?d für Kleinbuchstaben und Ziffern.

Wichtig zu wissen: Brute-Force kann extrem lange dauern, besonders bei längeren Passwörtern oder komplexen Zeichensätzen. Plane hier Stunden, Tage oder Wochen ein, je nach deiner Hardware und der Passwortkomplexität. Ein 8-stelliges Passwort mit Klein- und Großbuchstaben sowie Ziffern ist selbst mit einer High-End-GPU in vertretbarer Zeit kaum zu knacken.

Benchmark und Performance-Tipps

Du willst wissen, wie schnell deine Hardware wirklich ist? Hashcat hat einen integrierten Benchmark-Modus. Das ist super, um die Leistung deiner GPU für verschiedene Hash-Typen zu überprüfen.

hashcat -b

Dieser Befehl führt einen Benchmark für alle unterstützten Hash-Typen durch und gibt dir eine detaillierte Auflistung der Hashes pro Sekunde für jede Kombination aus Hash-Typ und Angriffsmodus. Das ist ein fantastisches Feature, um zu sehen, wo deine Stärken liegen und ob deine Treiber richtig konfiguriert sind. In meiner Erfahrung ist das der erste Schritt, wenn Hashcat nicht die erwartete Leistung bringt.

Mein Tipp: Achte darauf, dass deine GPU-Treiber aktuell sind und du die OpenCL- oder CUDA-Bibliotheken korrekt installiert hast. Veraltete Treiber sind eine häufige Ursache für schlechte Performance oder Fehlermeldungen bei Hashcat.

Gecrackte Hashes entfernen (Aufräumen)

Wenn Hashcat ein Passwort gefunden hat, speichert es das in einer internen Datei (der .potfile). Wenn du denselben Hash erneut angreifst, wird Hashcat nicht wieder von vorne anfangen. Manchmal möchtest du aber einen Angriff neu starten oder nur die "ungelösten" Hashes weiter bearbeiten. Dafür gibt es die --remove Option:

hashcat -m 13600 --remove test.zip.hash rockyou.txt

Dieser Befehl entfernt alle Hashes aus der test.zip.hash-Datei, für die bereits ein Passwort gefunden wurde. Das ist nützlich, wenn du eine riesige Hash-Datei hast und nicht immer wieder die gleichen Hashes neu berechnen willst, oder wenn du mit verschiedenen Wordlists oder Masken arbeitest und nur die verbleibenden, ungeknackten Hashes bearbeiten möchtest.

Häufige Fehler und Lösungen

Gerade bei Tools wie Hashcat, die tief in die Hardware greifen, kann es zu Problemen kommen. Hier sind ein paar, über die ich selbst schon gestolpert bin:

1. Hashcat: "No devices found" oder OpenCL-Fehler

Problem: Hashcat startet nicht oder meldet, dass keine OpenCL-Geräte (GPUs) gefunden wurden, obwohl eine Grafikkarte vorhanden ist.

Ursache: Oft sind die GPU-Treiber nicht korrekt installiert oder die OpenCL-Bibliotheken fehlen/sind veraltet.

Lösung:

  • NVIDIA: Stelle sicher, dass du die proprietären NVIDIA-Treiber installiert hast und nicht die Nouveau-Treiber. Installiere CUDA (Compute Unified Device Architecture) und die NVIDIA OpenCL-Bibliotheken.
  • AMD: Installiere die ROCm-Treiber (Radeon Open Compute) und die entsprechenden OpenCL-Bibliotheken.
  • Überprüfe mit clinfo oder nvidia-smi (für NVIDIA), ob deine GPU und OpenCL erkannt werden.
  • Manchmal hilft es auch, Hashcat in einer virtuellen Maschine mit GPU-Passthrough zu betreiben, aber das ist ein Thema für einen eigenen Guide.

2. Wordlist nicht gefunden oder falsche Berechtigungen

Problem: John the Ripper oder Hashcat melden, dass die angegebene Wordlist nicht gefunden werden kann oder dass keine Berechtigung zum Lesen besteht.

Ursache: Der Pfad zur rockyou.txt ist falsch geschrieben, die Datei existiert nicht an der Stelle, oder der ausführende Benutzer hat keine Leserechte.

Lösung:

  • Überprüfe den Dateipfad genau. Am besten verwendest du absolute Pfade (z.B. /home/deinuser/rockyou.txt).
  • Stelle sicher, dass die Datei existiert: ls -l /pfad/zu/rockyou.txt.
  • Überprüfe die Dateiberechtigungen: chmod 644 /pfad/zu/rockyou.txt gibt Leserechte für alle. Wenn du die Wordlist selbst erstellt hast, achte auf die Rechte.

3. John the Ripper zeigt keine Ergebnisse mit --show

Problem: Du hast John the Ripper laufen lassen, er hat scheinbar etwas gefunden, aber john --show zeigt nichts an.

Ursache: John speichert die gefundenen Passwörter in seiner .potfile (meist ~/.john/john.pot oder /root/.john/john.pot). Wenn der Pfad zur Hash-Datei in --show nicht exakt derselbe ist, den du beim Cracken verwendet hast, kann John die Einträge nicht zuordnen.

Lösung:

  • Verwende den exakt gleichen Pfad zur Hash-Datei, sowohl beim Cracking als auch beim Anzeigen mit --show. Also, wenn du john --wordlist=rockyou.txt ./test.rar.hash verwendet hast, dann musst du auch john --show ./test.rar.hash verwenden.
  • Überprüfe den Inhalt der .potfile manuell mit cat ~/.john/john.pot, um zu sehen, ob die Passwörter dort überhaupt gespeichert wurden.
  • Manchmal hilft es, John mit der Option --format=zip oder --format=rar zu starten, wenn es Probleme mit der automatischen Erkennung des Hash-Formats gibt.

Fazit und nächste Schritte

Puh, das war eine ganze Menge Stoff! Wir haben gesehen, wie wir mit fcrackzip schnelle Wörterbuch- und Brute-Force-Angriffe auf ZIP-Dateien starten. Dann haben wir gelernt, wie John the Ripper mit seinen "tojohn"-Helfern Hashes aus RAR- und 7z-Archiven extrahiert und diese CPU-basiert knackt. Und schließlich haben wir die volle Power deiner Grafikkarte mit Hashcat für ZIP-Hashes genutzt und dabei die unglaubliche Geschwindigkeit moderner GPUs erlebt.

Was du heute gelernt hast, ist ein grundlegender Baustein im Bereich der Passwort-Sicherheit und -Wiederherstellung. Es zeigt dir nicht nur, wie du verlorene Passwörter wiederfinden kannst, sondern auch, wie wichtig starke und einzigartige Passwörter sind. Ein einfaches "test" ist in Sekunden geknackt, selbst mit einer einfachen Wordlist.

Was sind die nächsten Schritte?

  • Experimentiere weiter: Probiere verschiedene Zeichensätze und Längen für Brute-Force-Angriffe aus. Erstelle eigene Wordlists, die spezifisch für deine Anwendungsfälle sind.
  • Andere Hash-Typen: John the Ripper und Hashcat unterstützen Hunderte von Hash-Typen. Schau dir die Dokumentation an, um zu sehen, was sonst noch alles möglich ist – von WLAN-Passwörtern bis zu Datenbank-Hashes.
  • Regenbogen-Tabellen: Für fortgeschrittene Angriffe kannst du dich mit Pre-Computed Hashes und Regenbogen-Tabellen beschäftigen. Das kann die Angriffszeit massiv verkürzen, erfordert aber viel Speicherplatz.
  • Hashcat Rules: Hashcat hat eine mächtige Regel-Engine, mit der du Wordlist-Einträge modifizieren kannst (z.B. "password" zu "p4ssw0rd" oder "password123"). Das ist extrem effektiv und oft die Brücke zwischen einfachen Wordlists und echtem Brute-Force.

Bleib neugierig, bleib sicher und viel Spaß beim Erkunden der Tiefen der IT-Sicherheit in deinem Homelab! Wir sehen uns beim nächsten Guide auf smoth.me!

Weitere Guides aus "Linux"

Raspberry Pi: Optimaler Dauerbetrieb trotz steigender Kosten
Dieser Guide zeigt, wie du deinen Raspberry Pi für den effizienten und langlebigen Betrieb von Diens…
Tails 7.6 im Praxistest: Anonym surfen mit neuem Passwort-Manager
Ein Deep Dive in die Neuerungen von Tails 7.6. Ich zeige dir, wie du die anonyme Linux-Distribution …
OnlyOffice Document Server im Homelab: Einrichten mit Docker & Nextcloud
Dieser Guide zeigt dir, wie du den OnlyOffice Document Server mit Docker Compose einrichtest und nah…
XPipe 22.0: Dein Passwortmanager als SSH-Schlüsselbund im Homelab
Dieser Praxis-Guide zeigt dir, wie du XPipe 22.0 einrichtest, deinen Passwortmanager integrierst und…