PRINCE-Angriffsmodus in Hashcat verwenden

Kali LinuxBeginner
Jetzt üben

Einleitung

Hashcat ist ein leistungsstarkes und vielseitiges Werkzeug zur Passwortwiederherstellung, das weithin für seine Geschwindigkeit und die Unterstützung zahlreicher Hashing-Algorithmen und Angriffsmodi bekannt ist. Eine seiner innovativsten Funktionen ist der PRINCE (Probabilistic Relevant Incremental Nonce-based Candidate-generator Extension) Angriff.

Im Gegensatz zu einem Standard-Dictionary-Angriff, der nur Wörter aus einer Liste ausprobiert, generiert der PRINCE-Angriff neue Passwortkandidaten, indem er Wörter aus einer gegebenen Wortliste auf verschiedene Weise kombiniert. Dies macht ihn äußerst effektiv gegen Passwörter, die Verkettungen von zwei oder mehr Wörterbuchwörtern sind, ein gängiges Muster zur Erstellung von einprägsamen, aber scheinbar komplexen Passwörtern.

In diesem Lab lernen Sie die Grundlagen des PRINCE-Angriffsmodus in Hashcat kennen. Sie bereiten eine Wortliste vor, führen einen PRINCE-Angriff gegen einen Beispiel-Hash aus, analysieren die generierten Kandidaten und kombinieren ihn schließlich mit einer Regeldatei, um noch komplexere Passwortvariationen zu bewältigen.

Probabilistische Wortgenerierung mit PRINCE verstehen

In diesem Schritt lernen Sie das Kernkonzept des PRINCE-Angriffsmodus kennen. Der PRINCE-Angriff wird in Hashcat durch das Angriffsmodus-Flag -a 8 gekennzeichnet. Seine Stärke liegt in der Erstellung neuer Passwortkandidaten aus einer kleineren Wortliste, anstatt sich auf ein riesiges Wörterbuch zu verlassen. Er kombiniert algorithmisch die Wörter aus Ihrer Quellliste, um eine viel größere, komplexere Menge potenzieller Passwörter zu generieren.

Wenn Ihre Wortliste beispielsweise "apple" und "pie" enthält, kann PRINCE Kandidaten wie "apple", "pie", "applepie", "pieapple", "appleapple" usw. generieren.

Beginnen wir damit, die PRINCE-Angriffsmodus-Option im Hilfemenü von Hashcat zu bestätigen. Sie können grep verwenden, um die umfangreiche Hilfeausgabe zu filtern und die relevante Zeile zu finden.

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

hashcat --help | grep "PRINCE"

Sie sehen die Zeile, die den PRINCE-Angriffsmodus definiert, was seine Verfügbarkeit und die entsprechende Angriffsmodusnummer bestätigt.

      8 | PRINCE

Dies bestätigt, dass -a 8 das richtige Flag ist, um einen PRINCE-Angriff zu starten.

Eine kleine Basis-Wortliste vorbereiten

In diesem Schritt erstellen Sie eine kleine Basis-Wortliste. Die Effektivität eines PRINCE-Angriffs steht in direktem Zusammenhang mit der Qualität der Eingabe-Wortliste. Selbst eine kleine, gut ausgewählte Wortliste kann unglaublich mächtig sein. Für dieses Lab erstellen wir eine Datei, die einige einfache Wörter enthält.

Unser Zielpasswort für den ersten Teil des Labs ist "labexrocks". Daher sollte unsere Wortliste die Basiswörter "labex" und "rocks" enthalten.

Verwenden Sie den Befehl echo mit Ausgabeumleitung, um eine Datei namens wordlist.txt in Ihrem aktuellen Verzeichnis (~/project) zu erstellen.

echo -e "labex\nrocks\npass\nword" > wordlist.txt

Das Flag -e aktiviert die Interpretation von Backslash-Escapes, sodass \n für jedes Wort eine neue Zeile erzeugt.

Überprüfen Sie nun den Inhalt Ihrer neu erstellten Wortliste mit dem Befehl cat.

cat wordlist.txt

Sie sollten die folgende Ausgabe sehen, die bestätigt, dass die Datei korrekt erstellt wurde:

labex
rocks
pass
word

Sie haben nun eine Basis-Wortliste, die für den PRINCE-Angriff bereit ist.

Einen PRINCE-Angriff mit -a 8 ausführen

In diesem Schritt verwenden Sie die erstellte Wortliste, um einen Beispiel-MD5-Hash zu knacken. Das Setup-Skript für dieses Lab hat bereits eine Datei namens hash.txt erstellt, die den MD5-Hash des Passworts "labexrocks" enthält.

Lassen Sie uns den Hashcat-Befehl zusammenstellen:

  • hashcat: Die ausführbare Datei.
  • -m 0: Gibt den Hash-Modus an. 0 entspricht MD5.
  • -a 8: Gibt den Angriffsmodus an, nämlich PRINCE.
  • hash.txt: Die Datei, die den Ziel-Hash enthält.
  • wordlist.txt: Ihre Basis-Wortliste.

Führen Sie nun den vollständigen Befehl in Ihrem Terminal aus:

hashcat -m 0 -a 8 hash.txt wordlist.txt

Hashcat wird initialisiert und beginnt mit dem Angriff. Da die Wortliste klein ist und das Passwort eine direkte Kombination von Wörtern daraus ist, wird der Vorgang sehr schnell ablaufen. Sie sehen eine Ausgabe, die die Sitzung detailliert beschreibt, und am wichtigsten ist das geknackte Passwort.

Die Ausgabe wird in etwa wie folgt aussehen (einige Details können variieren):

...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 22
* Keyspace..: 468

2d4a2b23999534c734b26e1b31b5579d:labexrocks

Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d4a2b23999534c734b26e1b31b5579d
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Mode.......: PRINCE
Speed.#*.........: ...
Recovered........: 1/1 (100.00%) Digests
Progress.........: 468/468 (100.00%)
Rejected.........: 0/468 (0.00%)
Restore.Point....: 468/468 (100.00%)
Restore.Sub.#*...: ...
Candidate.Engine.: PRINCE
Candidates.#*....: ...
Hardware.Mon.#*..: ...
...

Die Zeile 2d4a2b23999534c734b26e1b31b5579d:labexrocks zeigt deutlich den ursprünglichen Hash und das wiederhergestellte Passwort. Sie haben erfolgreich den PRINCE-Angriff zum Knacken des Passworts verwendet.

Die generierten Kandidaten-Passwörter analysieren

In diesem Schritt werden Sie untersuchen, was PRINCE im Hintergrund tut. Anstatt einen Hash zu knacken, können Sie Hashcat anweisen, die von ihm generierten Kandidaten-Passwörter einfach auf der Konsole auszugeben. Dies geschieht mit dem Flag --stdout. Es ist eine ausgezeichnete Möglichkeit zu verstehen, wie Ihre Basis-Wortliste transformiert wird.

Verwenden wir --stdout mit unserer wordlist.txt, um die generierten Kandidaten anzuzeigen.

hashcat --stdout -a 8 wordlist.txt

Dies gibt eine große Anzahl von Kombinationen auf Ihrem Bildschirm aus. Um die Ausgabe besser handhabbar zu machen, können Sie sie an den Befehl head weiterleiten, um nur die ersten 10 Zeilen anzuzeigen.

hashcat --stdout -a 8 wordlist.txt | head -n 10

Die Ausgabe zeigt die ersten paar Kandidaten, die von PRINCE generiert wurden.

pass
word
labex
rocks
passpass
password
passlabex
passrocks
wordpass
wordword

Wie Sie sehen können, beginnt PRINCE mit den ursprünglichen Wörtern und beginnt dann, neue Kombinationen zu erstellen. Das zuvor geknackte Passwort "labexrocks" würde weiter unten in dieser Liste generiert werden. Dies demonstriert die Leistungsfähigkeit von PRINCE, eine kleine Wortliste zu einer viel größeren und effektiveren Menge von Passwort-Vermutungen zu erweitern.

PRINCE mit einer Regeldatei für mehr Komplexität kombinieren

In diesem Schritt lernen Sie, wie Sie den PRINCE-Angriff durch die Kombination mit einer Regeldatei noch leistungsfähiger machen können. Regeldateien wenden spezifische Mutationen auf jeden von PRINCE generierten Kandidaten-Passwort an. Dies ermöglicht es Ihnen, gängige Variationen wie Groß-/Kleinschreibung, das Hinzufügen von Zahlen oder das Anhängen von Sonderzeichen zu testen.

Das Lab-Setup hat eine Hash-Datei hash2.txt (für das Passwort "Labexrocks") und eine gängige Regeldatei namens best64.rule bereitgestellt. Diese Regeldatei enthält 64 der effektivsten Regeln zur Manipulation von Passwörtern.

Der Angriffsablauf wird wie folgt sein:

  1. PRINCE generiert einen Kandidaten (z. B. "labexrocks").
  2. Hashcat wendet Regeln aus best64.rule auf diesen Kandidaten an (z. B. den ersten Buchstaben großschreiben -> "Labexrocks").
  3. Der modifizierte Kandidat wird gegen den Hash getestet.

Um einen PRINCE-Angriff mit einer Regeldatei zu kombinieren, fügen Sie einfach das Flag -r gefolgt vom Pfad zur Regeldatei hinzu.

Führen Sie den folgenden Befehl aus:

hashcat -m 0 -a 8 hash2.txt wordlist.txt -r best64.rule

Hashcat wird nun den PRINCE-Angriff ausführen, aber jeder generierte Kandidat wird durch die Regeln in best64.rule modifiziert, bevor er getestet wird.

Sie werden einen erfolgreichen Crack in der Ausgabe sehen:

...
15895e67271a552214b5e422d5752e47:Labexrocks

Session..........: hashcat
Status...........: Cracked
...

Das wiederhergestellte Passwort ist "Labexrocks". Dies wurde gefunden, weil PRINCE "labexrocks" generierte und eine der Regeln in best64.rule den ersten Buchstaben großschrieb und somit dem Zielpasswort entsprach. Diese Kombination von Angriffsmodi ist in realen Szenarien äußerst effektiv.

Zusammenfassung

In diesem Lab haben Sie erfolgreich gelernt, wie Sie den PRINCE-Angriffsmodus in Hashcat verwenden. Sie haben praktische Erfahrungen mit einer der kreativsten und effektivsten Passwort-Knacktechniken gesammelt.

Sie haben gelernt:

  • Das Konzept des PRINCE-Angriffs (-a 8) zu verstehen und wie er probabilistisch Kandidaten-Passwörter generiert.
  • Eine einfache, zielgerichtete Wortliste vorzubereiten, die als Basis für den Angriff dient.
  • Einen grundlegenden PRINCE-Angriff auszuführen, um ein durch Aneinanderreihung von Wörtern gebildetes Passwort zu knacken.
  • Das Flag --stdout zu verwenden, um die von PRINCE generierten Kandidaten zu analysieren und seine Logik zu verstehen.
  • Den PRINCE-Angriff mit einer Regeldatei (-r) zu kombinieren, um komplexere Passwörter mit Variationen wie Groß-/Kleinschreibung zu knacken.

Der PRINCE-Angriff ist ein mächtiges Werkzeug im Arsenal jedes Sicherheitsexperten, insbesondere wenn es um Passwörter geht, die aus mehreren Wörtern bestehen. Die Beherrschung seiner Anwendung und seiner Kombination mit anderen Angriffsmodi wird Ihre Fähigkeiten zur Passwortwiederherstellung erheblich verbessern.