Einfache Passwörter mit dem Wortlistenmodus knacken

Kali LinuxBeginner
Jetzt üben

Einleitung

In diesem Lab werden Sie eine grundlegende Technik der Cybersicherheit erkunden: das Knacken von Passwörtern. Sie werden John the Ripper (JtR) verwenden, ein beliebtes und leistungsstarkes Open-Source-Tool zur Überprüfung der Passwortsicherheit. Insbesondere lernen Sie, wie Sie einen "Wordlist"-Angriff durchführen, bei dem eine vordefinierte Liste potenzieller Passwörter verwendet wird, um das richtige Passwort gegen einen gespeicherten Passwort-Hash zu erraten.

Diese praktische Übung führt Sie durch die Erstellung eines Beispiel-Passwort-Hashes, das Beschaffen einer Wortliste, das Ausführen von John the Ripper zum Knacken des Passworts und schließlich das Anzeigen und Speichern der Ergebnisse. Das Verständnis dieses Prozesses ist sowohl für Systemadministratoren, die die Stärke der Passwörter ihrer Benutzer testen möchten, als auch für angehende Sicherheitsexperten von entscheidender Bedeutung.

Am Ende dieses Labs werden Sie in der Lage sein:

  • Eine Datei mit Passwort-Hashes zu erstellen.
  • Eine Wortliste mit John the Ripper zu verwenden.
  • Ein einfaches Passwort zu knacken und das Ergebnis anzuzeigen.

Erstellen einer Beispiel-Passwort-Hash-Datei

In diesem Schritt erstellen Sie einen Beispielbenutzer und extrahieren dessen Passwort-Hash in eine Datei. Passwort-Knackwerkzeuge arbeiten nicht mit Klartext-Passwörtern; sie arbeiten mit deren gehashten Darstellungen, die typischerweise in Systemdateien wie /etc/shadow unter Linux gespeichert sind.

Zuerst erstellen wir einen neuen Benutzer namens testuser mit einem einfachen Passwort, password123. Wir verwenden openssl, um den Hash für das Passwort zu generieren, und useradd, um den Benutzer zu erstellen.

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

sudo useradd -m -p $(openssl passwd -1 password123) testuser

Als Nächstes müssen wir die Zeile, die den Passwort-Hash für testuser enthält, aus der Datei /etc/shadow extrahieren. Wir verwenden den Befehl grep, um die Zeile zu finden, und leiten die Ausgabe in eine neue Datei namens hashes.txt in Ihrem aktuellen Verzeichnis (~/project) um.

sudo grep testuser /etc/shadow > ~/project/hashes.txt

Nun lassen Sie uns den Inhalt der Datei hashes.txt anzeigen, um zu bestätigen, dass sie den Hash des Benutzers enthält.

cat hashes.txt

Sie sollten eine Ausgabe ähnlich dieser sehen. Die lange Zeichenkette zwischen dem ersten und zweiten Doppelpunkt ist das gehashte Passwort.

testuser:$1$jE/Ipl8J$z4JgUjZfH.yN.CgCjWn.H.:19782:0:99999:7:::

Sie haben nun erfolgreich eine Zieldatei für unsere Passwort-Knack-Übung erstellt.

Herunterladen einer gängigen Wortliste

In diesem Schritt erstellen Sie eine Wortliste. Eine Wortliste ist einfach eine Textdatei, in der jede Zeile ein potenzielles Passwort enthält. John the Ripper liest diese Datei und versucht jedes Passwort gegen den Ziel-Hash. Anstatt eine große, bereits vorhandene Wortliste herunterzuladen, erstellen wir für dieses Lab unsere eigene kleine, benutzerdefinierte Liste. Dies ermöglicht uns, den Inhalt zu kontrollieren und sicherzustellen, dass das richtige Passwort für ein erfolgreiches Knacken enthalten ist.

Erstellen wir eine Datei namens wordlist.txt und fügen Sie einige gängige Passwörter hinzu, einschließlich desjenigen, das wir für testuser festgelegt haben.

Erstellen Sie zuerst die Datei und fügen Sie password123 hinzu:

echo "password123" > ~/project/wordlist.txt

Fügen wir nun einige weitere gängige Passwörter an dieselbe Datei an. Wir verwenden >> zum Anhängen, was zur Datei hinzufügt, ohne sie zu überschreiben.

echo "123456" >> ~/project/wordlist.txt
echo "qwerty" >> ~/project/wordlist.txt
echo "admin" >> ~/project/wordlist.txt

Überprüfen wir den Inhalt unserer neuen Wortliste.

cat wordlist.txt

Ihr Terminal sollte den folgenden Inhalt anzeigen:

password123
123456
qwerty
admin

Sie haben nun eine Wortliste, die mit John the Ripper verwendet werden kann.

John the Ripper im Wortlistenmodus ausführen

In diesem Schritt verwenden Sie John the Ripper, um den Passwort-Hash mithilfe der von Ihnen erstellten Wortliste zu knacken. Die Syntax für die Ausführung von JtR im Wortlistenmodus ist unkompliziert. Sie müssen die Wortlistendatei und die Datei mit den Hashes angeben.

Das Befehlsformat lautet john --wordlist=<pfad_zur_wortliste> <pfad_zur_hash_datei>.

Führen Sie nun den Befehl in Ihrem Terminal aus und weisen Sie JtR auf Ihre Dateien wordlist.txt und hashes.txt hin.

john --wordlist=wordlist.txt hashes.txt

John the Ripper beginnt mit der Verarbeitung. Er lädt den Hash und versucht dann jedes Passwort aus Ihrer Wortliste. Da unser Passwort in der Liste enthalten ist, wird der Vorgang sehr schnell ablaufen. Sie sehen eine Ausgabe ähnlich der folgenden:

Using default input encoding: UTF-8
Loaded 1 password hash (MD5-based crypt [MD5_body])
Cost 1 (algorithm [1:MD5 2:SHA256 3:SHA512] of 3) is 1 (MD5)
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (testuser)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s admin..password123
Session completed

Die Zeile password123 (testuser) zeigt an, dass JtR das Passwort erfolgreich geknackt hat. Es speichert dieses Ergebnis auch in einer Datei namens "pot file" (plain old text), die sich normalerweise unter ~/.john/john.pot befindet, damit es bekannte Passwörter nicht erneut knacken muss.

Geknackte Passwörter anzeigen

In diesem Schritt lernen Sie, wie Sie die von John the Ripper bereits geknackten Passwörter anzeigen. Sobald ein Passwort geknackt wurde, speichert JtR es in seiner Pot-Datei. Wenn Sie versuchen, denselben Knackbefehl erneut auszuführen, meldet JtR "No password hashes left to crack" (Keine Passwort-Hashes mehr zu knacken), da es das Passwort bereits gelöst hat.

Um die geknackten Passwörter für eine bestimmte Hash-Datei anzuzeigen, verwenden Sie die Option --show.

Führen Sie den folgenden Befehl aus, um das geknackte Passwort für hashes.txt anzuzeigen:

john --show hashes.txt

Der Befehl prüft die Pot-Datei und zeigt alle geknackten Passwörter an, die mit den Hashes in hashes.txt verknüpft sind. Die Ausgabe sieht wie folgt aus:

testuser:password123:19782:0:99999:7:::
1 password hash cracked, 0 left

Das Ausgabeformat ist username:password:other_shadow_file_fields. Dies bestätigt, dass das Passwort für testuser password123 lautet. Dieser Befehl ist sehr nützlich, um die Ergebnisse einer Knack-Sitzung schnell abzurufen, ohne die Pot-Datei manuell parsen zu müssen.

Geknackte Passwörter in eine Datei speichern

In diesem Schritt speichern Sie das geknackte Passwort in einer separaten Datei. Dies ist eine gängige Praxis beim Penetration Testing und bei der Sicherheitsprüfung für Berichtszwecke. Sie können dies einfach erreichen, indem Sie die Ausgabe des Befehls john --show in eine Datei umleiten.

Speichern wir die Ergebnisse in einer Datei namens cracked.txt.

john --show hashes.txt > cracked.txt

Dieser Befehl führt john --show hashes.txt wie zuvor aus, aber anstatt das Ergebnis auf dem Terminal auszugeben, leitet der Operator > die Ausgabe um und speichert sie in der Datei cracked.txt. Wenn die Datei nicht existiert, wird sie erstellt. Wenn sie existiert, wird sie überschrieben.

Um zu überprüfen, ob die Ausgabe korrekt gespeichert wurde, können Sie den Inhalt der neuen Datei mit dem Befehl cat anzeigen.

cat cracked.txt

Das Terminal zeigt den Inhalt der Datei an, der mit der Ausgabe identisch sein sollte, die Sie im vorherigen Schritt gesehen haben:

testuser:password123:19782:0:99999:7:::

1 password hash cracked, 0 left

Sie haben nun erfolgreich ein Passwort geknackt und das Ergebnis zur Dokumentation in eine Datei gespeichert.

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss dieses Labs! Sie haben erfolgreich einen grundlegenden Passwort-Knackangriff auf Basis einer Wortliste mit John the Ripper durchgeführt.

In diesem Lab haben Sie gelernt, wie Sie:

  • Eine Beispiel-Passwort-Hash-Datei aus dem System erstellen.
  • Eine benutzerdefinierte Wortliste mit potenziellen Passwörtern erstellen.
  • John the Ripper im Wortlistenmodus ausführen, um einen Passwort-Hash zu knacken.
  • Die Option --show verwenden, um bereits geknackte Passwörter anzuzeigen.
  • Die Befehlsausgabe umleiten, um Ihre Ergebnisse in einer Datei zu speichern.

Diese Übung zeigt, wie leicht einfache und gängige Passwörter kompromittiert werden können. Sie unterstreicht die kritische Bedeutung der Verwendung starker, komplexer und einzigartiger Passwörter zum Schutz von Systemen und Daten. Die erlernten Fähigkeiten sind ein grundlegender Bestandteil der Sicherheitsprüfung und des Penetration Testings.