如何防止AD权限维持中的金票银票攻击?
摘要:本文通过 Google 翻译 Domain Persistence – Golden Ticket and Silver Ticket Attacks 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。 导航
本文通过 Google 翻译 Domain Persistence – Golden Ticket and Silver Ticket Attacks 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。
导航
0 前言
1 伪造黄金票据 – 本地 mimikatz.exe(GUI 环境)
1.1 收集所需信息
1.2 制作黄金票据
1.3 票据传递攻击
2 伪造白银票据 – 本地 mimikatz.exe(GUI 环境)
2.1 收集所需信息
2.2 制作白银票据
3 伪造和票据传递的其它方式 – 远程(非 GUI 环境)
3.1 伪造黄金票据 – Meterpreter Kiwi
3.1.1 制作黄金票据并发起票据传递攻击
3.2 伪造黄金票据 – ticketer.py
3.2.1 制作黄金票据并发起票据传递攻击
0、前言
在这篇文章中,我们将探讨如何伪造黄金/白银票据,以及如何发起金票/银票攻击。
首先,我们将在 DC 的 GUI 环境下使用 Mimikatz 伪造黄金票据和白银票据,并看看如何在票据传递攻击中使用这些票据进行横向移动并访问网络上的其它计算机;最后,我们再探索一些无需在 DC 的 GUI 环境中便可远程执行票据传递攻击的其它工具。
金票攻击和银票攻击的主要区别在于:白银票据仅限于访问目标特定服务,而黄金票据则可以访问域中的任何 Kerberos 服务。
1、伪造黄金票据 – 本地 mimikatz.exe(GUI 环境)
金票攻击发生在攻击者获得 krbtgt 账户(生成 TGT 票据的帐户)的 NTLM 哈希之后,此时他们可以伪造合法的 TGT 票据,而无需与 KDC 通信。这使得攻击者能够以任意用户身份访问域内资源,从而实现对整个域的完全控制。
而为了能获得 krbtgt 账户的哈希以执行金票攻击,我们需要获取域控制器的管理组用户的权限。一旦获得了域管理员的权限,我们就可以使用 mimikatz 提取 krbtgt 的 NTLM 哈希以及域的 SID 等信息。
1.1、收集所需信息
将 mimikatz.exe 传输到 DC 机器之后,启动它并运行 privilege::debug 命令来确认当前用户是否拥有能够获取敏感信息的高权限。
.\mimikatz.exe
privilege::debug
当看到 Privielge '20' OK 的提示时,则意味着我们拥有着正确的权限,然后就可以使用以下命令来提取伪造黄金票据所需的信息了:
lsadump::lsa /inject /name:krbtgt
krbtgt 账户是 KDC 服务的服务账户。该账户和密码是在创建域时被创建的,密码通常不会被更改。
一旦获得了所需的信息,我们就可以使用以下 5 条信息去伪造一个模拟域管理员帐户的 TGT 票据:
Username: Administrator
Domain: juggernaut.local
SID: S-1-5-21-2365897340-51848609-3160590671
NTLM hash: e6b43234ea2ce6d8bafa4b17c7b3790f
RID: 500
注:krbtgt 用户信息的提取可以通过 mimikatz 的命令行模式(非交互式)进行,即 mimikatz.exe "lsadump::lsa /inject /name:krbtgt" "exit"。
1.2、制作黄金票据
现在我们已经掌握了所需的信息,接下来就可以使用以下命令来伪造一个管理员级别的黄金票据:
注:为了能更清楚的呈现伪造票据带来的实际效果,以下实验建议在普通域主机上的普通域用户环境下进行。因为在域管理组账户的环境下,即便不伪造票据,它们仍旧可以去遍历网络上其它域主机上的目录以及通过 psexe 执行命令。
通过 mimikatz 获取 krbtgt 账户哈希的操作需要在 DC 上进行,但在获取到信息之后制作黄金票据,则可以在普通域主机上的普通域用户环境下进行。
Kerberos::golden /user:Administrator /domain:juggernaut.local /sid:S-1-5-21-2365897340-51848609-3160590671 /krbtgt:e6b43234ea2ce6d8bafa4b17c7b3790f /id:500 /ptt
/user 的参数可以是任何用户名,而不必是域中实际存在的用户。
/id 的参数对应的是赋予用户的 RID 值。
