Hashwerte in Hashcat knacken

HydraHydraBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Hashcat, das weltweit schnellste Passwortwiederherstellungstool, nutzen können, um kryptografische Hashwerte zu knacken. Sie üben das Installieren von Hashcat, das Vorbereiten von Hash-Dateien, die Konfiguration der GPU-Beschleunigung und das Ausführen von Brute-Force-Angriffen auf Beispiel-MD5-Hashwerte.

Die praktischen Übungen führen Sie durch das Knacken von realen Passwortbeispielen, während Sie die Leistung optimieren. Sie gewinnen praktische Erfahrung mit wichtigen Cybersicherheitstechniken für die Passwortwiederherstellung und die Sicherheitsüberprüfung.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/installation("Installation and Setup") subgraph Lab Skills nmap/installation -.-> lab-549929{{"Hashwerte in Hashcat knacken"}} wireshark/installation -.-> lab-549929{{"Hashwerte in Hashcat knacken"}} hydra/installation -.-> lab-549929{{"Hashwerte in Hashcat knacken"}} end

Installieren von Hashcat

In diesem Schritt installieren Sie Hashcat, das weltweit schnellste Passwortwiederherstellungstool. Hashcat ist ein leistungsstarkes Werkzeug, das zum Knacken von Hashwerten über verschiedene Angriffsmethoden wie Brute-Force-, Wörterbuch- und regelbasierte Angriffe verwendet wird.

Bevor wir beginnen, verstehen wir zunächst, was Hashwerte sind. Ein Hash ist eine Zeichenkette fester Länge, die von einer mathematischen Funktion erzeugt wird, die eine Eingabe (z. B. ein Passwort) nimmt und eine verschlüsselte Ausgabe erzeugt. Passwortsysteme speichern diese Hashwerte anstelle von Klartextpasswörtern aus Sicherheitsgründen. Hashcat hilft, das ursprüngliche Passwort wiederherzustellen, indem es verschiedene Kombinationen ausprobiert, um den gespeicherten Hash zu matchen.

Zunächst müssen wir sicherstellen, dass wir im richtigen Arbeitsverzeichnis sind. Das Verzeichnis ~/project ist der Ort, an dem wir alle unsere Lab-Operationen durchführen werden:

cd ~/project

Jetzt installieren wir Hashcat mithilfe des Paketmanagers von Ubuntu. Der Paketmanager kümmert sich um das Herunterladen und Einrichten von Software sowie ihrer Abhängigkeiten. Wir führen zwei Befehle zusammen aus: zunächst aktualisieren wir die Paketliste (update), dann installieren wir Hashcat (install):

sudo apt-get update && sudo apt-get install -y hashcat

Das -y-Flag bestätigt die Installation automatisch und erspart uns das Eingeben von 'yes' während des Prozesses.

Nach Abschluss der Installation überprüfen wir, ob Hashcat richtig installiert ist, indem wir seine Version prüfen. Dies ist eine gute Praxis, um zu bestätigen, dass die Software einsatzbereit ist:

hashcat --version

Sie sollten eine Ausgabe sehen, die die installierte Versionsnummer anzeigt, beispielsweise:

v6.2.6

Das Erscheinen dieser Versionsnummer bedeutet, dass Hashcat korrekt auf Ihrem System installiert ist. In den nächsten Schritten werden wir es verwenden, um mit echten Hash-Dateien zu arbeiten und Knackoperationen durchzuführen. Die Versionsnummer ist auch nützlich, wenn Sie nach Dokumentation suchen oder Probleme beheben, da sich die Funktionen zwischen den Versionen unterscheiden können.

Vorbereiten einer Hash-Datei

In diesem Schritt erstellen Sie eine Beispiel-Hash-Datei, die in den folgenden Schritten zum Knacken verwendet wird. Ein Hash ist eine Zeichenkette fester Länge, die von einem kryptografischen Algorithmus erzeugt wird und die Eingabedaten repräsentiert. Hash-Dateien enthalten diese kryptografischen Hashwerte, die wir versuchen werden, mit Hashcat zu knacken.

Zunächst stellen Sie sicher, dass Sie sich im richtigen Arbeitsverzeichnis befinden. Der Befehl cd ändert Ihr aktuelles Verzeichnis:

cd ~/project

Erstellen wir eine einfache Textdatei, die MD5-Hashwerte enthält. MD5 ist eine weit verbreitete kryptografische Hashfunktion, die einen 128-Bit-Hashwert erzeugt. Wir verwenden den nano-Texteditor, um eine neue Datei zu erstellen und zu bearbeiten:

nano hashes.txt

Fügen Sie die folgenden Beispiel-MD5-Hashwerte in die Datei ein. Dies sind häufige Test-Hashwerte mit bekannten Klartextwerten (drücken Sie Strg+O, um zu speichern, und Strg+X, um nano zu verlassen):

5f4dcc3b5aa765d61d8327deb882cf99  ## Passwort: "password"
098f6bcd4621d373cade4e832627b4f6  ## Passwort: "test"

Alternativ können Sie die Datei direkt mit echo-Befehlen erstellen. Der Operator > erstellt eine neue Datei, während >> an eine vorhandene Datei anhängt:

echo "5f4dcc3b5aa765d61d8327deb882cf99" > hashes.txt
echo "098f6bcd4621d373cade4e832627b4f6" >> hashes.txt

Überprüfen Sie den Inhalt Ihrer Hash-Datei mit dem Befehl cat, der den Dateiinhalt im Terminal anzeigt:

cat hashes.txt

Sie sollten die beiden MD5-Hashwerte in Ihrem Terminal sehen. Diese Datei wird in den nächsten Schritten unser Ziel für das Knacken von Hashwerten sein, wenn wir Hashcat konfigurieren und Brute-Force-Angriffe ausführen. Bekannte Test-Hashwerte helfen dabei, zu überprüfen, ob unsere Knackeinrichtung richtig funktioniert.

Konfigurieren der GPU-Unterstützung

In diesem Schritt konfigurieren Sie Hashcat, um die GPU-Beschleunigung für ein schnelleres Knacken von Hashwerten zu nutzen. Hashcat kann sowohl CPU- als auch GPU-Ressourcen nutzen, aber GPUs sind besonders effektiv für das Knacken von Passwörtern, da sie Tausende kleiner Kerne enthalten, die viele Berechnungen gleichzeitig ausführen können. Diese Fähigkeit zur parallelen Verarbeitung macht GPUs bei Brute-Force-Angriffen viel schneller als CPUs.

Bevor Sie die GPU-Unterstützung konfigurieren, überprüfen wir zunächst, welche Hardwaregeräte für Hashcat verfügbar sind. Führen Sie diesen Befehl aus, um alle erkannten OpenCL-Geräte aufzulisten:

hashcat -I

Dieser Befehl zeigt die verfügbaren OpenCL-Geräte an. In der LabEx-VM-Umgebung sollten Sie eine Ausgabe ähnlich der folgenden sehen:

OpenCL Platform #1: NVIDIA Corporation
* Device #1: NVIDIA GeForce GTX 1080 Ti, 10240/11264 MB allocatable, 28MCU

Die Ausgabe zeigt die Details Ihrer GPU, einschließlich ihres Modells und ihrer Speicherkapazität. Jetzt erstellen wir eine Konfigurationsdatei, um die Leistung von Hashcat zu optimieren. Konfigurationsdateien helfen, Einstellungen zu automatisieren, sodass Sie sie nicht jedes Mal eingeben müssen.

Erstellen und bearbeiten Sie die Konfigurationsdatei mit:

nano ~/.hashcat/hashcat.conf

Fügen Sie die folgende Konfiguration hinzu (drücken Sie Strg+O, um zu speichern, und Strg+X, um zu verlassen):

--force
--opencl-device-types=1,2
--workload-profile=4

Verstehen wir, was jeder Parameter bewirkt:

  • --force teilt Hashcat mit, fortzusetzen, auch wenn es potenzielle Probleme erkennt (nützlich in Lab-Umgebungen)
  • --opencl-device-types=1,2 aktiviert sowohl CPU-Geräte (Typ 1) als auch GPU-Geräte (Typ 2) für die Verarbeitung
  • --workload-profile=4 setzt das Profil mit der höchsten Leistung und priorisiert die Geschwindigkeit vor der Stromersparnis

Um zu bestätigen, dass alles richtig funktioniert, führen Sie einen Benchmark-Test aus:

hashcat -b

Der Benchmark testet verschiedene Hash-Algorithmen und zeigt Leistungsmetriken wie die folgenden an:

Speed.#1.........: 12345.7 MH/s (98.23ms) @ Accel:1024 Loops:1024 Thr:256 Vec:1

Diese Zahlen zeigen, wie viele Hashwerte Ihr System pro Sekunde versuchen kann. Höhere Werte bedeuten ein schnelleres Knacken. Der Benchmark bestätigt, dass die GPU-Beschleunigung aktiv ist und im nächsten Schritt, in dem wir den eigentlichen Brute-Force-Angriff durchführen, einsatzbereit ist.

Ausführen eines Brute-Force-Angriffs

In diesem Schritt führen Sie einen Brute-Force-Angriff mit Hashcat aus, um die MD5-Hashwerte zu knacken, die wir zuvor vorbereitet haben. Ein Brute-Force-Angriff ist eine Trial-and-Error-Methode, die systematisch alle möglichen Zeichenkombinationen prüft, bis das richtige Passwort gefunden wird. Dieser Ansatz ist besonders nützlich, wenn Sie keine Informationen über die Passwortstruktur haben.

Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem wir die Hash-Datei gespeichert haben. Dadurch wird sichergestellt, dass Hashcat auf die Datei zugreifen kann, die wir knacken möchten:

cd ~/project

Jetzt verwenden wir Hashcat mit spezifischen Parametern, die für unseren Angriff ausgelegt sind:

  • -m 0 teilt Hashcat mit, dass wir mit MD5-Hashwerten arbeiten (jeder Hash-Typ hat in Hashcat eine spezifische Nummer)
  • -a 3 setzt den Angriffsmodus auf Brute-Force
  • ?a?a?a?a definiert unsere Passwortmaske - das bedeutet, dass wir nach Passwörtern mit genau 4 Zeichen suchen, die Folgendes enthalten können:
    • Kleinbuchstaben (a-z)
    • Großbuchstaben (A-Z)
    • Zahlen (0-9)
    • Sonderzeichen (!@#$% usw.)

Führen Sie den Brute-Force-Angriff mit diesem Befehl aus:

hashcat -m 0 -a 3 hashes.txt ?a?a?a?a --force

Während Hashcat läuft, werden in Ihrem Terminal Echtzeit-Statistiken angezeigt. Diese Ausgabe hilft Ihnen, den Knackfortschritt zu überwachen:

Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: [timestamp]
Speed.#1.........: [speed] H/s
Recovered........: 0/2 (0.00%)
Progress.........: [progress]
Rejected.........: 0
Restore.Point....: 0

Die Knackspeed (H/s) zeigt, wie viele Hash-Berechnungen Ihr System pro Sekunde ausführt. Der Fortschrittsanzeiger hilft, die verbleibende Zeit abzuschätzen. Bei einem 4-Zeichen-Passwort kann dies je nach Hardware mehrere Minuten dauern.

Wenn der Angriff abgeschlossen ist, können wir die Ergebnisse überprüfen. Der folgende Befehl zeigt alle erfolgreich geknackten Passwörter an:

hashcat -m 0 hashes.txt --show

Eine erfolgreiche Ausgabe verknüpft jeden Hash mit seinem entdeckten Klartext-Passwort:

5f4dcc3b5aa765d61d8327deb882cf99:password
098f6bcd4621d373cade4e832627b4f6:test

Diese Ausgabe bestätigt, dass Hashcat beide MD5-Hashwerte in unserer Testdatei erfolgreich in ihre ursprünglichen Passwörter umgewandelt hat. Die erste Spalte zeigt den Hash, mit dem wir begonnen haben, während die zweite Spalte das eigentliche Passwort zeigt, das diesen Hash erzeugt hat.

Überprüfen der geknackten Hashwerte

In diesem letzten Schritt werden Sie die Ergebnisse Ihres Brute-Force-Angriffs überprüfen und analysieren. Hashcat speichert automatisch erfolgreich geknackte Passwörter in einer speziellen Datei namens "Potfile". Diese fungiert als Datenbank aller Passwörter, die Sie während Ihrer Knacksitzungen zurückgewonnen haben. Wir werden diese untersuchen, um zu bestätigen, welche Passwörter erfolgreich geknackt wurden.

Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem wir unsere Hash-Datei gespeichert haben. Dadurch stellen wir sicher, dass wir mit den richtigen Dateien arbeiten:

cd ~/project

Um alle geknackten Hashwerte aus Ihrem Angriff anzuzeigen, verwenden wir die --show-Option mit Hashcat. Dieser Befehl sucht speziell nach MD5-Hashwerten (Modus 0) in unserer hashes.txt-Datei und zeigt alle in der Potfile gefundenen Übereinstimmungen an:

hashcat -m 0 hashes.txt --show

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die den ursprünglichen Hash gefolgt von seinem geknackten Klartext-Passwort zeigt:

5f4dcc3b5aa765d61d8327deb882cf99:password
098f6bcd4621d373cade4e832627b4f6:test

Für ein umfassenderes Verständnis Ihrer Knacksitzung bietet die --status-Option wertvolle Statistiken. Dies zeigt, wie viele Hashwerte geknackt wurden, den Hash-Typ und Leistungsmetriken:

hashcat -m 0 hashes.txt --status

Dies wird wichtige Informationen anzeigen, darunter:

Session.Name.....: hashcat
Status..........: Exhausted
Hash.Name.......: MD5
Hash.Target.....: hashes.txt
Time.Started....: [timestamp]
Time.Estimated..: [timestamp]
Recovered.......: 2/2 (100.00%)
Progress.......: [progress]
Speed.#1.......: [speed] H/s

Um einen vollständigen Bericht über Ihre Knacksitzung zu generieren, den Sie später speichern und überprüfen können, verwenden Sie die folgenden Befehle. Der erste erstellt eine formatierte Berichtsdatei, und der zweite zeigt deren Inhalt an:

hashcat -m 0 hashes.txt --outfile-format=2 --outfile=results.txt
cat results.txt

Der Bericht wird detaillierte Informationen zu jedem geknackten Hash enthalten, einschließlich des Hash-Typs, des Klartext-Passworts und der genauen Zeit, die es gedauert hat, jeden einzelnen zu knacken. Diese Dokumentation ist besonders nützlich, wenn Sie Ihre Knackleistung analysieren oder die Ergebnisse mit anderen teilen müssen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Hashcat, ein leistungsstarkes Passwortwiederherstellungstool, installieren und konfigurieren, indem Sie den Paketmanager aktualisieren und seine Version überprüfen. Sie haben auch eine Hash-Datei mit Beispiel-MD5-Hashwerten vorbereitet und deren Inhalt mit grundlegenden Linux-Befehlen bestätigt.

Darüber hinaus haben Sie die GPU-Unterstützung von Hashcat zur Leistungsoptimierung untersucht und einen Brute-Force-Angriff durchgeführt, um die Beispiel-Hashwerte zu knacken. Diese praktische Übung hat gezeigt, welche wesentliche Rolle Hashcat in der Cybersicherheit bei Passwortwiederherstellung und Schwachstellenbewertungen spielt.