參考文章:https://blog.riskivy.com/fun_with_acl_and_gpo/
參考文章:https://3gstudent.github.io/3gstudent.github.io/域滲透-利用GPO中的計划任務實現遠程執行/
什么是GPO
GPO全稱Group Policy Objects,用來存儲Active Directory中的策略
自Windows Server 2008開始,GPO開始支持計划任務,便於管理域中的計算機和用戶
當創建了域控之后,在域控中的SYSVOL文件夾\\pentest.god\SYSVOL\pentest.God\Policies
中,默認會有兩條GPO策略,為如下顯示:
{6AC1786C-016F-11D2-945F-00C04fB984F9} 對應 Default Domain Controllers Policy
{31B2F340-016D-11D2-945F-00C04FB984F9} 對應D efault Domain Policy
默認情況下,域用戶的組策略每90分鍾更新,隨機偏移為0-30分鍾,域控制器的組策略每5分鍾更新
利用GPO遠程命令執行
通過Group Policy Management Console (GPMC) 實現計划任務的遠程執行
1、打開組策略創建相對應的GPO策略
2、輸入名稱TestGPO1,這會創建一個全局的GPO,該策略會作用於所有域用戶
此時在SYSVOL目錄中會多一條組策略的文件夾
3、選擇創建好的TestGPO1,添加計划任務
選擇即時任務,這里為什么選擇即時任務呢?因為即時任務有個特點,那就是該策略會在每次組策略刷新時執行
創建完成之后可以去查看下GPO策略里面的內容 對應的編號目錄下的User\Preferences\ScheduledTasks下找到文件ScheduledTasks.xml
對於域內的主機,可以等待90分鍾使組策略自動更新,也可以在客戶端執行如下命令強制刷新組策略:gpupdate /force
我在一台域機器(非域控機器)上執行命令,結果如下
如何利用腳本來實現創建GPO:
Powerview中集成的New-GPOImmediateTask
實現了利用組策略權限委派缺陷來創建即時任務,其原理是根據選定參數(即時任務名稱、任務欲執行的程序,程序參數等),生成一個ScheduledTasks.xml文件,並利用對某個組策略對象的權限將該xml配置文件復制推送到對應的GPC下
那么可以直接理解為替換某個組策略對象下的ScheduledTasks.xml文件
濫用組策略權限委派
組策略的權限存在被利用的可能性,組策略的權限即組策略的DACL配置,即權限委派。
如果組策略對象的修改或完全控制權限被分配給了某個用戶,當該用戶被攻擊者拿下之后,攻擊者利用該用戶權限可以修改並配置特定的組策略來滲透攻擊受該組策略作用的用戶或計算機。
這里講下基於組策略濫用的權限擴展攻擊路線
1、首先攻擊者通過Invoke-ACLScanner
發現域中存在危險的ACL配置
Invoke-ACLScanner -ResolveGUIDs -ADSpath "CN=Policies, CN=System, DC=pentest, DC=God" -verbose
發現yuyonghu01存在高危的ACL配置項
ObjectDN : CN={F840B20B-6EFB-48EC-B81F-62FFECA9E3EE},CN=Policies,CN=System,DC=pentest,DC=God
2、接着利用Get-NetOU查找應用了該組策略的OU
Get-NetOU -GUID F840B20B-6EFB-48EC-B81F-62FFECA9E3EE
3、發現上述OU應用了該組策略配置,再通過Get-NetComputer和Get-NetUser查找屬於該OU的成員,即可確定該權限配置可能影響的用戶和計算機
Get-NetOU -GUID F840B20B-6EFB-48EC-B81F-62FFECA9E3EE | %{Get-NetUser -ADSpath $_}
Get-NetOU -GUID F840B20B-6EFB-48EC-B81F-62FFECA9E3EE | %{Get-Netcomputer -ADSpath $_}
5、最后通過修改該組策略,如定制特殊的開機啟動腳本、修改瀏覽器安全配置、安裝特定軟件、將指定域賬號添加到本地管理員組、添加定時任務等等來進行拿下相對應的計算機和用戶
6、最后使用wmic或者psexec進行遠程調用刷新組策略
gpupdate /force
總結:
在創建/利用組策略的時候,從兩個方面進行下手:
1、新建組策略,創建計划任務實現遠程命令的執行
2、修改已有組策略,替換計划任務實現遠程命令的執行,如果域控制器上已有策略並配置了計划任務那么就不再需要注冊,修改ScheduledTasks.xml中對應的執行命令的標簽內容就可以了