Benutzerdefinierte Regel in Hashcat erstellen

Kali LinuxBeginner
Jetzt üben

Einleitung

Hashcat ist ein leistungsstarkes und vielseitiges Werkzeug zur Passwortwiederherstellung. Eine seiner effektivsten Funktionen ist der regelbasierte Angriff, der es Ihnen ermöglicht, Manipulationen an einer Wortliste durchzuführen, um eine riesige Anzahl von Passwortkandidaten zu erstellen. Anstatt vorgefertigte Regeldateien zu verwenden, können Sie Ihre eigenen benutzerdefinierten Regeln erstellen, die auf ein bestimmtes Ziel zugeschnitten sind.

In diesem Lab lernen Sie die Grundlagen der Hashcat-Regelsyntax kennen und erstellen Ihre eigene benutzerdefinierte Regeldatei von Grund auf. Sie schreiben Regeln, um den ersten Buchstaben eines Wortes zu kapitalisieren und ein Jahr anzuhängen, und verwenden dann diese benutzerdefinierte Regeldatei in einem Beispiel-Passwort-Cracking-Angriff.

Grundlegende Regelsyntax lernen wie Anhängen von '$' und Voranstellen von '^'

In diesem Schritt lernen Sie die grundlegende Syntax für Hashcat-Regeln kennen. Regeln sind einfache Ein-Zeichen-Befehle, die Hashcat anweisen, wie ein Wort aus Ihrer Wortliste manipuliert werden soll. Zwei der grundlegendsten Regeln sind das Voranstellen und Anhängen von Zeichen.

  • ^x: Stellt das Zeichen x am Anfang des Wortes voran.
  • $x: Hängt das Zeichen x am Ende des Wortes an.

Um zu sehen, wie diese Regeln funktionieren, ohne einen vollständigen Angriff auszuführen, können wir die Option --stdout verwenden. Diese gibt die Ausgabe der Regelmanipulationen direkt auf dem Terminal aus.

Zuerst testen wir die Anhängeregel. Wir erstellen eine temporäre Regeldatei, die jeder Wort die Zahl 1 anhängt.

echo '$1' > temp_rule.txt

Führen Sie nun Hashcat mit dieser Regel gegen unsere wordlist.txt aus. Das Flag --force wird verwendet, um Hashcat auch dann auszuführen, wenn es eine nicht unterstützte Umgebung erkennt, wie z. B. eine VM.

hashcat --force --stdout wordlist.txt -r temp_rule.txt

Sie sollten das Wort aus Ihrer Liste mit angehängter 1 sehen:

password1

Als Nächstes testen wir die Voranstellungsregel. Wir erstellen eine Regel, um das Zeichen A voranzustellen.

echo '^A' > temp_rule.txt

Führen Sie Hashcat erneut mit dieser neuen Regel aus:

hashcat --force --stdout wordlist.txt -r temp_rule.txt

Die Ausgabe zeigt nun das Zeichen A am Anfang des Wortes:

Apassword

Experimentieren Sie gerne mit anderen Zeichen, um Ihr Verständnis zu festigen. Wenn Sie fertig sind, können Sie die temporäre Datei löschen.

rm temp_rule.txt

Erstellen einer neuen benutzerdefinierten Regeldatei

In diesem Schritt erstellen Sie eine neue, leere Datei, die alle benutzerdefinierten Regeln für unseren Angriff enthalten wird. Es ist üblich, Regeldateien zur besseren Übersichtlichkeit die Erweiterung .rule zu geben.

Wir erstellen eine Datei namens labex.rule in Ihrem aktuellen Arbeitsverzeichnis, ~/project. Sie können eine leere Datei einfach mit dem Befehl touch erstellen.

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

touch labex.rule

Um zu bestätigen, dass die Datei erfolgreich erstellt wurde, können Sie den Inhalt des Verzeichnisses mit dem Befehl ls auflisten.

ls

Sie sollten labex.rule zusammen mit den Dateien hashes.txt und wordlist.txt in der Ausgabe sehen.

hashes.txt  labex.rule  wordlist.txt

Nun haben Sie eine dedizierte Datei, die für Ihre benutzerdefinierten Regeln bereit ist.

Hinzufügen einer Regel zur Großschreibung des ersten Buchstabens 'c'

In diesem Schritt fügen Sie Ihre erste Regel zur Datei labex.rule hinzu. Ein sehr gängiges Passwortmuster ist die Großschreibung des ersten Buchstabens eines Wortes. Hashcat hat eine spezielle Regel dafür:

  • c: Schreibt den ersten Buchstaben des Wortes groß und alle anderen Buchstaben klein.

Wir fügen diese Regel unserer Datei labex.rule hinzu. Der Befehl echo in Kombination mit einer einzelnen Umleitung > ist eine schnelle Möglichkeit, Inhalte in eine Datei zu schreiben und alles zu überschreiben, was zuvor dort vorhanden war.

echo 'c' > labex.rule

Testen wir nun unsere neue Regeldatei, um ihre Auswirkung zu sehen. Wir verwenden erneut die Option --stdout, um die Ausgabe vorab anzuzeigen.

hashcat --force --stdout wordlist.txt -r labex.rule

Die Ausgabe sollte das Wort password mit dem ersten großgeschriebenen Buchstaben sein, wie durch die Regel c angegeben.

Password

Sie haben erfolgreich Ihre erste benutzerdefinierte Regel erstellt und getestet.

Hinzufügen einer Regel zum Anhängen eines Jahres ' $2 $0 $2 $4'

In diesem Schritt werden Sie Ihre Regel komplexer gestalten. Sie können mehrere Regelbefehle in einer einzigen Zeile kombinieren, um spezifischere Passwortkandidaten zu erstellen. Wir werden unsere Regel so modifizieren, dass sie nicht nur den ersten Buchstaben großschreibt, sondern auch ein Jahr anhängt, z. B. 2024.

Um ein bestimmtes Zeichen anzuhängen, verwenden Sie den Befehl $ gefolgt von dem Zeichen. Zum Beispiel hängt $2 die Ziffer 2 an. Um die Zeichenkette 2024 zu erstellen, müssen wir 2, dann 0, dann 2 und dann 4 anhängen.

Die kombinierte Regel sieht dann so aus: c $2 $0 $2 $4. Dies weist Hashcat an, zuerst die Großschreibung (c) durchzuführen und dann die angegebenen Zeichen in der Reihenfolge anzuhängen.

Aktualisieren wir die Datei labex.rule mit dieser neuen, leistungsfähigeren Regel.

echo 'c $2 $0 $2 $4' > labex.rule

Testen Sie nun die aktualisierte Regeldatei, um das Ergebnis der kombinierten Befehle zu sehen.

hashcat --force --stdout wordlist.txt -r labex.rule

Die Ausgabe sollte nun das großgeschriebene Wort gefolgt vom Jahr 2024 sein.

Password2024

Dies zeigt, wie Sie Regeln miteinander verketten können, um komplexe und gezielte Passwortmuster zu erstellen.

Testen der benutzerdefinierten Regeldatei bei einem Beispielangriff

In diesem Schritt verwenden Sie Ihre abgeschlossene benutzerdefinierte Regeldatei, labex.rule, um einen echten Passwort-Cracking-Angriff durchzuführen. Wir werden den Beispiel-MD5-Hash aus der Datei hashes.txt ins Visier nehmen.

Der Befehl für den Angriff gibt den Hash-Typ, den Angriffsmodus, die Hash-Datei, die Wortliste und schließlich unsere benutzerdefinierte Regeldatei an.

  • -m 0: Gibt an, dass der Hash-Typ MD5 ist.
  • -a 0: Gibt an, dass der Angriffsmodus ein "Straight" oder Wörterbuchangriff ist.
  • hashes.txt: Die Datei, die den/die zu knackenden Hash(es) enthält.
  • wordlist.txt: Die Wörterbuchdatei, die als Basis verwendet wird.
  • -r labex.rule: Gibt die benutzerdefinierte Regeldatei an, die auf die Wortliste angewendet werden soll.

Führen Sie den folgenden Befehl aus, um den Angriff zu starten:

hashcat --force -m 0 -a 0 hashes.txt wordlist.txt -r labex.rule

Hashcat startet, wendet die Regel c $2 $0 $2 $4 auf das Wort password an, generiert Password2024, hasht es und vergleicht es mit dem Hash in hashes.txt. Es wird eine Übereinstimmung finden und das geknackte Passwort melden.

Nach Abschluss des Angriffs (er sollte sehr schnell sein) können Sie die geknackten Passwörter mit der Option --show anzeigen.

hashcat --force -m 0 --show hashes.txt

Die Ausgabe zeigt den Hash gefolgt von seinem geknackten Klartext-Passwort an.

a915550249347678553a332349443648:Password2024

Herzlichen Glückwunsch, Sie haben erfolgreich eine benutzerdefinierte Regel erstellt und diese zum Knacken eines Passworts verwendet!

Zusammenfassung

In diesem Labor haben Sie die wesentlichen Fähigkeiten zur Erstellung benutzerdefinierter Regeln in Hashcat erlernt. Sie begannen mit dem Verständnis der grundlegenden Syntax für das Voranstellen (^) und Anhängen ($) von Zeichen. Anschließend erstellten Sie Ihre eigene Regeldatei, labex.rule, und füllten diese mit zunehmend komplexeren Regeln.

Sie haben erfolgreich eine Regel geschrieben, um den ersten Buchstaben eines Wortes großzuschreiben (c), und diese dann durch Verketten von Befehlen zum Anhängen eines Jahres ($2 $0 $2 $4) erweitert. Schließlich haben Sie diese benutzerdefinierte Regel in einem praktischen Angriffsszenario angewendet und erfolgreich einen MD5-Hash geknackt.

Dieses Wissen ist ein Sprungbrett, um die leistungsstarke Regel-Engine von Hashcat zu beherrschen und Ihnen die Erstellung hochgradig gezielter und effizienter Passwort-Cracking-Strategien zu ermöglichen.