CVE-2023-32784 Exploit-Demonstration
Projektübersicht
Dieses Repository bietet eine Demonstration von CVE-2023-32784, einer kritischen Schwachstelle in KeePass-Versionen vor 2.54. Der Exploit ermöglicht die Wiederherstellung des Master-Passworts über Speicherabbilder und legt so gespeicherte Anmeldedaten offen. Diese Dokumentation enthält eine Schritt-für-Schritt-Anleitung zum Einrichten der Exploit-Umgebung, zum Ausführen des PoC-Tools und zum Verständnis der Abhilfestrategien.
Schwachstellendetails
Beschreibung
CVE-2023-32784 ist eine Speicherleck-Schwachstelle in KeePass-Versionen 2.0 bis 2.53, die auf eine unsachgemäße Handhabung von Zeichenfolgen innerhalb der Secure Textbox EX-Komponente von KeePass zurückzuführen ist. Jedes eingegebene Zeichen des Master-Passworts hinterlässt Spuren im Speicher, die es ermöglichen, es über Speicherabbilder wiederherzustellen.
Hauptmerkmale:
- Schweregrad: Hoch
- Ausnutzbarkeit: Physischer oder lokaler Zugriff auf Speicherabbilder erforderlich; keine Remotecodeausführung beteiligt.
- Auswirkungen: Die Extraktion des Master-Passworts (mit Ausnahme des ersten Zeichens) aus dem Speicher ermöglicht unbefugten Zugriff auf gespeicherte Anmeldedaten.
Exploit-Details
Werkzeuge und Techniken
Der Exploit nutzt das KeePass Master Password Dumper-Tool, das mittels Speichermustererkennung Zeichen aus Speicherabbildern extrahiert.
- Einschränkungen: Das erste Zeichen des Passworts wird nicht wiederhergestellt, aber dies ist kein wesentliches Hindernis, da der Rest des Passworts leicht rekonstruiert oder erraten werden kann.
- Bedrohungsmodell: Diese Schwachstelle verdeutlicht Risiken auf gemeinsam genutzten oder unbeaufsichtigten Systemen, bei denen Zugriff auf Speicherabbilder (z. B.
pagefile.sys oder hiberfil.sys) möglich ist.
Ausnutzungsplan
Voraussetzungen
Um diesen Exploit erfolgreich auszuführen, sind folgende Umgebung und Werkzeuge erforderlich:
- Virtualisierungssoftware: VMware oder ein gleichwertiges Tool zur Isolierung der Testumgebung.
- Windows 10 ISO: Das Betriebssystem für die anfällige KeePass-Installation.
- KeePass 2.x: Eine Version vor 2.54.
- .NET 7-Laufzeitumgebung: Erforderlich zum Ausführen des PoC-Tools.
- PoC-Tool: KeePass Password Dumper, verfügbar auf GitHub.
Schritte mit Begründungen
1. Einrichtung der Umgebung
- Warum eine VM?
Virtuelle Maschinen bieten eine sichere und kontrollierte Umgebung, um Schwachstellen zu testen, ohne Produktionssysteme zu gefährden.
- Schritte:
- Installieren Sie VMware und erstellen Sie eine neue VM-Instanz mit Windows 10.
- Installieren Sie KeePass 2.x (z. B. Version 2.53) und legen Sie ein Master-Passwort fest.
- Beispiel-Master-Passwort:
user.
2. Installieren der Abhängigkeiten
- Warum .NET 7?
Das PoC-Tool basiert auf dem .NET 7-Framework. Die Verwendung der korrekten Laufzeitumgebung gewährleistet Kompatibilität.
- Schritte:
- Laden Sie
.NET 7 von der offiziellen Microsoft-Website herunter und installieren Sie es.
- Bestätigen Sie die Installation mit:
3. Erstellung des Speicherabbilds
- Warum den KeePass-Prozessspeicher sichern?
Die Schwachstelle liegt in der Speicherverwaltung von KeePass. Das Erfassen eines Speicherabbilds ermöglicht die Analyse des Speicherfußabdrucks, in dem sich Passworts Spuren befinden.
- Schritte:
- Öffnen Sie KeePass und entsperren Sie die Datenbank mit dem Master-Passwort.
- Verwenden Sie den Task-Manager, um eine
.DMP-Datei für den KeePass-Prozess zu erstellen:
- Suchen Sie KeePass im Task-Manager.
- Klicken Sie mit der rechten Maustaste und wählen Sie Speicherabbilddatei erstellen.
- Notieren Sie den Speicherort der
.DMP-Datei (normalerweise im Verzeichnis %TEMP%).
- Warum das Speicherabbild in das PoC-Verzeichnis kopieren?
Das PoC-Tool verarbeitet Dump-Dateien in seinem Arbeitsverzeichnis. Dieser Schritt stellt sicher, dass die richtige Datei analysiert wird.
- Schritte:
- Verschieben Sie die
.DMP-Datei in den entpackten PoC-Ordner.
- Benennen Sie die Datei zur Konsistenz in
KeePass.DMP um.
- Öffnen Sie ein Terminal, navigieren Sie zum PoC-Verzeichnis und führen Sie das Tool aus:
cd Downloads/keepass-password-dumper-main
dotnet run KeePass.DMP
- Erwartetes Ergebnis:
Das Tool gibt die Passwortzeichen mit Ausnahme des ersten aus.
Beispiel-Befehlssequenz
cd Downloads/keepass-password-dumper-main
dir
dotnet run KeePass.DMP
Abhilfestrategien
Empfohlene Korrekturen
-
KeePass aktualisieren:
Das Upgrade auf KeePass 2.54 behebt die Schwachstelle durch die Einführung folgender Verbesserungen:
- Verbesserte Speicherverwaltung für sensible Daten.
- Zufällige Zeichenfolgeneinfügungen zur Verringerung der Vorhersagbarkeit im Speicher.
-
Speicherabbilder sichern:
- Löschen oder überschreiben Sie regelmäßig sensible Dateien wie
pagefile.sys und hiberfil.sys.
- Starten Sie Systeme regelmäßig neu, um sensible Daten aus dem Speicher zu entfernen.
-
Sichere Speicherverwaltung praktizieren:
Entwickler sollten bewährte Verfahren für den Umgang mit sensiblen Zeichenfolgen anwenden, wie z. B. die Verwendung veränderbarer Datenstrukturen oder das Löschen von Speicherpuffern nach der Verwendung.
Wichtige Hinweise
- Nur zu Demonstrationszwecken:
Dieser Exploit ist für Bildungszwecke in einer kontrollierten Umgebung bestimmt. Verwenden Sie diese Informationen nicht böswillig.
- Bewusstsein für die Auswirkungen:
Organisationen sollten die Auswirkungen dieser Schwachstelle auf gemeinsam genutzte oder Multi-User-Systeme bewerten und entsprechende Abhilfemaßnahmen umsetzen.
SEHEN SIE SICH MEIN YOUTUBE-VIDEO ZUR LIVE-AUSNUTZUNG DES CVE AN
https://youtu.be/o855F0RvI30?si=WXOtPu-jgtC31O-5
Referenzen
Autor
Bhargav Raj Dutta
Bachelor of Information Technology in Cyber Security and Digital Forensics (Murdoch University)
Bei Fragen oder Kooperationsanfragen können Sie mich gerne auf [LinkedIn www.linkedin.com/in/bhargav-raj-dutta-80251a1b4) kontaktieren.