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