本篇文章是在基於資源的約束委派的基礎上的一個利用,篇幅會比較短,但個人認為利用面還是挺廣泛的。於是就寫一下。
首先,需要了解的是RBCD的基礎知識:
可以參考我的這本篇文章,如果你還不了解Kerberos,可以看一下這篇
簡單回顧一下:既然是RBCD,就一定繞不開兩個協議,S4U2Self和S4U2Proxy,這兩個協議的作用,主要是解決計算機以自己身份申請票據已達到完成認證的目的。
2.1.S4U2Self• S4U2Self 通過此擴展可以拿到一張標識任意用戶身份的ST,使用S4U2Self的原因,是因為,如果用戶非Kerberos協議登錄網站,那麼就涉及到協議轉換的問題,因此需要使用S4USelf。如果用戶是使用Kerberos協議進行認證並登錄該服務器的,那麼,在該服務器上會有該用戶的ST,就不需要使用S4USelf去申請ST,直接使用該的ST。這個協議的本質,其實是解決協議轉換問題。當該用戶user使用非Kerberos協議請求Server A的時候,Server A是沒有user用戶的ST的,但是Server A要去獲取Server B的訪問權限需要user用戶的ST,因此S4U2Self解決了這個問題,Server A服務器可以使用它去向KDC請求一張user身份的ST,Server A服務器再用這張ST去發起S4U2proxy請求。
• S4U2proxy該拓展作用是使用一張user用戶身份的ST去向KDC請求一張用於訪問Server B的ST,這張ST的身份還是user用戶,這樣Server A就可以利用uesr用戶的權限去訪問Server B上的文件了。
3.msDS-AllowedToActOnBehalfOfOtherIdentity默認情況下,屬性在ldap中是查不到的,需要單獨配置才可以。誰配置了msDS-AllowedToActOnBehalfOfOtherIdentity屬性,就說明誰配置了RBCD。O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;serverA的sid)
其中O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO未固定寫法,;;;後面為被委派的用戶的SID
如上圖,values:D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-5199876-230042057-2391242617-1113)
說明:CN=SR,CN=Computers,DC=test,DC=org配置了S-1-5-21-5199876-230042057-2391242617-1113的委派
針對這,可以根據rabbit大佬的思路來理解:配置了msDS-AllowedToActOnBehalfOfOtherIdentity,values指向域內某個用戶,就可以理解為,該計算機將鑑定權能力交出去,相當於,該計算機完全信任委派的用戶。
按照上圖就是:
CN=SR,CN=Computers,DC=test,DC=org配置了S-1-5-21-5199876-230042057-2391242617-1113的委派,就相當於CN=SR,CN=Computers,DC=test,DC=org信任S-1-5-21-5199876-230042057-2391242617-1113
3.1.誰可以配置?既然知道了配置了RBCD的具體表現以及含義,那麼問題來了,誰能修改msDS-AllowedToActOnBehalfOfOtherIdentity的values,準確的來講,應該是:誰可以添加msDS-AllowedToActOnBehalfOfOtherIdentity的values並修改values
這裡直接拋結論:
• 機器用戶
• mS-DS-CreatorSID 賬號(mS-DS-CreatorSID的valuse的值對應的objectSid)
4.攻擊利用這裡復盤一下攻擊步驟:
• 第一步,連接域控ldap創建計算機賬戶xiaolongxia
• 第二步,通過ldap協議在域控上設置sr的msds-allowedtoactonbehalfofotheridentity的值為O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;xiaolongxia的sid)
• 第三步,使用xiaolongxia憑據拿到一張TGT
PS:這裡感謝rabbit師傅提供的工具
• 第四步,使用s4u2self代表administrator拿到一張ST
• 第五步,拿從s4u2self那裡獲取到的ST作為驗證信息再去請求一張用於訪問sr機器CIFS spn的ST票據。
• 第六步,提升權限
• 企業可能會有一個專門的賬號,用來拉新用戶加入域,該賬號通常只有普通域用戶權限,如果我們控制了這個賬戶呢?
• 當我們滲透進入一個域環境,發現並沒有足夠的權限擴,行動有限,那麼我們可以查看,當前機器是誰拉進來的,如果我們能控制該用戶呢?
• 一個域用戶X可能會在域中創建多台機器(比如筆記本和台式機都需要加入域),當我們有了改用戶的權限時,可以利用RBCD繼續攻擊其他mS-DS-CreatorSID是該域用戶的機器。
E
N
D
關
於
我
們
Tide安全團隊正式成立於2019年1月,是新潮信息旗下以互聯網攻防技術研究為目標的安全團隊,團隊致力於分享高質量原創文章、開源安全工具、交流安全技術,研究方向覆蓋網絡攻防、系統安全、Web安全、移動終端、安全開發、物聯網/工控安全/AI安全等多個領域。
團隊作為「省級等保關鍵技術實驗室」先後與哈工大、齊魯銀行、聊城大學、交通學院等多個高校名企建立聯合技術實驗室,近三年來在網絡安全技術方面開展研發項目60餘項,獲得各類自主知識產權30餘項,省市級科技項目立項20餘項,研究成果應用於產品核心技術研究、國家重點科技項目攻關、專業安全服務等。對安全感興趣的小夥伴可以加入或關注我們。
