Kombinator-Angriff mit Hashcat durchführen

LinuxBeginner
Jetzt üben

Einleitung

In diesem Lab werden Sie eine spezifische Passwort-Cracking-Technik namens Kombinator-Angriff (combinator attack) mit Hashcat, einem leistungsstarken und vielseitigen Werkzeug zur Passwortwiederherstellung, untersuchen. Ein Kombinator-Angriff ist eine Methode, bei der zwei separate Wortlisten kombiniert werden, um Passwortkandidaten zu generieren. Wenn beispielsweise eine Liste "password" und die andere "123" enthält, testet der Angriff die Kombination "password123".

Dieser Ansatz ist besonders effektiv gegen Passwörter, die durch Aneinanderreihung von zwei Wörtern oder einem Wort und einer Zahlen- oder Symbolsequenz gebildet werden. In diesem Lab lernen Sie, wie Sie Wortlisten vorbereiten, den entsprechenden Hashcat-Befehl erstellen, den Angriff gegen einen Beispiel-Hash ausführen und die Ergebnisse überprüfen.

Das Konzept des Kombinator-Angriffs verstehen

In diesem Schritt lernen Sie das Kernkonzept eines Kombinator-Angriffs in Hashcat kennen. Dieser Angriff wird durch den Angriffsmodus -a 1 gekennzeichnet. Er funktioniert, indem ein Basiswort aus der ersten Wortliste genommen und ein Wort aus der zweiten Wortliste angehängt wird, wodurch ein neues Passwortkandidat erstellt wird. Dieser Prozess wird für jedes Wort in beiden Listen wiederholt.

Wenn Sie beispielsweise zwei Listen haben:

  • wordlist1.txt: admin, user
  • wordlist2.txt: 123, !

würde der Kombinator-Angriff die folgenden Kandidaten generieren: admin123, admin!, user123, user!.

Diese Methode erweitert den potenziellen Passwortraum erheblich, ohne dass eine einzige, riesige Wörterbuchdatei benötigt wird. Beginnen wir damit, den Angriffsmodus im Hilfe-Menü von Hashcat zu bestätigen.

Führen Sie den folgenden Befehl aus, um die Hilfeausgabe nach Informationen zum Kombinator-Angriff zu filtern:

hashcat --help | grep "Combinator"

Sie sollten eine Zeile in der Ausgabe sehen, die den Kombinator-Angriffsmodus und seine entsprechende Nummer explizit erwähnt.

-a, --attack-mode         |      ## | Attack-mode
...
                          |      1 | Combinator
...

Dies bestätigt, dass -a 1 das richtige Flag für einen Kombinator-Angriff ist.

Erstellen von zwei separaten Wortlisten für den Angriff

In diesem Schritt erstellen Sie die beiden Wortlisten, die in unserem Kombinator-Angriff verwendet werden. Für dieses Lab erstellen wir zwei kleine, benutzerdefinierte Wortlisten. In einem realen Szenario wären diese Listen viel größer und würden gängigere Wörter, Namen und Muster enthalten.

Unser Zielpasswort ist eine Kombination aus einem gängigen Wort und einer Zahlenfolge. Wir werden den Wortteil in wordlist1.txt und den Zahlenteil in wordlist2.txt platzieren.

Erstellen Sie zuerst wordlist1.txt mit einigen potenziellen Basiswörtern. Verwenden Sie den echo-Befehl mit dem Flag -e, um Zeilenumbrüche (\n) zu verarbeiten:

echo -e "admin\nuser\npassword\nguest" > wordlist1.txt

Erstellen Sie als Nächstes wordlist2.txt mit einigen gängigen numerischen Suffixen:

echo -e "2024\n!@#\n123\nxyz" > wordlist2.txt

Überprüfen Sie nun den Inhalt beider Dateien mit dem cat-Befehl, um sicherzustellen, dass sie korrekt erstellt wurden.

Überprüfen Sie die erste Wortliste:

cat wordlist1.txt

Erwartete Ausgabe:

admin
user
password
guest

Überprüfen Sie die zweite Wortliste:

cat wordlist2.txt

Erwartete Ausgabe:

2024
!@#
123
xyz

Mit diesen beiden Wortlisten kann Hashcat nun das Kandidatenpasswort password123 bilden.

Erstellen des Kombinator-Angriffs-Befehls mit zwei Wortlisten

In diesem Schritt erstellen Sie den vollständigen Hashcat-Befehl für den Kombinator-Angriff. Es ist wichtig zu verstehen, was jeder Teil des Befehls tut, bevor Sie ihn ausführen.

Die allgemeine Syntax für einen Kombinator-Angriff lautet: hashcat [options] <hash-file> <wordlist1> <wordlist2>

Hier ist die Aufschlüsselung des Befehls, den wir verwenden werden:

  • hashcat: Das ausführbare Programm.
  • -m 0: Dies gibt den Hash-Typ an. Modus 0 entspricht MD5.
  • -a 1: Dies setzt den Angriffsmodus auf 1, was dem Kombinator-Angriff entspricht.
  • hash.txt: Dies ist die Datei, die den zu knackenden Hash enthält. Sie wurde für Sie während des Lab-Setups erstellt.
  • wordlist1.txt: Die erste Wortliste, die den linken Teil der Passwortkandidaten enthält.
  • wordlist2.txt: Die zweite Wortliste, die den rechten Teil der Passwortkandidaten enthält.

Bevor Sie den vollständigen Angriff ausführen, ist es eine gute Praxis, das Flag --show zu verwenden. Dieses Flag weist Hashcat an, alle Hashes anzuzeigen, die bereits geknackt und in der Potfile gespeichert wurden, ohne eine neue Knack-Sitzung zu starten.

Lassen Sie uns den Befehl mit --show ausführen, um zu sehen, dass unser Ziel-Hash noch nicht geknackt wurde:

hashcat -m 0 -a 1 hash.txt wordlist1.txt wordlist2.txt --show

Da wir ihn zum ersten Mal ausführen, wird der Befehl keine Ausgabe erzeugen, was das erwartete Ergebnis ist. Dies bestätigt, dass wir bereit sind, mit dem eigentlichen Angriff fortzufahren.

Ausführen des Angriffs und Beobachten der Kombinationen

Jetzt ist es an der Zeit, den Kombinator-Angriff ohne das Flag --show auszuführen. Dies startet den Knack-Prozess. Hashcat liest die beiden Wortlisten, kombiniert sie, hasht die Ergebnisse und vergleicht sie mit dem Ziel-Hash in hash.txt.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

hashcat -m 0 -a 1 hash.txt wordlist1.txt wordlist2.txt

Hashcat wird initialisiert und zeigt einen Statusbildschirm an. Da unsere Wortlisten sehr klein sind, wird der Prozess fast sofort abgeschlossen. Die Ausgabe zeigt an, dass der Hash geknackt wurde.

Sie sehen eine Ausgabe, die der folgenden ähnelt (einige Details wie Geschwindigkeit und Zeit können variieren):

hashcat (v6.2.6) starting

...

Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: e10adc3949ba59abbe56e057f20f883e
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (wordlist1.txt), File (wordlist2.txt)
Guess.Queue......: 2/2 (100.00%)
Speed.#*.........: ... H/s (...)
Recovered........: 1/1 (100.00%) Digests
Progress.........: 16/16 (100.00%)
Rejected.........: 0/16 (0.00%)
Restore.Point....: 4/4 (100.00%)
Restore.Sub.#*...: 4/4 (100.00%)
Candidates.#*....: 16

Cracked Hashes: 1/1
e10adc3949ba59abbe56e057f20f883e:password123

...
All hashes have been recovered

Started: ...
Stopped: ...

Die Zeile e10adc3949ba59abbe56e057f20f883e:password123 zeigt deutlich den ursprünglichen Hash und sein geknacktes Klartextpasswort. Dies bestätigt, dass unser Angriff erfolgreich war.

Überprüfung der Potfile auf kombinierte Passwort-Ergebnisse

In diesem Schritt überprüfen Sie die Hashcat-Potfile. Die Potfile (hashcat.potfile) ist eine reine Textdatei, in der Hashcat automatisch erfolgreich geknackte Hashes und ihre entsprechenden Passwörter speichert. Dies ist eine nützliche Funktion, die verhindert, dass Sie Zeit mit dem erneuten Knacken bereits gelöster Hashes verschwenden.

Standardmäßig befindet sich die Potfile im Verzeichnis ~/.local/share/hashcat/.

Verwenden Sie den Befehl cat, um den Inhalt der Potfile anzuzeigen und zu bestätigen, dass unser Ergebnis gespeichert wurde:

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

Die Ausgabe zeigt den Hash und sein geknacktes Passwort, getrennt durch einen Doppelpunkt:

e10adc3949ba59abbe56e057f20f883e:password123

Dies bestätigt, dass der Angriff erfolgreich war und das Ergebnis nun dauerhaft in der Potfile gespeichert ist. Wenn Sie denselben Angriff erneut ausführen würden, würde Hashcat das Flag --show verwenden, um das Ergebnis sofort aus dieser Datei abzurufen, anstatt den gesamten Knack-Prozess erneut auszuführen.

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen Kombinator-Angriff mit Hashcat durchgeführt.

Sie haben gelernt, wie Sie:

  • Das Konzept eines Kombinator-Angriffs (-a 1) in Hashcat verstehen.
  • Zwei separate Wortlisten erstellen, die als Grundlage für Passwortkandidaten dienen.
  • Den korrekten Hashcat-Befehl konstruieren, der den Angriffsmodus, den Hash-Typ und die Eingabedateien angibt.
  • Den Angriff ausführen und einen MD5-Hash erfolgreich knacken, indem Sie ein Wort und eine Zahlenfolge kombinieren.
  • Die hashcat.potfile lokalisieren und überprüfen, um die gespeicherten Ergebnisse eines erfolgreichen Knackens zu sehen.

Der Kombinator-Angriff ist eine grundlegende Technik beim Knacken von Passwörtern und besonders nützlich, wenn Passwörter verwendet werden, die vorhersehbaren Verkettungsmustern folgen.