
Déposez n'importe quel artefact Windows DPAPI et il identifie le format ainsi que la clé principale exacte nécessaire, puis déchiffre une fois que vous fournissez la clé. Hors ligne, CLI + interface web.
Une boîte à outils hors ligne pour les preuves Windows DPAPI. Vous collectez les fichiers, vous pointez l'outil vers un artefact, et il reconnaît le format et vous indique exactement quelle clé principale il lui faut ; vous fournissez le matériel de clé et il déchiffre.
La plupart des outils DPAPI se présentent sous la forme d'un script par format, ou d'une fonctionnalité enfouie dans un framework offensif plus vaste. Celui-ci est un outil unique couvrant toute la gamme — clés principales, blobs DPAPI, Credential Manager, Vault, CREDHIST, Wi-Fi, RDP/RDCMan, clés et certificats CAPI/CNG, SecureStrings PowerShell, KeePass, SCCM, clés os_crypt de Chromium, et (avec un plugin optionnel) DPAPI-NG — piloté à partir des seuls fichiers collectés, avec une interface en ligne de commande et une interface web locale par glisser-déposer reposant sur le même cœur.
Il est conçu pour le red team et les tests d'intrusion, le DFIR et la recherche en sécurité. Aucun accès à un hôte actif, un contrôleur de domaine, un réseau, BKRP ou LSASS n'est utilisé, et il ne force pas les mots de passe ni les codes PIN par force brute : vous fournissez explicitement les artefacts collectés et le matériel de clé.
N'utilisez cet outil que contre des systèmes et des preuves que vous possédez ou que vous êtes explicitement autorisé à examiner.

Vous avez collecté hors ligne le dossier Protect d'un utilisateur et un fichier Credential Manager, et vous connaissez le mot de passe du compte. Inspectez d'abord l'identifiant — aucune clé n'est nécessaire :
python3 dpapi_toolkit.py CREDENTIAL_FILE
Il affiche le blob DPAPI intégré et le GUID de clé principale qu'il requiert. Pointez-le vers le répertoire Protect et laissez-le faire correspondre et déverrouiller cette clé principale, puis déchiffrez :
python3 dpapi_toolkit.py CREDENTIAL_FILE --type credential \
--masterkey-dir Protect-S-1-5-21-... \
--sid S-1-5-21-... \
--password 'password'
Le résultat est du JSON avec la cible, le nom d'utilisateur et l'identifiant récupéré. Le même flux inspection-puis-déchiffrement s'applique à tous les formats pris en charge.
Python 3.10 ou plus récent. La seule dépendance obligatoire est
cryptography :
python3 -m pip install cryptography
Des dépendances optionnelles activent des fonctionnalités spécifiques :
python3 -m pip install python-registry # read Outlook data from NTUSER.DAT
python3 -m pip install dpapi-ng # offline DPAPI-NG plugin
python3 -m pip install impacket # offline SYSTEM/SECURITY/SAM hive plugin
Aucun hôte Windows actif, contrôleur de domaine, connexion réseau ou accès LSASS n'est requis. Les secrets de registre et les clés principales doivent déjà avoir été collectés.
ConvertFrom-SecureString / Export-Clixml..vpol/.vcrd) et l'historique de mots de passe CREDHIST..rdp et RDCMan .rdg/.settings.ProtectedUserKey.bin, secrets de stratégie SCCM, Outlook IMAP, clés Windows Hello / NGC à support logiciel, et clés os_crypt de Chromium.$DPAPImk$ (Hashcat 15300/15310/15900/15910), $MSONLINEACCOUNT$ CacheData (mode 33700), et hash NT SAM locaux. Voir docs/hashes.md.La méthode de déverrouillage dépend de ce que vous possédez déjà. Ce tableau la fait correspondre à l'option CLI ; les mêmes choix apparaissent dans l'interface web sous 2. Unlock key.
| Ce que vous avez | Taille / forme | Option |
|---|---|---|
| Clé principale Windows chiffrée | fichier nommé par GUID sous Protect | --masterkey FILE plus une méthode de déverrouillage |
| Clé principale déchiffrée | 64 octets | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| Mappage SHA1 d'une clé principale déchiffrée | 20 octets | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| Secret DPAPI_SYSTEM | MachineKey || UserKey de 40 octets, une clé de 20 octets, ou 44 octets avec version | --dpapi-system FILE_OR_HEX_OR_TEXT |
| Prekey utilisateur finale liée au SID | 20 octets | --prekey FILE_OR_HEX |
| Hash NT | 16 octets | --nt-hash FILE_OR_HEX --sid SID |
| Hash SHA1 local du mot de passe | SHA1(password as UTF-16LE) de 20 octets | --sha1-hash FILE_OR_HEX --sid SID |
| Credential key non liée | 16–128 octets | --credkey FILE_OR_HEX --sid SID |
| Matériel de sauvegarde AD DPAPI | PEM, DER, PVK, CAPI PRIVATEKEYBLOB, ou clé ServerWrap de 256 octets | --domain-backup-key VALUE ou --pvk VALUE |
La valeur DPAPI_SYSTEM de 40/44 octets n'est pas une clé principale déchiffrée. Utilisez-la pour déchiffrer une clé principale SYSTEM nommée par GUID, puis utilisez la clé principale de 64 octets obtenue pour déchiffrer l'artefact.
L'interface web est une fine couche au-dessus du même cœur hors ligne, ses résultats correspondent donc exactement à ceux de la ligne de commande :
python3 dpapi_web.py # http://127.0.0.1:8765/
Elle se lie uniquement à 127.0.0.1, n'a aucune option de liaison LAN/publique, conserve les résultats déchiffrés dans une mémoire bornée pour un unique téléchargement à usage unique, et n'écrit jamais de sortie déchiffrée persistante. Voir docs/web-ui.md pour le flux de travail complet, les flux par format et la posture de sécurité.
| Guide | Contenu |
|---|---|
| docs/cli-reference.md | Inspection, déverrouillage de clé principale, options de sortie, entropie, export Hashcat, mode batch, emplacements de collecte par défaut, dépannage. |
| docs/artifacts.md | Exemples de commandes par format pour chaque artefact pris en charge. |
| docs/web-ui.md | L'interface web locale : flux de travail complet, flux d'artefacts principaux, récupération en chaîne et son modèle de sécurité. |
| docs/plugins.md | Plugins hors ligne amovibles (Certificate/PFX, CacheData, ruches Windows, DPAPI-NG) et le guide pas à pas DPAPI-NG. |
| docs/hashes.md | Obtenir des hash crackables pour la récupération de mot de passe hors ligne — $DPAPImk$, $MSONLINEACCOUNT$ et hash NT SAM, avec les commandes Hashcat. |