當前位置:
首頁 > 新聞 > 域信任機制的攻擊技術指南Part.3

域信任機制的攻擊技術指南Part.3

信任類型

· DOWNLEVEL (0x00000001) - 沒有運行Active Directory的可信Windows域。在PowerView中,對於那些不熟悉專業術語的用戶來說,會以WINDOWS_NON_ACTIVE_DIRECTORY 形式作為輸出。

· UPLEVEL (0x00000002) - 運行Active Directory的可信Windows域。在PowerView中,對於那些不熟悉專業術語的用戶,這將作為WINDOWS_ACTIVE_DIRECTORY 作為輸出。

· MIT (0x00000003) - 運行非Windows(* nix),兼容RFC4120的Kerberos發行版的受信任域。由於麻省理工學院發布了RFC4120,所以這也被稱為MIT。

信任屬性

· NON_TRANSITIVE (0x00000001) - 信任不能被傳遞使用。也就是說,如果DomainA信任DomainB並且DomainB信任DomainC,則DomainA不會自動信任DomainC。另外,如果信任是非傳遞性的,那麼你將無法從非傳遞性的點上查詢信任鏈中的任何一個Active Directory的信息。外部信任隱含了信任的不可傳遞性。

· UPLEVEL_ONLY (0x00000002) - 只有Windows 2000操作系統和較新的客戶端才能使用該信任。

· FOREST_TRANSITIVE (0x00000008) - 至少運行了域功能級別為2003或更高的兩個域林的根之間的跨林信任。

· CROSS_ORGANIZATION (0x00000010) -對於不是企業或組織的一部分的域或林的信任,其添加了OTHER_ORGANIZATION SID標誌。這是一個比較奇怪的屬性。我不記得我遇到過這個標誌,但是根據 這篇文章 這意味著啟用了選擇性認證安全保護。有關更多信息,請查看 此MSDN文檔。

· WITHIN_FOREST (0x00000020) - 受信任的域是在同一個林中,這意味著這是一個父->子或交叉鏈接的信任關係

· TREAT_AS_EXTERNAL (0x00000040) - 被視為外部信任這是信任邊界的目的。根據 這個文檔 的說法,「 如果設置了這個位,那麼對於域的跨林信任將被視為用於SID過濾目的的外部信任。跨林信任比外部信任會更加嚴格地過濾。這種屬性放鬆了這些跨林信任,相當於外部信任。「這聽起來很誘人,而且我也不是100%肯定這個陳述所說明的安全含義,但是如果有任何新的發現,我會及時更新本文的內容。

· CROSS_ORGANIZATION_NO_TGT_DELEGATION (0x00000200 ) - 「 如果這個位被設置,在這個信任下授予的票證不能被委託信任。」這在 [MS-KILE] 3.3.5.7.5(跨域信任和推薦)中有更多的描述。

· PIM_TRUST (0x00000400) - 「 如果設置了此位和TATE(視為外部標誌位)位,則跨域信任到域將被視為特權身份管理信任,用於SID過濾。」根據[MS-PAC] 4.1.2.2(SID過濾和聲明轉換),「域可以由林之外的域進行外部管理。信任域允許其本地的SID通過PrivilegedIdentityManagement信任。」我沒有深入研究這個領域,只有域功能級為2012R2及以上才支持,它還需要進一步的研究:)

所有這些方法也可以針對當前信任你的域執行。這意味著,如果你當前的域與外部域具有雙向信任關係,或者信任是單向和入站的(即所述的域信任你,因此你擁有某種訪問許可權),則可以針對所述域執行這些方法來為那個域查找信任。如果你想用PowerView來做到這一點,只需提供-Domain 參數,下一節將詳細介紹這塊的內容。

使用PowerView進行信任數據枚舉

去年我寫了一篇文章描述了我 對PowerView的重寫。提到的其中一個變化是,現在,任何Get-Domain * 函數都使用LDAP枚舉,這意味著我們可以從信任我們的域中獲取所述信息。這是通過-Domain 參數完成的:

那麼實際上究竟發生了什麼?

很長一段時間以來,我認為這將通過當前域中的域控制器和信任域中的域控制器「反射」LDAP查詢。這將是一個很好的方式來解決網路邊界,但可惜我錯了。實際發生的事情是,當前正在與之通信的域控制器將返回一個引用,這會指示你的搜索方法綁定到外部域(即該域的主域控制器/ PDC)。如果與外域有信任關係,則將返回跨域TGT,以便在與外域進行通信時使用。

這意味著如果你正在查詢的計算機與信任域的PDC之間存在網路分段,則將無法檢索到任何結果> _

映射域信任

我知道有幾種方法可以映射環境中存在的一個或多個信任關係的「網格」。首先是通過全局目錄。我在我之前寫的文章 「 滲透測試人員指南之組作用域」的文章里提到過這一點,但我會在這裡重申的一些信息。

在 全局編錄的所有對象的部分副本中的Active Directory林中,一些對象屬性(但不是全部)都包含在其中。這些數據將在所有標記為林的全局編錄的域控制器中複製一份。受信任的域對象被複制到全局目錄中,因此我們可以枚舉每一個內部和外部的信任,我們當前林中的所有域運行都非常快速,通過運行PowerView中的Get-DomainTrust -SearchBase「GC://$($ENV:USERDNSDOMAIN)」 則只有我們當前的PDC會有流量產生。下面是從sub.dev.testlab.local 域運行該函數的方式:

這比Get-DomainTrust得到了更多的結果 !

第二種方法較慢,但會提供更多的結果。由於我們可以枚舉當前域上下文所具有的任何信任關係,並且通過LDAP的引用方式,我們可以從當前信任我們域的域中查詢任何(objectClass = trustedDomain)對象,然後我們可以繼續發出這些查詢請求來獲得任何結果,「抓取」任何可到達的域。任何標記為非傳遞的域可能會混淆這些結果,但是我們仍然可以獲得很多結果。

PowerView中實現這個功能的函數是Get-DomainTrustMapping (以前是Invoke-MapDomainTrust)。這些結果可以通過管道符將Get-DomainTrustMapping 的結果輸出到| Export-CSV-NoTypeInformation trusts.csv 來將最終的結果保存到一個CSV文件中。

可視化域信任

數據是一回事,可視化是另一回事。幾年前,我的一個同事Justin Warner看到了所有這些原始數據,並構建了一個名為 DomainTrustExplorer的工具,可以使用PowerView的映射信任數據執行一些節點的分析和可視化。

由於默認的信任輸出已經改變,並且BloodHound負責為我們節點分析,所以我將Justin的項目重寫為一個簡化的表單,它將採用更新後的信任.CSVs, TrustVisualizer:

得到的graphml可以使用yEd進行可視化,描述文檔在這裡。這就是我如何創建本文之前提到的那個示例的信任體系結構的可視化的:

對於這個新產出的結果,綠色邊緣意味著「在林內」,紅色意味著外部,藍色意味著林間的信任關係。與@sixdub的 DomainTrustExplorer一樣,單向信任的邊緣方向意味著訪問的方向,而不是信任的方向。

當使用SharpHound收集信任數據,使用BloodHound進行可視化時,同樣使用上面的數據會得到下面的結果:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

開放共享 攜手共治

TAG:嘶吼RoarTalk |