Mimikatz 是一款功能强大的Windows 平台下资安评估及渗透测试工具,常用于评估系统的安全性,也常被不法人士用于恶意行为。以下将针对初学者简要介绍Mimikatz 的基本概念、使用情境、操作方法及注意事项。
1. 什么是Mimikatz
Mimikatz 由法国安全专家Benjamin Delpy 开发,最初用于研究Windows 系统的验证与凭证储存方式,随后因其可提取明文密码与金钥等功能而闻名。简单来说,Mimikatz 能协助资安人员和渗透测试人员: – 读取系统或网域内的使用者凭证(如明文密码、杂凑值、Kerberos 票证等) – 测试与验证Windows 中的相关安全性机制
2. 什么时候使用Mimikatz
在以下情况下,资安或渗透测试人员可能会考虑使用Mimikatz:
-
内部网路渗透测试:测试企业或组织网路中的权限提升与侧向移动风险。 -
验证系统安全性:检查Windows 系统是否能够取得明文凭证、测试安全性设定是否存在弱点。 -
事件调查与分析:用于调查可能发生的内部不当存取、凭证外泄事件,借此了解攻击者可能获取了哪些凭证。
3. 该如何使用(情境)
-
下载并安装:到官方GitHub或其他可信来源取得Mimikatz 执行档。 -
在管理员权限下执行:由于Mimikatz 会操作高权限的系统资源,务必在「以系统管理员身份执行」的命令提示字元(CMD)或PowerShell 中运行。 -
载入模组与执行命令:Mimikatz 内建许多模组与指令,执行对应的模组或指令来读取或转储(dump)凭证与票证。 -
分析输出结果:将取得的凭证或资讯进行分析,并评估可能的风险与弱点。
4. 使用的时候需要注意什么
-
合法性与合约范围:使用Mimikatz 进行渗透测试或系统检测时,需确保已取得合法授权与合约范围内的测试许可。 -
权限管控:避免在生产环境或未经授权的系统上执行,并且确保完成检测后及时撤销或清除相关的权限和工具。 -
工具防侦测:许多防毒软体和EDR (Endpoint Detection & Response) 会标记Mimikatz 为威胁程式,执行前需了解可能被阻挡或产生警报。 -
安全管理:Mimikatz 取得的凭证或密码极度敏感,请注意保存与销毁方式,避免二度泄漏。
基本使用
在已提权的命令提示字元或PowerShell 下,直接执行:
mimikatz.exe
Plaintext
Copy
进入Mimikatz 互动介面后,即可输入各类指令。
常见指令序列
privilege::debug # 提升權限sekurlsa::logonpasswords # 讀取登入憑證
Plaintext
Copy
-
privilege::debug:尝试让目前执行的Mimikatz 进程取得Debug 权限,以便可以读取或操作系统的相关资讯。 -
sekurlsa::logonpasswords:显示目前系统中使用者的登入资讯及其明文/杂凑凭证。
其他常用功能
sekurlsa::tickets # 列出 Kerberos 票證lsadump::sam # 導出 SAM (Security Account Manager) 資料庫lsadump::cache # 顯示緩存的憑證 (Credential Caching)
Plaintext
Copy
-
sekurlsa::tickets:可列出目前记忆体中可用的Kerberos 票证,供进一步分析或横向移动。 -
lsadump::sam:将本机SAM 资料库导出,以分析或测试弱密码情况。 -
lsadump::cache:显示系统中暂存的使用者凭证资讯,用于检查Credential Caching 的风险。
小结
Mimikatz 是一把「双面刃」,在资安领域与恶意攻击之间存在着微妙的平衡。透过正确且合规的使用,资安人员可以深度检测系统中的安全弱点,并加以防范。然而,也必须谨慎管控Mimikatz 取得的关键资讯,避免在检测过程或之后造成额外的资安风险。建议初学者在实际操作前,先充分了解原理并于合法授权与测试环境中进行练习。
继续深入:Mimikatz 进阶观念与防范
在前面部分,我们针对初学者介绍了Mimikatz 的基本使用方法与常见指令。以下内容将再进一步补充进阶的使用情境与常见防范建议,协助读者更全面地理解Mimikatz 在资安领域的应用与风险。
进阶使用情境
1. Pass-the-Hash (PtH)
-
原理:利用抓取Windows 使用者杂凑(NTLM Hash),并以此直接进行身份验证,而无需明文密码。 -
使用方式:在Mimikatz 中读取NTLM Hash 后,可使用 sekurlsa::pth
指令注入该杂凑,并模拟该使用者登入其他系统或服务。 -
应用场景:若目标系统启用了单一登入或互信机制,攻击者只需取得一组有效的NTLM 杂凑,即可横向移动到更多系统。
2. Pass-the-Ticket (PtT)
-
原理:针对Kerberos 验证机制,攻击者可直接使用取得的Ticket(例如TGT/TGS)进行伺服器存取。 -
使用方式:在 sekurlsa::tickets
中提取Kerberos 票证后,透过kerberos::ptt
指令来注入该票证。 -
应用场景:在Active Directory 环境中,若能取得Domain Admin 的Kerberos 票证,就能迅速存取整个网域资源。
3. Golden Ticket / Silver Ticket
-
Golden Ticket:指的是利用Domain Key (KRBTGT 帐号的杂凑) 生成的有效TGT。取得Golden Ticket 后,几乎可以在整个网域内拥有无限制的存取权。 -
Silver Ticket:攻击者仅需取得某服务帐号的杂凑(如服务主体名称SPN),即可在该服务中伪造TGS,而不需要Domain Key。
防范与检测建议
虽然Mimikatz 功能强大,但企业与组织仍可透过加强系统设定与监控手段,来降低遭受此类工具攻击的风险。
1. 强化帐号管理与密码策略
-
采用复杂密码:设定最少长度与复杂度,减少弱密码被破解或暴力猜测的机会。 -
定期更新密码:包含本机系统管理员帐号与网域管理员帐号,避免长期不变的密码被长期利用。 -
分权管理:减少Domain Admin 帐号的使用频率,仅在需要的情境下以高权限操作。
2. 最小化高权限存取
-
最小权限原则:确保使用者只拥有其工作内容所需的最低权限,避免攻击者取得一般使用者权限后仍能轻易横向移动。 -
隔离重要服务:将关键系统(如Domain Controller)与一般工作站分离,使用网段隔离与防火墙规则进行保护。
3. 加强Event Log 与监控
-
启用并收集Windows 事件记录:如「Security」记录中有关登录、登入失败、权限变更等事件。 -
行为基线检测:利用SIEM (Security Information and Event Management) 或EDR (Endpoint Detection & Response) 追踪异常行为(如短时间内大量的认证失败)。 -
及时回应警示:若发现可疑程序尝试存取LSASS(Local Security Authority Subsystem Service)或注入高权限,应立即追查原因。
4. 降低Credential 存留风险
-
禁用WDigest 明文储存:在新版本Windows 中已预设停用,可确保明文密码不轻易被抓取。 -
LSA Protection:启用LSA Protection,使部分敏感程序在受保护模式执行,让Mimikatz 无法直接读取记忆体资讯。 -
定期检查域控上的KRBTGT:定期更新KRBTGT 帐号密码,以防止攻击者长期利用Golden Ticket。
Mimikatz 的常见误解
-
只要部署防毒就能防堵Mimikatz:防毒与EDR 虽能发现并阻挡大部分已知的Mimikatz 执行档,但仍可能被修改版或记忆体层级的攻击手法绕过。 -
Mimikatz 只用于恶意行为:实际上,Mimikatz 在合法且合规的渗透测试与资安评估中扮演重要角色,也是一种验证企业/组织防御能力的重要工具。
建议的练习方法
若你是资安领域的初学者,建议在合法且受控的「实验室环境」中进行Mimikatz 操作练习:
-
虚拟机器环境:使用VirtualBox 或VMware 模拟多台Windows 主机,包含一台模拟Domain Controller 与几台工作站。 -
设定不同层级的帐号:从一般使用者、Power User 到Domain Admin,模拟真实企业网路的权限配置。 -
实际使用常见指令:尝试 sekurlsa::logonpasswords
、lsadump::sam
、sekurlsa::tickets
等,观察系统回传的资讯。 -
评估防御成效:搭配防毒软体或EDR,记录是否能侦测或阻挡Mimikatz,了解安全产品的覆盖程度与限制。
结语
Mimikatz 是资安领域里不可或缺的渗透测试与研究工具,藉由深入了解并掌握其原理及运作方式,不仅能帮助我们在合法授权的情境下挖掘更多安全漏洞,也能促使我们更加谨慎地部署与管理Windows 环境。面对可能的高阶攻击手法,落实帐号管理、权限控管及事件日志分析,才能持续维护企业与组织的资讯安全。
原文始发于微信公众号(柯基的安全笔记):Mimikatz 初学者指南:Windows 资安评估与渗透测试入门
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论