當前位置:
首頁 > 新聞 > 結合NTLM中繼和Kerberos委派實現域成員機器的提權

結合NTLM中繼和Kerberos委派實現域成員機器的提權

在上個月發表文章中,我們詳細介紹了無約束委派方面的安全問題;在本文中,我們將討論另一種類型的Kerberos委派:基於資源的約束委派。需要說明的是,本文的內容以Elad Shamir發表的關於Kerberos的相關研究為基礎,並結合了我們自己的NTLM研究,提出了一種新型的攻擊技術:如果我們與攻擊對象位於同一網段中,無需任何憑據,就可以在活動目錄中的任意Windows計算機上以SYSTEM許可權執行代碼。實際上,這只是濫用活動目錄不安全的默認配置的另一個示例,並沒有利用任何新型的漏洞。

攻擊過程概述

如果攻擊者位於本地網路中,無論是物理上還是通過受感染的工作站連接至本地網路,只要網路中尚未使用IPv6協議,他們就可以利用mitm6接管DNS系統。執行該攻擊時,還可以通過偽造WPAD位置並請求身份驗證來使用惡意代理,這樣,攻擊者就可以通過HTTP完成計算機帳戶和用戶的身份驗證了。關於這種攻擊手法,去年我曾在一篇文章中給出了詳細的介紹。

我們可以藉助於ntlmrelayx將相關的NTLM身份驗證數據中繼到LDAP(除非應用了相應的防禦措施),並以受攻擊的計算機帳戶的身份進行相關的身份驗證。對於該計算機帳戶來說,我們可以通過LDAP修改其中的某些屬性,其中包括 msDS-AllowedToActOnBehalfOfOtherIdentity屬性。該屬性用於控制哪些用戶可以通過Kerberos模擬來獲取活動目錄中的任意帳戶的身份。這個概念稱為基於資源的約束委託,Elad Shamir和Harmj0y對此專門進行了詳細的描述。因此,在中繼計算機帳戶時,可以使其變身為活動目錄中的帳戶,並授予自己模擬該計算機上的用戶的許可權。然後,我們就能夠以具有高許可權的用戶的身份連接到相關的計算機,並執行代碼、轉儲哈希值,等等。這種攻擊的優點是,它能在默認配置下進行,並且不需要任何活動目錄相關的憑據。

沒有憑據,就不會出現這類安全問題

對於已經讀過Elad的博客的讀者來說,很可能已經注意到,為了發動S4U2Proxy攻擊,需要先控制相應的計算機帳戶(或任何其他具有Service Principal Name的帳戶)。默認情況下,活動目錄中的任何用戶最多可以創建10個計算機帳戶。有趣的是,這一限制對用戶帳戶無效,而且可以通過現有的計算機帳戶來完成! 如果可以讓任何用戶或計算機通過NTLM中繼,則可以使用ntlmrelayx來創建計算機帳戶:

在這裡,我們需要通過TLS中繼到LDAP,因為系統禁止通過未加密的連接來創建帳戶。這些計算機帳戶憑證可用於完成活動目錄中的各項事務,例如查詢域信息甚至運行BloodHound:

中繼和配置委派

下面,讓我們進入攻擊階段。首先,我們需要啟動mitm6來接管目標系統上的DNS服務,就這裡來說,目標就是ICORP-W10(一個已打全補丁的默認Windows 10系統),同時,我們的攻擊將僅限於該主機:

sudo mitm6 -hw icorp-w10 -d internal.corp --ignore-nofqnd

需要注意的是,該主機通過DHCPv6請求IPv6地址,或者開始請求WPAD配置的時候,通常需要花費一點時間。所以,對於我們來說,最好的攻擊時機是受害者重新啟動或重新插入網路電纜的時候,因此,清晨可能是執行該攻擊的最佳時間。無論如何,您都必須要有耐心。然後,我們還需要藉助--delegate-access參數來啟動ntlmrelayx,以發動這種委派攻擊,同時,還需使用-wh attacker-wpad參數,以發動WPAD欺騙,進而發送身份驗證請求:

ntlmrelayx.py -t ldaps://icorp-dc.internal.corp -wh attacker-wpad --delegate-access

稍後,通過運行mitm6就會看到,受害者將作為我們為WPAD主機設置的DNS伺服器上線:

我們看到,ntlmrelayx會接收連接,創建一個新的計算機帳戶,並授予它針對受害計算機的委派許可權:

接下來,我們可以使用來自impacket的getST.py腳本,完成所有S4U2Self和S4U2Proxy方面的相關操作。您需要從這裡獲得最新版本的impacket,以支持基於資源的委派。在這個示例中,我們將模擬用戶admin,該用戶是Domain Admins組的成員,因此,在ICORP-W10上具有相應的管理訪問許可權:

現在,我們為用戶admin獲取了相應的Kerberos服務票據,該票據是對cifs/icorp-w10.internal.corp有效的。這只允許我們將該用戶模擬為特定主機,而無法模擬網路中的其他主機。藉助於該票據,我們就可以在目標主機上執行任何操作了,例如,使用secretsdump轉儲哈希值:

這樣的話,攻擊者就可以完全控制受害者的工作站了。

其他濫用途徑

在本文中,我們重點介紹了如何使用mitm6和WPAD執行完全無需藉助任何憑證的中繼攻擊。實際上,通過HTTP連接到被Windows視為內網主機的任何連接,都可以達到同樣的目的(前提是啟用了Intranet自動檢測)。Elad曾在其博客中詳細如何使用WebDAV在主機上利用此漏洞。另一個攻擊途徑是藉助PrivExchange,因為它會讓Exchange以SYSTEM身份進行認證,除非安裝了最新的修補程序。

相關工具

NtlmRelayx的更新版本可以從這裡下載;一旦這個分支合併到主存儲庫中,我將更新本文。

緩解措施

由於該攻擊涉及到多個組件,因此,我們可以採用多種緩解措施。

針對mitm6的防禦措施

我們都知道,即使在純IPv4的環境中,mitm6也能濫用Windows來查詢IPv6地址。如果組織內部沒有使用IPv6的話,則防禦mitm6濫用的最佳方法是通過Windows防火牆的組策略阻止DHCPv6流量和傳入路由器廣告。不過,完全禁用IPv6可能會產生不必要的副作用。將以下預定義規則設置為「Block」而不是「Allow」,就能防禦這種攻擊:

(Inbound) Core Networking - Dynamic Host Configuration Protocol for IPv6(DHCPV6-In)

(Inbound) Core Networking - Router Advertisement (ICMPv6-In)

(Outbound) Core Networking - Dynamic Host Configuration Protocol for IPv6(DHCPV6-Out)

針對WPAD濫用的防禦措施

如果公司內部沒有使用WPAD,請通過組策略禁用它,並禁用WinHttpAutoProxySvc服務。關於mitm6的緩解和檢測措施的深入講解,請參閱這篇文章。

針對LDAP中繼的防禦措施

只能通過啟用LDAP簽名和LDAP通道綁定來緩解針對LDAP和LDAPS的中繼。

針對基於資源的委託濫用

這方面難度較大,因為它是一個合法的Kerberos概念。不過,我們可以通過將Administrative用戶添加到Protected Users組或將其標記為帳戶敏感且無法委派來減少攻擊面,從而阻止通過委派來模擬該用戶。關於基於資源的委託濫用的緩解和檢測方法的詳細介紹,請參閱這裡。


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

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


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

如何使用rootless越獄對iOS 12設備的物理提取和文件系統映像

TAG:嘶吼RoarTalk |