AD信任(Trust)機制:
攻擊目標:
原理:
一旦取得網域的KRBTGT帳號Hash,攻擊者可偽造該網域的Kerberos TGT(黃金票證)來冒充任意使用者。在存在信任的情況下,此偽造票證可用來向受信網域請求服務票證(TGS),達到跨域滲透。
步驟與指令:
使用場景:
當已是Child Domain Admin,想繼續往Parent Domain或Forest Root提升權限時。
原理:
SID History是一個帳號屬性,可用來存放該帳號在舊網域的SID,以利於遷移使用者時保留舊權限。若信任關係未啟用SID過濾(SID Filtering),攻擊者可將高權限SID(如另一網域的Domain Admin SID)寫入該使用者的SID History中,使該使用者在受信網域擁有該SID對應的權限。
步驟:
指令示例(概念性,實務中常透過LDAP或Mimikatz執行):
使用場景:
在子網域取得Domain Admin後,透過SID History注入,使該使用者在父網域出現為高權限成員,實現權限跨域遞增。
原理:
S4U機制允許服務在不知使用者密碼的情況下向KDC要求代表該使用者的票證。若存在跨域信任,且您已持有特定服務帳號的憑證或控制了該服務帳號,便可使用S4U2Self取得模擬該網域內使用者的TGS,再透過S4U2Proxy取得跨域服務TGS。
指令(Rubeus舉例):
此指令可在已取得某網域服務帳號hash的情況下,模擬成該網域的任意使用者(targetUser
),接著透過信任關係取得跨域資源票證。
使用場景:
已在一個網域控制了Service Account,透過S4U2Proxy向另一個受信網域要求服務票證,擴張攻擊範圍。
原理:
RBCD允許資源(如Server服務)指定哪些帳號可以代表使用者向KDC請求票證(S4U2Proxy)。若在跨域信任下,且RBCD設定不嚴謹,攻擊者可在已控制的網域帳號上修改目標資源的msDS-AllowedToActOnBehalfOfOtherIdentity
屬性,使該帳號可以在受信網域中代表高權限使用者請票,進而取得該網域的高權限存取權。
步驟:
使用場景:
網域間存在誤設的RBCD,透過修改msDS-AllowedToActOnBehalfOfOtherIdentity
實現在受信網域中假借高權者身份取得服務票證。
原理:
若有Forest Trust存在,攻擊者可從一個森林取得憑證後,要求另一森林的TGS。方法類似跨域攻擊,但需取得Forest Trust中使用的信任金鑰(TDO Keys)或取得該森林之KRBTGT Hash,以偽造ticket。
手法:
mimikatz "lsadump::dcsync /domain:forestroot.local /user:krbtgt"
在已掌控的Forest中Dump出相應hash。使用場景:
擴張至整個企業園區的多個森林間,達成最終完整控制的目標。
PowerView:
列舉信任關係:
藉此找出合適的橫向攻擊目標網域。
BloodHound/SharpHound:
收集Trust資訊、委派設定、ACLs等,圖形化視覺化顯示哪條路徑可從已控網域跳轉至目標網域。
從子網域提升至父網域:
使用SID History Injection避開SID Filtering:
S4U2Proxy搭配RBCD滲透: