GPO组策略安全

参考文章: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.godSYSVOLpentest.GodPolicies中,默认会有两条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策略里面的内容 对应的编号目录下的UserPreferencesScheduledTasks下找到文件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中对应的执行命令的标签内容就可以了

原文地址:https://www.cnblogs.com/zpchcbd/p/12932181.html