Potfile zur Verwaltung geknackter Hashes verwenden

Kali LinuxBeginner
Jetzt üben

Einleitung

Hashcat ist ein leistungsstarkes und beliebtes Werkzeug zur Passwortwiederherstellung. Eine seiner Schlüsselfunktionen für den effizienten Betrieb ist die "potfile". Die potfile (kurz für "pot of gold file") ist eine Datei, in der Hashcat automatisch erfolgreich geknackte Hashes und ihre entsprechenden Klartexte speichert. Dies verhindert, dass Hashcat Zeit und Ressourcen verschwendet, indem es versucht, Hashes, die in früheren Sitzungen bereits gelöst wurden, erneut zu knacken.

In diesem Lab lernen Sie die Grundlagen der Verwaltung von geknackten Hashes mithilfe der Hashcat potfile. Sie lernen, wie Sie die potfile lokalisieren, ihren Inhalt anzeigen und spezifische Hashcat-Flags verwenden, um sie abzufragen oder bei Bedarf sogar zu ignorieren.

Zweck der Potfile verstehen

In diesem Schritt lernen Sie die grundlegende Rolle der Hashcat potfile kennen.

Die potfile ist eine der wichtigsten Funktionen von Hashcat für die Effizienz. Jedes Mal, wenn Hashcat einen Hash erfolgreich knackt, speichert es das Ergebnis in der potfile. Der Hauptzweck hierbei ist der Aufbau einer Datenbank gelöster Hashes.

Bevor eine neue Knack-Sitzung gestartet wird, gleicht Hashcat die Hashes in Ihrer Eingabedatei mit den Einträgen in der potfile ab. Wenn ein Hash bereits in der potfile vorhanden ist, überspringt Hashcat ihn und zeigt den Status "Removed" an. Dies stellt sicher, dass Sie keine wertvollen CPU/GPU-Zyklen für bereits erledigte Arbeit verschwenden.

Das Standardformat für Einträge in der potfile ist einfach und effektiv:

HASH:PLAINTEXT

Dieser Schritt ist rein konzeptionell, um Ihr Verständnis zu vertiefen. Es gibt keine Befehle auszuführen. Sie können mit dem nächsten Schritt fortfahren, um herauszufinden, wo sich diese Datei befindet.

Den Standard-hashcat.potfile lokalisieren

In diesem Schritt lokalisieren Sie die von Hashcat erstellte Standard-potfile.

Standardmäßig erstellt Hashcat die potfile nicht in Ihrem aktuellen Arbeitsverzeichnis. Stattdessen platziert es sie in einem dedizierten Hashcat-Ordner im Home-Verzeichnis Ihres Benutzers, um sie über verschiedene Knack-Sitzungen und Projekte hinweg persistent zu halten. Der Standardpfad unter einem Linux-System ist ~/.local/share/hashcat/.

Lassen Sie uns die Existenz der Datei überprüfen. Verwenden Sie den Befehl ls -l, um den Inhalt des Hashcat-Verzeichnisses aufzulisten.

ls -l ~/.local/share/hashcat/

Sie sollten die hashcat.potfile in der Ausgabe sehen, zusammen mit anderen potenziellen sitzungsbezogenen Dateien.

total 4
-rw-r--r-- 1 labex labex 42 May 20 10:30 hashcat.potfile

Nachdem Sie die Datei nun gefunden haben, besteht der nächste Schritt darin, ihren Inhalt anzuzeigen.

Den Inhalt der Potfile anzeigen

In diesem Schritt inspizieren Sie den Inhalt der hashcat.potfile, um zu sehen, wie geknackte Hashes gespeichert werden.

Da die potfile eine reine Textdatei ist, können Sie jeden gängigen Textbetrachter für die Kommandozeile wie cat, less oder more verwenden, um zu sehen, was sich darin befindet. Für eine kleine Datei wie unsere ist cat perfekt geeignet.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um den Inhalt der Standard-potfile anzuzeigen:

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

Die Ausgabe zeigt den Hash, der während des Lab-Setups geknackt wurde, gefolgt von einem Doppelpunkt (:) und dann dem Klartext-Passwort.

5f4dcc3b5aa765d61d8327deb882cf99:password

Dieses einfache HASH:PLAINTEXT-Format macht die Datei sowohl für Menschen als auch für Hashcat selbst leicht lesbar und parsbar.

Das Flag --show zur Abfrage der Potfile verwenden

In diesem Schritt lernen Sie, wie Sie das --show-Flag verwenden, um die Potfile effizient nach geknackten Hashes abzufragen.

Während Sie die Potfile manuell mit cat und grep durchsuchen können, bietet Hashcat eine wesentlich elegantere und integriertere Methode, um zu überprüfen, ob Hashes aus einer gegebenen Datei bereits geknackt wurden. Das --show-Flag wird zu diesem Zweck verwendet. Es nimmt eine Hash-Datei als Eingabe und gibt die geknackten Klartexte für alle Hashes aus, die in der Potfile gefunden wurden.

Lassen Sie uns dies verwenden, um unsere hashes.txt-Datei zu überprüfen.

hashcat -m 0 --show hashes.txt

Lassen Sie uns den Befehl aufschlüsseln:

  • hashcat: Das Programm selbst.
  • -m 0: Gibt den Hash-Modus an. 0 steht für MD5, den Typ des Hashes in unserer hashes.txt-Datei. Dies ist erforderlich, damit --show korrekt funktioniert.
  • --show: Dieses Flag weist Hashcat an, eine Abfrageoperation anstelle einer Knack-Sitzung durchzuführen.
  • hashes.txt: Die Eingabedatei, die die Hashes enthält, die Sie überprüfen möchten.

Der Befehl erzeugt die folgende Ausgabe, die mit dem Inhalt der Potfile identisch ist, da unser Hash gefunden wurde.

5f4dcc3b5aa765d61d8327deb882cf99:password

Dieser Befehl ist äußerst nützlich, wenn Sie eine große Liste von Hashes haben und schnell sehen möchten, welche davon zuvor wiederhergestellt wurden.

Geknackte Hashes mit --potfile-disable aus der Eingabe entfernen

In diesem Schritt lernen Sie, wie Hashcat automatisch vermeidet, Hashes erneut zu knacken, und wie Sie dieses Verhalten mit dem Flag --potfile-disable überschreiben können.

Zuerst sehen wir, was passiert, wenn Sie versuchen, denselben Knack-Job erneut auszuführen. Da der Hash bereits in der Potfile vorhanden ist, sollte Hashcat dies erkennen und sofort beenden.

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

Beachten Sie die Ausgabe. Hashcat wird berichten, dass alle Hashes in der Potfile gefunden wurden und sie nicht erneut verarbeitet werden.

...
All hashes found in potfile!

NOTE: All hashes loaded from file hashes.txt are already cracked and were skipped.
To re-crack these hashes, you need to remove them from the potfile.
...

Was aber, wenn Sie den Hash erneut knacken möchten, vielleicht zu Benchmark-Zwecken oder um einen anderen Angriffsmodus zu testen? Sie können das Flag --potfile-disable verwenden. Dies weist Hashcat an, die Potfile sowohl beim Lesen als auch beim Schreiben vollständig zu ignorieren.

Führen Sie den Befehl erneut aus, aber fügen Sie diesmal das Flag hinzu:

hashcat -m 0 -a 0 hashes.txt wordlist.txt --force --potfile-disable

Diesmal wird Hashcat den vollständigen Knack-Vorgang durchführen, da es die Potfile ignoriert. Sie sehen den Fortschritt des Status und am Ende einen "Cracked"-Status.

...
Session..........: hashcat
Status...........: Cracked
...
Cracked (1/1) hashes, (1/1) digests
...

Die Verwendung von --potfile-disable ist ein spezifisches Werkzeug für bestimmte Situationen. In den meisten Fällen möchten Sie die Potfile nutzen, um Zeit zu sparen.

Zusammenfassung

In diesem Lab haben Sie die wesentlichen Fähigkeiten für die Verwaltung geknackter Hashes mit der Potfile von Hashcat erlernt.

Sie verstehen nun, dass die Potfile ein entscheidendes Merkmal für die Effizienz ist und als Datenbank gelöster Hashes fungiert. Sie haben gelernt, wie Sie:

  • Die Standard-Potfile unter ~/.local/share/hashcat/hashcat.potfile lokalisieren.
  • Deren Inhalt mit Standard-Linux-Befehlen wie cat anzeigen.
  • Die Potfile mit dem --show-Flag nach spezifischen Hashes aus einer Eingabedatei abfragen.
  • Die Funktionalität der Potfile für spezifische Anwendungsfälle mit dem --potfile-disable-Flag umgehen.

Die Beherrschung der Potfile ist ein grundlegender Schritt, um ein versierter Hashcat-Benutzer zu werden, und ermöglicht Ihnen, effektivere und effizientere Passwortwiederherstellungsaufgaben durchzuführen.