用BloodHound FOSS修復(fù)常見(jiàn)AD安全問(wèn)題
譯文提升AD安全性包括在允許黑客進(jìn)入的環(huán)境中修復(fù)安全漏洞-但防御者首先需要確定這些漏洞是什么,而AD 的內(nèi)置工具卻使查看何種用戶對(duì)何種系統(tǒng)和對(duì)象所獲得的權(quán)限并不容易。如此多的安全問(wèn)題,甚至其中一些非常危險(xiǎn),就這樣被忽視了。
幸運(yùn)的是,對(duì)防御者來(lái)說(shuō)一些常見(jiàn)的 AD 安全問(wèn)題一旦被識(shí)別出來(lái)就很容易修復(fù)。這些“唾手可得”的問(wèn)題使防御者能夠相對(duì)容易地降低其 AD 環(huán)境的暴露風(fēng)險(xiǎn)。以下是 AD 環(huán)境中三個(gè)最常見(jiàn)的安全問(wèn)題,包括它們的影響以及防御者如何找到和修復(fù)它們。
我將使用BloodHound來(lái)進(jìn)行演示,BloodHound 是一個(gè)免費(fèi)的開(kāi)源工具(我是共同開(kāi)發(fā)者之一),用于映射 Microsoft Active Directory 和 Azure Active Directory,但您可以使用其他工具執(zhí)行相同的步驟。
具有高級(jí)權(quán)限的 Kerberoastable 用戶
Kerberoast(一種網(wǎng)絡(luò)密碼驗(yàn)證授權(quán)系統(tǒng))攻擊由安全研究員 Tim Medin于2014年首次確認(rèn)。該攻擊從AD中提取服務(wù)帳戶證書的哈希值進(jìn)行離線破解,并且可以由任何用戶執(zhí)行而無(wú)需向目標(biāo)發(fā)送數(shù)據(jù)包。當(dāng)目標(biāo)環(huán)境中的高級(jí)權(quán)限用戶暴露出易受這種攻擊的漏洞時(shí),被破解的帳戶證書哈希值會(huì)給黑客提供一條奪取AD控制權(quán)的捷徑。我和我的同事在我們檢測(cè)的所有真實(shí)AD 環(huán)境中都發(fā)現(xiàn)了這個(gè)問(wèn)題。
擁有高級(jí)權(quán)限用戶在Kerberoasting上的漏洞會(huì)引發(fā)很大的安全風(fēng)險(xiǎn),但僅使用 AD 的內(nèi)置工具很難識(shí)別這些易受攻擊的高級(jí)權(quán)限用戶,這是因?yàn)?AD 無(wú)法憑經(jīng)驗(yàn)確定任何用戶的權(quán)限。AD 的界面不允許用戶“打開(kāi)”安全組的成員,并且組和組之間的嵌套使得跟蹤具有特定權(quán)限級(jí)別的個(gè)別用戶耗時(shí)又困難,也很容易出錯(cuò)并且造成遺漏。
在FOSS BloodHound中,這個(gè)過(guò)程要簡(jiǎn)單得多。使用FOSS BloodHound底部的“原始查詢”欄可以顯示最高風(fēng)險(xiǎn)的 kerberoastable 用戶。
MATCH p = shortestPath((u:User {hasspn:true})-[*1..]->(g:Group))
WHERE g.objectid ENDS WITH '-512'
RETURN p
LIMIT 100
這將返回一個(gè)可視界面,展示這些Kerberoastable的高級(jí)權(quán)限 用戶創(chuàng)建的攻擊路徑。此示例中的每個(gè)起始用戶節(jié)點(diǎn)(屏幕左側(cè)的綠色圖標(biāo))都是 Kerberoastable 用戶:
目標(biāo)組是靠右邊的黃色圖標(biāo)。如您所見(jiàn),針對(duì)敵對(duì)目標(biāo),該組有許多可能的攻擊路徑可以選擇。
為了關(guān)閉這些攻擊路徑,需要從Kerberoasting中保護(hù)每個(gè)易受攻擊的用戶(我建議從最接近Tier Zero資產(chǎn)的用戶開(kāi)始)。有兩種方法可以做到這一點(diǎn):
- 確保用戶具有非常復(fù)雜的密碼(64個(gè)隨機(jī)字符)。
- 從用戶中刪除 SPN,采用配置關(guān)聯(lián)服務(wù)為計(jì)算機(jī)帳戶進(jìn)行授權(quán)。
域控制器對(duì)象所有權(quán)
域控制器對(duì)象權(quán)限應(yīng)僅由域管理員擁有。但在大多數(shù)現(xiàn)實(shí)的 AD 環(huán)境中,它們并非如此。這個(gè)問(wèn)題非常普遍(我所審核的大約 75% 的環(huán)境中都發(fā)現(xiàn)到它),因?yàn)樗鼘?dǎo)致在AD 中創(chuàng)建對(duì)象的用戶擁有域控制器對(duì)象的所有權(quán)。這是一個(gè)高風(fēng)險(xiǎn)性的配置,因?yàn)閾碛杏蚩刂破鲗?duì)象的用戶可以對(duì)這些對(duì)象創(chuàng)建新的攻擊路徑,而傳統(tǒng)上的非域管理員帳戶并沒(méi)有得到很好的保護(hù)。
要確定這是否發(fā)生在網(wǎng)絡(luò)上,請(qǐng)使用FOSS BloodHound 底部的“原始查詢”欄查詢:
MATCH (g:Group)
WHERE g.objectid ENDS WITH '-516'
MATCH p = (n:Base)-[:Owns]->(c:Computer)-[:MemberOf*1..]->(g)
RETURN p
結(jié)果將是一個(gè)圖形,顯示在此 AD 環(huán)境中擁有域控制器計(jì)算機(jī)對(duì)象的各種主體。所有這些隨機(jī)主體都有通向它們的攻擊路徑,這意味著它們?cè)谟蚩刂破魈幗Y(jié)束。
要解決此問(wèn)題,請(qǐng)執(zhí)行以下步驟:
1.打開(kāi) Active Directory 用戶和計(jì)算機(jī)。
2.啟用高級(jí)功能。
3.找到每個(gè)域控制器對(duì)象。
4.右鍵單擊屬性-安全-高級(jí),然后更改。
5.將每個(gè) DC 的所有者更改為 Domain Admins 組。
整個(gè)過(guò)程不超過(guò)一個(gè)小時(shí),并且不太可能影響AD中的任何其他關(guān)系或權(quán)限。
域用戶、普通用戶和已授權(quán)的可控其他對(duì)象的用戶組
擁有任意權(quán)限的域用戶、普通用戶和授權(quán)用戶主體可作為攻擊路徑的入口。這些組其實(shí)并不需要權(quán)限 - 它更容易為黑客所利用。通常,管理員試圖通過(guò)授予一攬子特權(quán)來(lái)解決特定問(wèn)題,這是另一種危險(xiǎn)配置,但也易于補(bǔ)救。
首先,找到控制另一個(gè)主體的域用戶組的所有情況。FOSS BloodHound 可以通過(guò)兩種方式顯示這一點(diǎn)。
選項(xiàng)一:在 GUI 中查找組并單擊“Outbound Object Control”。
選項(xiàng)二:如果您正在運(yùn)行多個(gè) AD 域,則可以使用此命令啟動(dòng)所有實(shí)例:
MATCH p = (g:Group)-[{isacl:true}]->(m)
WHERE g.objectid ENDS WITH '-513'
RETURN p
解決此問(wèn)題與上一個(gè)問(wèn)題類似。在 Active Directory 用戶和計(jì)算機(jī)中找到受影響的對(duì)象,調(diào)出其安全描述符,并刪除“域用戶”組是身份引用的違規(guī) ACE。
識(shí)別和修復(fù)這三個(gè)問(wèn)題完全在大多數(shù) AD 或安全團(tuán)隊(duì)的能力范圍內(nèi),即使沒(méi)有后續(xù)工作,它們也會(huì)使 AD 環(huán)境更加安全。如果組織決定不關(guān)注 AD 安全,管理員可以(并且應(yīng)該)通過(guò)解決這三個(gè)問(wèn)題來(lái)發(fā)揮作用。
譯者介紹
劉濤,51CTO社區(qū)編輯,某大型央企系統(tǒng)上線檢測(cè)管控負(fù)責(zé)人,主要職責(zé)為嚴(yán)格審核系統(tǒng)上線驗(yàn)收所做的漏掃、滲透測(cè)試以及基線檢查等多項(xiàng)檢測(cè)工作,擁有多年網(wǎng)絡(luò)安全管理經(jīng)驗(yàn),多年P(guān)HP及Web開(kāi)發(fā)和防御經(jīng)驗(yàn),Linux使用及管理經(jīng)驗(yàn),擁有豐富的代碼審計(jì)、網(wǎng)絡(luò)安全測(cè)試和威脅挖掘經(jīng)驗(yàn)。精通Kali下SQL審計(jì)、SQLMAP自動(dòng)化探測(cè)、XSS審計(jì)、Metasploit審計(jì)、CSRF審計(jì)、webshell審計(jì)、maltego審計(jì)等技術(shù)。
原文標(biāo)題:Fixing Common AD Security Issues With BloodHound FOSS,作者:Andy Robbins