Windows域內機器本地攻擊安全通告

發布時間 2019-03-06

漏洞編號和級別


CVE編號:暫無,危險級別:高危, CVSS分值:官方未評定


影響范圍


受影響軟件以及版本: 

Windows域環境


漏洞概述


來自Shenanigans Labs的安全研究員公布了一種利用基于資源的約束委派(Resource-Based Constrained Delegation)進行活動目錄攻擊的方式,該攻擊方式可能對域環境造成嚴重威脅,攻擊者能夠令普通的域用戶以域管理員身份訪問本地計算機的服務,實現本地權限提升。


漏洞細節


相關背景


委派(Delegation)是一種讓用戶可以委托服務器代表自己與其他服務進行驗證的功能,主要用于當服務需要以某個用戶的身份來請求訪問其他服務資源的場景。



對于不同委派的工作模式,假設A為IIS Web Server,B為SQL Server,A需要使用數據庫B以支撐用戶訪問。



傳統的約束委派是“正向的”,通過修改服務A屬性”msDS-AllowedToDelegateTo”,添加服務B的SPN(Service Principle Name),設置約束委派對象(服務B),服務A便可以模擬用戶向域控制器請求訪問服務B以獲得TGS服務票據來使用服務B的資源。


而基于資源的約束委派則是相反的,通過修改服務B屬性”msDS-AllowedToActOnBehalfOfOtherIdentity”,添加服務A的SPN,達到讓服務A模擬用戶訪問B資源的目的。


攻擊原理


安全研究員Elad Shami在其報告中指出,無論服務賬號的UserAccountControl屬性是否被設TrustedToAuthForDelegation,服務自身都可以調用S4U2Self為任意用戶請求訪問自己的TGS服務票據。但是當沒有設置時,通過S4U2Self請求得到的TGS服務票據是不可轉發的。


如果通過S4U2Self獲得的TGS服務票據被標志為可轉發,則該票據可以在接下來的S4U2Proxy中被使用,而不可轉發的TGS服務票據是無法通過S4U2Proxy轉發到其他服務進行傳統的約束委派認證的。


可關鍵在于,不可轉發的TGS服務票據竟然可以用于基于資源的約束委派。S4U2Proxy會接收這張不可轉發的TGS服務票據,請求相關服務并最后得到一張可轉發的TGS 服務票據。


攻擊流程


引用報告中原圖說明該攻擊步驟:



如果能夠在B上配置基于資源的約束委派讓服務A訪問(擁有修改服務B的msDS-AllowedToActOnBehalfOfOtherIdentity屬性權限),并通過服務A使用S4U2Self向域控制器請求任意用戶訪問自身的TGS 服務票據,最后再使用S4U2Proxy轉發此票據去請求訪問服務B的TGS服務票據,那么就將能模擬任意用戶訪問B的服務!


修復建議


緩解措施:

1.       在高權限賬戶屬性設置中,將其設置為“敏感賬戶,不能被委派”。

2.       將高權限賬戶加入被保護組。

3.       啟用LDAP簽名和channel binding能修復通過NTLM中繼的本地提權。


參考鏈接


https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html