0x01 什么是域信任
大多數(shù)擁有多個(gè)域的組織都需要用戶(hù)訪問(wèn)位于不同域中的共享資源最筒。 控制此訪問(wèn)需要一個(gè)域中的用戶(hù)也可以通過(guò)身份驗(yàn)證和授權(quán)以使用另一個(gè)域中的資源捕虽。付魔,要在不同域中的客戶(hù)端和服務(wù)器之間提供身份驗(yàn)證和授權(quán)功能愤兵,兩個(gè)域之間必須存在信任铁蹈。所以簡(jiǎn)單來(lái)說(shuō)赐俗,一個(gè)域中的用戶(hù)如果想訪問(wèn)另一個(gè)域(父級(jí)域或同級(jí)域)的資源拉队,必須要將兩個(gè)域的身份認(rèn)證系統(tǒng)連接在一起,也就是建立域信任關(guān)系秃励。
0x02 信任的域間協(xié)商過(guò)程
如果用戶(hù)請(qǐng)求訪問(wèn)駐留當(dāng)前所在域之外的資源的服務(wù)主體名稱(chēng) (SPN)氏仗,域控制器將返回一個(gè)指向密鑰分發(fā)中心(Windows 中的 KDC)的外部域特殊票據(jù)。用戶(hù)的票據(jù) (TGT) 包含在此 TGS-REP(票據(jù)授予服務(wù)回復(fù))特殊票據(jù)中夺鲜,并且此票據(jù)使用域之前交換的域間信任密鑰加密/簽名皆尔,而不是第一個(gè)域的 krbtgt 帳戶(hù)。 這張票通常被稱(chēng)為“域間授予票/TGT”币励。 然后慷蠕,外部域通過(guò)使用先前協(xié)商的域間信任密鑰對(duì)其進(jìn)行解密來(lái)驗(yàn)證/解密引用中包含的 TGT。
建立信任的目的是允許來(lái)自一個(gè)域的用戶(hù)訪問(wèn)資源(如服務(wù)器上的本地管理員組)食呻,嵌套在組中或以其他方式使用另一個(gè)域中的安全主體(例如用于 AD 對(duì)象 ACL )流炕。 對(duì)此有個(gè)例外是域林內(nèi)信任(存在于同一 Active Directory 林中的域信任)——在林中創(chuàng)建的任何域都與林中的每個(gè)其他域保持隱式雙向、可傳遞的信任關(guān)系仅胞。
0x03 域信任傳遞性
傳遞信任將信任關(guān)系擴(kuò)展到其他域每辟,非傳遞信任不會(huì)將信任關(guān)系擴(kuò)展到其他域,用戶(hù)可以潛在地訪問(wèn)多個(gè)域中的資源干旧,如果域A信任域B渠欺,并且B信任C,則A絕對(duì)信任C椎眯,如果特定的信任關(guān)系是可傳遞的挠将,那么信任域可以重新包裝用戶(hù)TGT胳岂,并將它們轉(zhuǎn)發(fā)到其他域。此外舔稀,信任可以是單向也可以是雙向的乳丰,雙向信任實(shí)際上是兩個(gè)單向信任。 單向信任意味著用戶(hù)和計(jì)算機(jī)受信任域中的可以潛在地訪問(wèn)另一個(gè)信任域中的資源内贮,單向信任只有一個(gè)方向产园,在非用戶(hù)和計(jì)算機(jī)信任域中不能在訪問(wèn)信任域內(nèi)的資源。 微軟有一張圖可以來(lái)表述這種單向和雙向信任關(guān)系:
0x04 枚舉域信任
利用powerview中的Get-DomainTrust
函數(shù)即可列舉信任域
域信任作為“受信任的域?qū)ο蟆贝鎯?chǔ)在 Active Directory 中贺归,對(duì)象類(lèi)為trustDomain淆两,使用LDAP 查詢(xún)方法也可以查找有關(guān)使用 LDAP 過(guò)濾器存在的域信任的信息。