Einleitung
KeePass ist ein beliebter Open-Source-Passwortmanager, der Ihnen hilft, Ihre Passwörter sicher zu verwalten. Er speichert Passwörter in einer verschlüsselten Datenbankdatei, typischerweise mit der Erweiterung .kdbx. Obwohl hochsicher, hängt die Stärke des Schutzes der Datenbank stark vom vom Benutzer gewählten Master-Passwort ab.
In diesem Lab schlüpfen Sie in die Rolle eines Sicherheitsanalysten, um die Stärke eines KeePass-Datenbankpassworts zu testen. Sie lernen den grundlegenden Prozess des Passwort-Crackings zu ethischen und Bildungszwecken kennen. Wir werden keepass2john, ein Tool aus der John the Ripper-Suite, verwenden, um den Passwort-Hash aus einer Beispiel-.kdbx-Datei zu extrahieren, und dann hashcat, ein leistungsstarkes Passwort-Wiederherstellungstool, verwenden, um ihn mittels eines Wörterbuchangriffs zu knacken.
Diese praktische Erfahrung wird demonstrieren, wie Angreifer schwache Passwörter ausnutzen können, und die Bedeutung der Verwendung starker, komplexer Master-Passwörter unterstreichen.
Erstellen einer Beispiel-KeePass-Datenbank mit einem einfachen Passwort
In diesem Schritt erstellen wir eine Ziel-KeePass-Datenbank. Um einen Passwort-Cracking-Test durchzuführen, benötigen wir zunächst eine .kdbx-Datei, mit der wir arbeiten können. Wir verwenden die KeePass-Anwendung, um eine neue Datenbank zu erstellen und sie zu Demonstrationszwecken mit einem einfachen, leicht zu erratenden Passwort zu schützen.
Starten Sie zuerst die KeePass-Anwendung, indem Sie ihren Namen im Terminal eingeben.
keepass2
Dadurch wird die grafische Benutzeroberfläche von KeePass geöffnet. Befolgen Sie nun diese Schritte, um die Datenbank zu erstellen:
- Klicken Sie im KeePass-Fenster im Menü auf
Datei->Neu.... - Ein Fenster "Neue Passwort-Datenbank erstellen" wird angezeigt. Klicken Sie auf
OK, um fortzufahren. - Sie werden aufgefordert, die neue Datenbankdatei zu speichern. Navigieren Sie zum Verzeichnis
/home/labex/project, benennen Sie die DateiMySecrets.kdbxund klicken Sie aufSpeichern. - Als Nächstes erscheint das Fenster "Master-Schlüssel erstellen". Hier legen Sie das Master-Passwort für die Datenbank fest. Geben Sie für dieses Lab
password123in das Feld "Master-Passwort" ein und wiederholen Sie es im Feld "Passwort wiederholen". Klicken Sie aufOK. - Das Fenster "Neue Passwort-Datenbank - Schritt 2" wird angezeigt. Sie können die Standardeinstellungen beibehalten. Klicken Sie auf
OK. - Ihre neue, leere Datenbank ist nun erstellt und geöffnet. Sie können optional einen Beispiel-Eintrag hinzufügen, dies ist jedoch für dieses Lab nicht erforderlich.
- Schließen Sie schließlich die KeePass-Anwendung, indem Sie auf
Datei->Beendenklicken.
Sie sollten nun eine Datei namens MySecrets.kdbx in Ihrem ~/project-Verzeichnis haben. Sie können deren Existenz mit dem Befehl ls überprüfen.
ls -l ~/project
In der Ausgabe sollte MySecrets.kdbx aufgeführt sein.
Verwenden von keepass2john zum Extrahieren des Hashs
In diesem Schritt extrahieren wir den Passwort-Hash aus der Datei MySecrets.kdbx. Passwort-Cracking-Tools wie hashcat arbeiten nicht direkt mit der Datenbankdatei selbst. Stattdessen arbeiten sie mit einem "Hash", der eine kryptografische Darstellung des Master-Passworts ist.
Wir werden keepass2john verwenden, ein Dienstprogramm, das in der John the Ripper-Suite für Passwort-Cracker enthalten ist, um die Schlüsselinformationen der KeePass-Datenbank in ein Format zu konvertieren, das hashcat verstehen kann.
Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus. Dieser Befehl liest die Datei MySecrets.kdbx und gibt den entsprechenden Hash aus, den wir in eine neue Datei namens keepass.hash umleiten und speichern.
keepass2john ~/project/MySecrets.kdbx > ~/project/keepass.hash
Dieser Befehl erzeugt keine sichtbare Ausgabe im Terminal, da die Ausgabe in die Datei keepass.hash umgeleitet wurde. Um den Inhalt der neu erstellten Hash-Datei anzuzeigen, verwenden Sie den Befehl cat:
cat ~/project/keepass.hash
Die Ausgabe ist eine einzelne lange Textzeile, die ungefähr so aussieht:
MySecrets:$keepass$*2*6000*0*b1b5b8a8a5b8a8a5b8a8a5b8a8a5b8a8*...*...
Diese Zeichenkette ist der Hash. Sie enthält alle notwendigen Informationen für hashcat, um zu versuchen, das Passwort zu knacken, einschließlich des Verschlüsselungsalgorithmus, des Salts und des verschlüsselten Master-Schlüssels.
Identifizieren des richtigen Hashcat-Modus für KeePass
In diesem Schritt ermitteln wir den richtigen Modus, den hashcat beim Knacken unseres KeePass-Hashs verwenden soll. hashcat ist ein äußerst vielseitiges Werkzeug, das Hunderte verschiedener Hash-Typen unterstützt, von Betriebssystem-Passwörtern bis hin zu anwendungsspezifischen Formaten.
Um korrekt zu arbeiten, müssen wir hashcat explizit mitteilen, welche Art von Hash wir bereitstellen. Dies geschieht durch Angabe eines numerischen Modus mit dem Flag -m. Um die Modusnummer für KeePass zu finden, können wir die Hilfe-Dokumentation von hashcat durchsuchen.
Führen Sie den folgenden Befehl in Ihrem Terminal aus. Er leitet die vollständige Hilfeausgabe von hashcat an grep weiter, das dann nach Zeilen filtert, die das Wort "keepass" enthalten.
hashcat --help | grep -i keepass
Das Flag -i in grep macht die Suche unempfindlich gegenüber Groß- und Kleinschreibung. Die Ausgabe zeigt Ihnen die relevanten Modi:
13400 | KeePass 1 (AES/Twofish) / KeePass 2 (AES) | Password Managers
Aus dieser Ausgabe können wir ersehen, dass der Modus für KeePass 1- und 2-Datenbanken 13400 ist. Dies ist die Nummer, die wir im letzten Schritt benötigen, um unseren Angriff zu starten.
Vorbereiten einer Wortliste für den Angriff
In diesem Schritt bereiten wir eine Wortliste für unseren Wörterbuchangriff vor. Ein Wörterbuchangriff (oder Wortlistenangriff) ist eine Methode, bei der das Cracking-Tool jedes Wort aus einer vorkompilierten Liste als potenzielles Passwort ausprobiert. Der Erfolg dieses Angriffs hängt vollständig davon ab, ob das richtige Passwort in der Liste enthalten ist.
In realen Szenarien verwenden Angreifer riesige Wortlisten, die Millionen oder sogar Milliarden gängiger Passwörter enthalten. Für dieses Labor erstellen wir eine sehr kleine, benutzerdefinierte Wortliste, um sicherzustellen, dass der Cracking-Prozess schnell und erfolgreich ist. Am wichtigsten ist, dass wir das richtige Passwort, password123, in unsere Liste aufnehmen.
Verwenden Sie den Texteditor nano, um eine neue Datei namens wordlist.txt zu erstellen.
nano ~/project/wordlist.txt
Sobald nano geöffnet ist, geben Sie die folgenden Passwörter in den Editor ein, jedes in einer neuen Zeile:
password
123456
password123
qwerty
labex
Nachdem Sie die Wörter eingegeben haben, speichern Sie die Datei und beenden Sie nano, indem Sie Strg+X drücken, dann Y zur Bestätigung und schließlich Enter.
Wir haben nun unsere Wortliste bereit für die Verwendung durch hashcat.
Angriff starten und Master-Passwort wiederherstellen
In diesem letzten Schritt bringen wir alles zusammen und starten den Passwort-Cracking-Angriff mit hashcat. Wir haben die Hash-Datei (keepass.hash), den korrekten Hash-Modus (13400) und unsere benutzerdefinierte Wortliste (wordlist.txt).
Führen Sie nun den folgenden Befehl in Ihrem Terminal aus, um den Angriff zu starten:
hashcat -m 13400 -a 0 ~/project/keepass.hash ~/project/wordlist.txt
Lassen Sie uns diesen Befehl aufschlüsseln:
hashcat: Das Programm, das wir ausführen.-m 13400: Gibt den Hash-Modus für KeePass 2 an, den wir in einem vorherigen Schritt identifiziert haben.-a 0: Gibt den Angriffsmodus an. Modus0ist ein "Straight"- oder Wörterbuchangriff.~/project/keepass.hash: Der Pfad zu unserer Datei, die den Ziel-Hash enthält.~/project/wordlist.txt: Der Pfad zu unserer Wortliste.
hashcat wird initialisiert und beginnt mit dem Testen der Passwörter aus Ihrer Wortliste. Da unsere Liste sehr kurz ist und das richtige Passwort enthält, wird der Prozess sehr schnell ablaufen. Sie sehen Statusaktualisierungen, und bald ist der Prozess abgeschlossen.
Nach Abschluss des Angriffs speichert hashcat die gefundenen Passwörter in einer Datei namens "potfile". Um das geknackte Passwort anzuzeigen, können Sie denselben Befehl erneut mit dem Flag --show ausführen.
hashcat -m 13400 -a 0 ~/project/keepass.hash ~/project/wordlist.txt --show
Dieser Befehl zeigt sofort den geknackten Hash und das entsprechende Passwort an:
MySecrets:$keepass$*2*6000*0*...:password123
Die Ausgabe zeigt deutlich den ursprünglichen Hash, gefolgt von einem Doppelpunkt und dem wiederhergestellten Passwort: password123. Herzlichen Glückwunsch, Sie haben das Passwort der KeePass-Datenbank erfolgreich geknackt!
Zusammenfassung
In diesem Labor haben Sie erfolgreich einen Wörterbuchangriff durchgeführt, um das Master-Passwort einer KeePass KDBX-Datenbank wiederherzustellen.
Sie haben einen vollständigen, praktischen Workflow für die Passwortprüfung kennengelernt, der Folgendes umfasste:
- Erstellen einer Beispiel-KeePass-Datenbank mit einem schwachen Passwort.
- Verwenden von
keepass2johnzum Extrahieren des Passwort-Hashes in ein für das Cracking geeignetes Format. - Identifizieren des korrekten Hash-Modus (
13400) inhashcatfür KeePass-Datenbanken. - Vorbereiten einer benutzerdefinierten Wortliste mit potenziellen Passwörtern.
- Starten des Angriffs mit
hashcatund erfolgreiche Wiederherstellung des Passworts.
Diese Übung unterstreicht ein kritisches Sicherheitsprinzip: Die Sicherheit einer gesamten Passwortdatenbank ist nur so stark wie ihr Master-Passwort. Die Verwendung einfacher, gängiger oder erratbarer Passwörter macht sie anfällig für Wörterbuchangriffe, selbst wenn sie durch starke Verschlüsselung geschützt sind. Verwenden Sie immer lange, komplexe und eindeutige Master-Passwörter für Ihre Passwortmanager.


