Einleitung
Hashcat ist ein leistungsstarkes und beliebtes Werkzeug zur Passwortwiederherstellung. Wenn Sie eine Cracking-Sitzung ausführen, insbesondere eine, die lange dauern könnte, ist es entscheidend, deren Fortschritt und Leistung zu überwachen. Hashcat bietet einen detaillierten Echtzeit-Statusbildschirm, der Ihnen Einblicke in die Geschwindigkeit des Angriffs, die geschätzte Abschlusszeit, die Hardwareleistung und mehr gibt.
In diesem Lab lernen Sie, wie Sie eine grundlegende Hashcat-Sitzung starten und deren Echtzeitstatistiken interpretieren. Am Ende werden Sie in der Lage sein, Ihre Passwort-Cracking-Aufgaben effektiv zu überwachen, um sicherzustellen, dass sie optimal laufen.
Eine Hashcat-Sitzung starten
In diesem Schritt starten Sie eine Passwort-Cracking-Sitzung mit Hashcat. Wir werden eine vorkonfigurierte Hash-Datei und eine Wortliste verwenden, die sich in Ihrem ~/project-Verzeichnis befinden.
Zuerst untersuchen wir die Dateien, die wir verwenden werden. Die Datei hashes.txt enthält einen einzelnen MD5-Hash, und wordlist.txt enthält eine kleine Liste potenzieller Passwörter.
Der grundlegende Befehl zum Starten eines Dictionary-Angriffs mit Hashcat lautet hashcat -m <hash_type> -a <attack_mode> <hash_file> <wordlist_file>.
-m 0gibt an, dass der Hash-Typ MD5 ist.-a 0gibt an, dass der Angriffsmodus ein "Straight" oder Dictionary-Angriff ist.
Öffnen Sie nun ein Terminal und führen Sie den folgenden Befehl aus, um die Sitzung zu starten. Hashcat wird initialisiert und beginnt mit dem Versuch, den Hash zu knacken.
hashcat -m 0 -a 0 hashes.txt wordlist.txt
Sie sehen eine Ausgabe ähnlich der folgenden, wenn Hashcat startet. Machen Sie sich vorerst keine Sorgen um alle Details; lassen Sie es einfach laufen.
hashcat (v6.2.x) starting...
...
OpenCL Platform #1: The pocl project
====================================
* Device #1: pthread-skylake-avx512, 2047/4095 MB (1023 MB allocatable), 2MCU
...
Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: XX.X kH/s (X.XXms) @ Accel:X Loops:X Thr:X Vec:X
Recovered........: 0/1 (0.00%) Digests
Progress.........: 0/5 (0.00%)
Rejected.........: 0/0 (0.00%)
Restore.Point....: 0/1 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> hashcat
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A
[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>
Lassen Sie die Sitzung laufen und fahren Sie mit dem nächsten Schritt fort.
Drücken Sie 's', um den Statusbildschirm anzuzeigen
In diesem Schritt lernen Sie, wie Sie manuell eine Statusaktualisierung von Ihrer laufenden Hashcat-Sitzung anfordern.
Während Hashcat läuft, wartet es auf Tastatureingaben zur Steuerung der Sitzung. Am unteren Rand der Ausgabe sehen Sie eine Eingabeaufforderung wie [s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>. Dies zeigt die verfügbaren Befehle an.
Um die neuesten Statistiken zu erhalten, drücken Sie einfach die Taste s auf Ihrer Tastatur und dann Enter. Hashcat gibt sofort einen aktualisierten Statusbildschirm im Terminal aus.
Drücken Sie jetzt s.
s
Sie sehen einen neuen Textblock, der dem anfänglichen Statusbericht sehr ähnlich sieht. Dies ist der Echtzeit-Statistikbildschirm, den wir in den folgenden Schritten analysieren werden.
Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: XX.X kH/s (X.XXms) @ Accel:X Loops:X Thr:X Vec:X
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 4/5 (80.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/5 (80.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: labex -> labex
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A
Beachten Sie, dass sich einige Werte, wie Recovered und Progress, geändert haben.
Interpretation der Felder Geschwindigkeit, Fortschritt und ETA
In diesem Schritt konzentrieren wir uns auf drei der wichtigsten Metriken auf dem Statusbildschirm: Geschwindigkeit (Speed), Fortschritt (Progress) und ETA (Estimated Time of Arrival). Das Verständnis dieser Felder hilft Ihnen, die Leistung und Dauer Ihrer Cracking-Sitzung einzuschätzen.
Betrachten wir jeweils eine Beispielzeile des Status:
Speed.Dev.#1.........: XX.X kH/s (X.XXms)- Geschwindigkeit (Speed): Diese Zeile zeigt die Cracking-Geschwindigkeit jedes Verarbeitungsgeräts (CPU, GPU usw.) an, identifiziert durch
#1,#2usw. Die Geschwindigkeit wird in Hashes pro Sekunde (H/s, kH/s, MH/s) gemessen. Eine höhere Zahl ist besser. In unserem Fall verwendet die VM die CPU.
- Geschwindigkeit (Speed): Diese Zeile zeigt die Cracking-Geschwindigkeit jedes Verarbeitungsgeräts (CPU, GPU usw.) an, identifiziert durch
Progress.........: 4/5 (80.00%)- Fortschritt (Progress): Dies zeigt an, wie viele Kandidaten-Passwörter von der Gesamtzahl im Keyspace getestet wurden. In diesem Beispiel bedeutet
4/5, dass 4 der 5 Wörter aus unsererwordlist.txtgetestet wurden.
- Fortschritt (Progress): Dies zeigt an, wie viele Kandidaten-Passwörter von der Gesamtzahl im Keyspace getestet wurden. In diesem Beispiel bedeutet
Time.Estimated...: 0 secs- ETA (Estimated Time of Arrival): Dieses Feld, bezeichnet als
Time.Estimated, gibt eine Schätzung ab, wann der aktuelle Angriff abgeschlossen sein wird. Dies wird basierend auf der aktuellen Geschwindigkeit und der verbleibenden Arbeit im FeldProgressberechnet. Bei sehr kurzen Aufgaben wie unserer wird es schnell zu 0 Sekunden.
- ETA (Estimated Time of Arrival): Dieses Feld, bezeichnet als
Diese drei Metriken geben Ihnen einen schnellen Überblick über die Leistung Ihrer Cracking-Sitzung.
Verständnis der Zähler für abgelehnte und wiederhergestellte Elemente
In diesem Schritt untersuchen wir einige weitere nützliche Felder auf dem Statusbildschirm: Recovered, Rejected und Restore.Point.
Betrachten wir erneut die Beispielausgabe:
Recovered........: 1/1 (100.00%) Digests- Wiederhergestellt (Recovered): Dies ist das wichtigste Feld für die Ergebnisse. Es gibt an, wie viele Hashes erfolgreich geknackt wurden. Hier bedeutet
1/1, dass der eine Hash in unserer Zieldatei gefunden wurde. Sobald dies geschieht, gibt Hashcat das geknackte Passwort im Terminal aus.
- Wiederhergestellt (Recovered): Dies ist das wichtigste Feld für die Ergebnisse. Es gibt an, wie viele Hashes erfolgreich geknackt wurden. Hier bedeutet
Rejected.........: 0/4 (0.00%)- Abgelehnt (Rejected): Dieser Zähler verfolgt, wie viele Passwortkandidaten aus Ihrer Wortliste oder Ihrem Regelwerk übersprungen wurden. Ein Passwort kann abgelehnt werden, wenn es nicht die Längen- oder Zeichenanforderungen für einen bestimmten Hash-Typ erfüllt. Bei einem einfachen MD5- und Wörterbuchangriff ist dieser Wert normalerweise null.
Restore.Point....: 4/5 (80.00%)- Wiederherstellungspunkt (Restore Point): Dies gibt die genaue Position in der Wortliste (oder im Keyspace) an, an der Hashcat gerade arbeitet. Wenn Sie die Sitzung stoppen und später fortsetzen, verwendet Hashcat diesen Wiederherstellungspunkt, um dort weiterzumachen, wo es aufgehört hat, und erspart Ihnen so einen Neustart.
Durch die Überwachung dieser Felder können Sie erfolgreiche Knackvorgänge verfolgen und potenzielle Probleme mit Ihren Wortlisten diagnostizieren.
Überwachung von Hardware-Temperatur und Auslastung
In diesem letzten Schritt lernen Sie den Abschnitt zur Hardware-Überwachung des Hashcat-Statusbildschirms kennen und wie Sie die Sitzung ordnungsgemäß beenden.
Passwort-Cracking ist eine sehr intensive Aufgabe, die Ihre Hardware an ihre Grenzen bringen kann. Hashcat verfügt über eine integrierte Überwachung, die Ihnen hilft, die Gesundheit Ihres Systems im Auge zu behalten.
Betrachten Sie die Zeile Hardware.Mon in der Statusausgabe:
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A- Temp: Zeigt die Temperatur des Geräts in Celsius an.
- Util: Zeigt den Auslastungsprozentsatz des Geräts an (wie stark es ausgelastet ist).
- Core/Mem: Zeigt die Taktgeschwindigkeiten des Kerns und des Speichers des Geräts an.
Hinweis: In unserer virtualisierten Laborumgebung erscheinen diese Werte als N/A (Not Applicable), da Hashcat nicht direkt auf die Sensoren der Host-Hardware zugreifen kann. Auf einer physischen Maschine mit einer dedizierten GPU würden diese Felder Echtzeitdaten anzeigen, was entscheidend ist, um Überhitzung zu vermeiden und eine stabile Leistung zu gewährleisten.
Nachdem unsere kurze Sitzung abgeschlossen ist und wir den Statusbildschirm analysiert haben, ist es Zeit, Hashcat zu beenden. Drücken Sie dazu q und dann Enter.
q
Hashcat stoppt die Sitzung und kehrt zur Eingabeaufforderung zurück.
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Labs!
Sie haben gelernt, wie Sie eine laufende Hashcat-Sitzung effektiv überwachen. Sie wissen jetzt, wie Sie:
- Einen grundlegenden Wörterbuchangriff mit Hashcat starten.
- Den Befehl
sverwenden, um den Echtzeit-Statusbildschirm anzuzeigen. - Wichtige Leistungsmetriken wie Geschwindigkeit (Speed), Fortschritt (Progress) und ETA (Estimated Time of Arrival) interpretieren.
- Die Bedeutung der Zähler für wiederhergestellte Elemente (Recovered), abgelehnte Elemente (Rejected) und Wiederherstellungspunkte (Restore Point) verstehen.
- Die Felder zur Hardware-Überwachung und deren Bedeutung erkennen.
Diese Fähigkeiten sind grundlegend für die Verwaltung jeder Passwort-Cracking-Aufgabe. Sie ermöglichen es Ihnen, den Fortschritt zu verfolgen, Probleme zu diagnostizieren und sicherzustellen, dass Ihre Hardware sicher und effizient arbeitet.


