Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

DPAPI Forensics

forensics

Définition

DPAPI (Data Protection API) est un système cryptographique Windows permettant aux applications de chiffrer des données sensibles (mots de passe, clés de chiffrement, certificats privés) sans avoir à gérer elles-mêmes les clés de chiffrement. Forensiquement, DPAPI est critique car de nombreuses applications Windows stockent leurs secrets via DPAPI : navigateurs web (mots de passe Chrome, Edge, passwords Firefox), clients de messagerie (Outlook), VPN clients, et AWS/Azure CLI tokens. DPAPI utilise une hiérarchie de clés à deux niveaux. Les MasterKeys sont des blobs chiffrés stockés dans C:\Users\[username]\AppData\Roaming\Microsoft\Protect\[SID]\ — ils protègent les clés réelles. Les MasterKeys sont chiffrés avec une dérivation du mot de passe de l'utilisateur (PBKDF2 avec SHA1), permettant leur déchiffrement si le mot de passe utilisateur est connu. Dans un domaine Active Directory, les MasterKeys peuvent aussi être chiffrés avec la clé du contrôleur de domaine (backup DPAPI domain key), permettant aux administrateurs de domaine de déchiffrer les secrets DPAPI de n'importe quel utilisateur du domaine. Les secrets chiffrés DPAPI (Credential files, Protected storage blobs, etc.) sont stockés dans plusieurs emplacements : C:\Users\[username]\AppData\Roaming\Microsoft\Credentials\ (Windows Credential Manager), C:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\Login Data (mots de passe Chrome, SQLite), et %APPDATA%\Mozilla\Firefox\Profiles\[profile]\logins.json (mots de passe Firefox, chiffrés avec une clé DPAPI). Pour l'extraction forensique des secrets DPAPI, Mimikatz (dpapi::masterkey, dpapi::cred, dpapi::chrome) est l'outil le plus connu. Impacket (dpapi.py) permet l'extraction offline si les MasterKeys et le mot de passe utilisateur (ou le hash NTLM) sont disponibles. SharpDPAPI (GhostPack) est une implémentation C# moderne. Ces outils peuvent révéler des mots de passe de navigateur, des credentials réseau, et d'autres secrets stockés par l'attaquant sur le système compromis.

Fonctionnement

CryptProtectData() chiffre avec AES-256 en utilisant une clé dérivée du MasterKey actif de l'utilisateur. Le DPAPI blob contient le GUID du MasterKey utilisé. Le MasterKey est chiffré avec PBKDF2(password_hash) + salt. Dans un domaine, une copie du MasterKey est chiffrée avec la clé RSA du domaine (backup key), stockée sur le DC (LSA Secret 'DPAPI_SYSTEM').

Application DFIR

Extraction DPAPI forensique offline : 1) Collecter les MasterKeys (AppData\Roaming\Microsoft\Protect\SID\), 2) Obtenir le hash NTLM de l'utilisateur (via SAM+SYSTEM), 3) Déchiffrer les MasterKeys : Impacket dpapi.py masterkey -file MasterKey -sid SID -password motdepasse, 4) Déchiffrer les secrets : Impacket dpapi.py credential -file credential_blob -key decrypted_masterkey, 5) Chromer passwords : dpapi.py chrome --loginData 'Login Data' -k masterkey_hex. Mimikatz live : dpapi::masterkey /in:MK /rpc (demande au DC la backup key).

Outils

Mimikatz (dpapi:: module : masterkey, cred, chrome, wifi), Impacket dpapi.py, SharpDPAPI (GhostPack, C# offline), DPAPIck (Python, offline). Collecte : KAPE target DPAPI (collecte automatique des blobs). Analyse Chrome passwords : BrowserPasswordDecryptor, ChromePass. Domain backup key : Impacket dpapi.py backupkeys --target DC_IP (si accès admin domaine).

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis