Hashcat Potfiles und Ausgabedateien

LinuxBeginner
Jetzt üben

Einführung

Hashcat ist ein leistungsstarkes und beliebtes Werkzeug zur Passwortwiederherstellung. Wenn Sie eine Cracking-Sitzung ausführen, benötigt Hashcat eine Möglichkeit, die Ergebnisse zu verwalten. Es ist entscheidend zu wissen, welche Passwörter erfolgreich geknackt wurden und welche noch ungelöst sind.

In diesem Lab lernen Sie die Grundlagen der Verwaltung der Hashcat-Ausgabe kennen. Wir werden die hashcat.potfile untersuchen, die geknackte Passwörter automatisch speichert. Sie erfahren auch, wie Sie Befehlszeilenoptionen wie --show verwenden, um geknackte Passwörter anzuzeigen, -o, um Ergebnisse in einer bestimmten Datei zu speichern, und --left, um zu identifizieren, welche Hashes noch nicht geknackt wurden. Die Beherrschung dieser Funktionen ist für jeden effektiven Workflow zur Passwortprüfung oder -wiederherstellung unerlässlich.

Zweck der hashcat.potfile verstehen

In diesem Schritt lernen Sie die hashcat.potfile kennen, eine entscheidende Komponente von Hashcat. Um zu vermeiden, dass dieselben Hashes in zukünftigen Sitzungen erneut geknackt werden, speichert Hashcat jeden erfolgreich geknackten Hash und das entsprechende Klartextpasswort automatisch in einer Datei. Diese Datei wird als „Potfile“ bezeichnet. Standardmäßig heißt sie hashcat.potfile und befindet sich im Verzeichnis ~/.local/share/hashcat/.

Führen wir einen einfachen Wörterbuchangriff (Dictionary Attack) durch, um einige Hashes zu knacken. Dadurch wird die Potfile für uns generiert. Wir haben eine Datei namens hashes.txt, die MD5-Hashes enthält, und eine Datei wordlist.txt mit potenziellen Passwörtern.

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

hashcat -m 0 -a 0 hashes.txt wordlist.txt

Hier ist eine Aufschlüsselung des Befehls:

  • -m 0: Gibt den Hash-Typ an, wobei 0 MD5 entspricht.
  • -a 0: Gibt den Angriffsmodus an, wobei 0 ein direkter Wörterbuchangriff ist.
  • hashes.txt: Die Eingabedatei, die die zu knackenden Hashes enthält.
  • wordlist.txt: Die Wörterbuchdatei, die zu versuchende Passwörter enthält.

Sie werden sehen, wie Hashcat startet. Da unsere Wortliste die korrekten Passwörter für alle Hashes enthält, wird der Vorgang schnell abgeschlossen sein.

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  ... H/s (0.00ms) @ Accel:128 Loops:1 Thr:1 Vec:8
Recovered........: 4/4 (100.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 5/5 (100.00%)
Rejected.........: 0/5 (0.00%)
Restore.Point....: 5/5 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> testing
Hardware.Mon.#1..: Temp: 46c Fan: 33%
...
Started: ...
Stopped: ...

Die Ausgabe zeigt, dass alle 4 Hashes wiederhergestellt wurden. Das bedeutet, dass die hashcat.potfile nun erstellt und mit diesen Ergebnissen gefüllt wurde.

Geknackte Hash-Passwort-Paare in der potfile anzeigen

In diesem Schritt werden wir den Inhalt der hashcat.potfile direkt überprüfen. Dies hilft Ihnen zu verstehen, wie Hashcat die geknackten Anmeldeinformationen speichert. Das Format ist einfach und effektiv: Jede Zeile enthält den Hash, einen Doppelpunkt-Separator und das geknackte Klartextpasswort.

Um den Inhalt der Potfile anzuzeigen, verwenden Sie den Befehl cat. Die Datei befindet sich in einem versteckten Verzeichnis in Ihrem Home-Verzeichnis.

cat ~/.local/share/hashcat/hashcat.potfile

Die Ausgabe zeigt die Hash-Passwort-Paare an, die im vorherigen Schritt erfolgreich geknackt wurden.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

Wie Sie sehen können, enthält die Datei die vier Hashes aus hashes.txt, die mit Passwörtern in wordlist.txt übereinstimmten. Obwohl die direkte Ansicht der Potfile nützlich ist, um deren Struktur zu verstehen, kann sie in realen Szenarien mit Tausenden von geknackten Passwörtern unübersichtlich und schwer lesbar werden. Im nächsten Schritt lernen Sie eine effizientere Methode kennen, um Ergebnisse für eine bestimmte Aufgabe anzuzeigen.

Verwenden von '--show' zur Anzeige geknackter Passwörter für eine bestimmte Hash-Liste

In diesem Schritt lernen Sie eine praktischere Methode kennen, um Ihre Ergebnisse zu überprüfen. Anstatt die gesamte Potfile manuell zu lesen, können Sie die --show-Option von Hashcat verwenden. Dieser Befehl weist Hashcat an, eine gegebene Hash-Liste mit seiner Potfile abzugleichen und nur die geknackten Hashes aus dieser Liste anzuzeigen. Es wird kein neues Knacken durchgeführt.

Dies ist äußerst nützlich, wenn Sie schnell die Ergebnisse für eine bestimmte Zielliste einsehen möchten, ohne eine potenziell riesige Potfile durchsuchen zu müssen, die Ergebnisse aus vielen verschiedenen Sitzungen enthält.

Führen Sie den folgenden Befehl aus, um die geknackten Hashes aus unserer Datei hashes.txt anzuzeigen:

hashcat -m 0 --show hashes.txt

Hashcat überprüft sofort die Potfile und gibt die Ergebnisse in einem sauberen, lesbaren Format aus.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

Die Ausgabe ist sauber und beantwortet direkt die Frage: „Welche Hashes aus hashes.txt habe ich bereits geknackt?“ Dies ist die empfohlene Methode, um nach geknackten Passwörtern aus einer bestimmten Sitzung zu suchen.

Geknackte Passwörter mit '-o' in einer dedizierten Ausgabedatei speichern

In diesem Schritt lernen Sie, wie Sie Ihre Cracking-Ergebnisse in einer separaten Datei speichern können. Obwohl die Potfile eine ausgezeichnete interne Datenbank für Hashcat ist, benötigen Sie für Berichte oder Analysen oft eine saubere Ausgabedatei. Dies wird durch die Option -o (oder --outfile) erreicht.

Wenn Sie -o zu Ihrem Angriffs-Befehl hinzufügen, kombiniert mit --show, ruft Hashcat die geknackten Hash-Passwort-Paare aus der Potfile ab und schreibt sie in die angegebene Ausgabedatei. Dies ist besonders nützlich, wenn die Hashes bereits geknackt wurden und in der Potfile existieren, da Sie diese Ergebnisse schnell extrahieren und in einer dedizierten Datei speichern können.

Führen wir den Befehl mit den Optionen --show und -o aus, um die geknackten Ergebnisse zu speichern.

hashcat -a 0 -m 0 --show -o cracked.txt hashes.txt wordlist.txt

Hashcat prüft sofort die Potfile und schreibt alle geknackten Passwort-Paare in cracked.txt.

Sehen wir uns nun den Inhalt unserer neuen Ausgabedatei an.

cat cracked.txt

Die Ausgabe wird eine saubere Liste der geknackten Paare sein.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

Diese Datei cracked.txt ist nun ein portabler Nachweis der erfolgreichen Ergebnisse dieses spezifischen Angriffs, getrennt von der Haupt-Potfile.

Verwendung von '--left', um zu sehen, welche Hashes nicht geknackt wurden

In diesem Schritt erfahren Sie, wie Sie identifizieren können, welche Hashes ungeknackt geblieben sind. Dies ist genauso wichtig wie zu wissen, welche Sie gelöst haben, da es Ihnen ermöglicht, Ihre Anstrengungen bei nachfolgenden Angriffen zu fokussieren (z. B. durch die Verwendung einer anderen Wortliste oder eines anderen Angriffsmodus). Hashcat bietet zu diesem Zweck die Option --left.

Wenn --left zusammen mit --show verwendet wird, zeigt das Flag --left alle Hashes aus Ihrer Eingabeliste an, die nicht in der Potfile vorhanden sind.

Sehen wir uns an, welche Hashes aus hashes.txt noch ungeknackt sind.

hashcat -m 0 --show --left hashes.txt

Da alle Hashes in unserer Liste geknackt wurden, wird die Ausgabe leer sein (es sind keine ungeknackten Hashes übrig).

Sie können --left auch mit der Option -o kombinieren, um diese verbleibenden Hashes in einer neuen Datei zu speichern. Dies ist eine gängige Vorgehensweise, um eine Arbeitsliste (Worklist) für Ihren nächsten Cracking-Versuch zu erstellen.

hashcat -m 0 -a 0 hashes.txt wordlist.txt --left -o uncracked.txt

Überprüfen Sie nun den Inhalt der Datei uncracked.txt.

cat uncracked.txt

Da alle Hashes geknackt wurden, wird die Datei uncracked.txt leer sein.

Zusammenfassung

In diesem Lab haben Sie die wesentlichen Techniken zur Verwaltung und Interpretation der Ausgabe von Hashcat erlernt. Diese Fähigkeiten sind grundlegend für die Organisation eines effizienten Passwort-Cracking-Workflows.

Sie haben gelernt:

  • Die Rolle der hashcat.potfile als automatische Datenbank für alle geknackten Passwörter.
  • Wie man hashcat --show verwendet, um die geknackten Passwörter aus einer bestimmten Hash-Liste sauber anzuzeigen.
  • Wie man die Option -o verwendet, um geknackte Passwörter für Berichte und Analysen in einer dedizierten Ausgabedatei zu speichern.
  • Wie man die Option --left verwendet, um ungeknackte Hashes zu isolieren und so zukünftige Anstrengungen effektiv zu fokussieren.

Durch die Beherrschung dieser Ausgabe- und Dateiverwaltungsfunktionen können Sie besser organisierte, effizientere und effektivere Passwort-Wiederherstellungssitzungen mit Hashcat durchführen.