黄金票据
黄金票据
回顾一下 Kerberos 的认证流程,当用户申请 TGT 的时候,DC使用 krbtgt 的 NTLM 哈希加密了 TGT。当然了,krbtgt 的 NTLM 哈希仅对 DC所知。正因为如此,如果我们得到了 krbtgt 的密码哈希,那么我们可以用来任意地创建 TGT 票据。我们会在下文也提到白银票据,相比伪造一个 TGS,伪造 TGT 的优势在于可以以模仿的用户访问域内任何主机任何资源。
至于如何获得 krbtgt 的哈希,制作黄金票据往往发生在我们已经拿下了整个域,因此可以是通过 DCSync 获取 krbtgt 的哈希,可以是使用 mimikatz 在域控制器上从 lsass.exe 进程中提取,也可以是从 NTDS.dit 文件中提取。
有了 krbtgt 的哈希后,我们怎么制作黄金票据呢?我们需要这些参数
模仿的用户
域FQDN
krbtgt 的 aes256 密钥
域 SID
最终,可以通过 mimikatz的命令 kerberos::golden /user:Administrator /domain:<域FQDN> /aes256:<krbtgt aes256密钥> /sid:<SID> /ticket:<保存文件名> 制作
制作之后,可以使用 rubeus 或者 mimikatz 的 PTT 功能导入该票据。
KB5008380 补丁
白银票据
而伪造的 TGS 则是使用了特定主机的 AES256 密钥或者 NTLM 签名所伪造的白银票据,有了白银票据,我们可以模仿任何用户访问该主机上的任何服务,对于中短期的持久化具有帮助。虽然白银票据支持 AES256 密钥以及 NTLM 哈希,但是依旧更建议使用 AES256 密钥,原因在 Overpass The Hash 篇说过。我们依旧可以使用 mimikatz 来制作白银票据。我们需要这些参数
模仿的用户
域FQDN
主机
目标服务
主机帐号的 的 aes256 密钥 (例如srv01$)
域 SID
最终,通过命令 kerberos::golden /user:Administrator /domain:<域FQDN> /target:<主机> /service:<服务名> /aes256:<主机帐号 aes256密钥> /sid:<SID> /ticket:<保存文件名>
制作之后,依旧可以通过 Rubeus 或者 mimikatz 导入票据。