欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何滥用 GPO 攻击活动目录 Part 1

来源: 作者: 时间:2019-02-24 21:26 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助

很久以来我一直想写关于组策略对象(GPO, Group Policy Objects)的内容,很高兴终于可以开始了。
如果你对GPO不太熟悉,我强烈建议你阅读Andy Robbins的“红队GPO和OU指南”。他介绍了GPO如何执行,如何使用BloodHound找到基于GPO控制的攻击路径,并解释了执行这些攻击的几种方法。
在武器化方面,Will Schroeder发表了文章:滥用GPO权限,并在Powerview中实现了New-GPOImmediateTask。但是这个功能后来被删除了,并带有以下解释:
不一致,手工操作更好
本系列文章的目的是演示如何枚举这些滥用机会,并将其用于权限提升和实现持久化。
 
枚举
有一些我们可能感兴趣的权限,例如:
在域(domain)中创建新的GPO。
将GPO链接到某个OU(组织单元, organizational unit)。
修改现有的GPO(这可能是/不是当前链接的)。
我之所以这样认为,是因为它们是单独授权的权限。例如:
授权创建GPO并不一定授权其链接到OU。
用户可能修改现有的GPO,但它可能是未链接的,不能链接自己本身。
或者用户可能无法修改GPO,但可以将其链接到另一个OU。
因此,拥有的权限组合将取决于如何实现这种滥用。
 
创建GPO
在组策略管理控制台(GPMC)中授权在域中创建GPO,如下:

可以用下面的方法在PowerView中进行枚举:
PS > Get-DomainObjectAcl -SearchBase "CN=Policies,CN=System,DC=testlab,DC=local" -ResolveGUIDs | Where-Object { $_.ObjectAceType -eq "Group-Policy-Container" }
AceQualifier           : AccessAllowed
ObjectDN               : CN=Policies,CN=System,DC=testlab,DC=local
ActiveDirectoryRights  : CreateChild                                       "Create GPO" in this context
ObjectAceType          : Group-Policy-Container
ObjectSID              :
InheritanceFlags       : None
BinaryLength           : 56
AceType                : AccessAllowedObject
ObjectAceFlags         : ObjectAceTypePresent
IsCallback             : False
PropagationFlags       : None
SecurityIdentifier     : S-1-5-21-407754292-3742881058-3910138598-1106     1
AuditFlags             : None
IsInherited            : False
AceFlags               : None
InheritedObjectAceType : All
OpaqueLength           : 0
PS > Convert-SidToName S-1-5-21-407754292-3742881058-3910138598-1106
LABDesktop Admins
 
GP-Link
Get-DomainOU向我们展示了活动目录(Active Directory)中所有的组织单元。在这个例子中,我们只有默认的Domain Controllers和自定义的Workstations组织单元。
PS > Get-DomainOU
usncreated             : 6031
systemflags            : -1946157056
iscriticalsystemobject : True
gplink                 : [LDAP://CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=testlab,DC=local;0]     s) of GPO(s) already linked to the OU
whenchanged            : 06/01/2019 13:14:24
objectclass            : {top, organizationalUnit}
showinadvancedviewonly : False
usnchanged             : 6031
dscorepropagationdata  : {06/01/2019 13:15:24, 01/01/1601 00:00:01}
name                   : Domain Controllers
description            : Default container for domain controllers
distinguishedname      : OU=Domain Controllers,DC=testlab,DC=local
ou                     : Domain Controllers
whencreated            : 06/01/2019 13:14:24

[1] [2] [3] [4] [5] [6]  下一页

很久以来我一直想写关于组策略对象(GPO, Group Policy Objects)的内容,很高兴终于可以开始了。
如果你对GPO不太熟悉,我强烈建议你阅读Andy Robbins的“红队GPO和OU指南”。他介绍了GPO如何执行,如何使用BloodHound找到基于GPO控制的攻击路径,并解释了执行这些攻击的几种方法。
在武器化方面,Will Schroeder发表了文章:滥用GPO权限,并在Powerview中实现了New-GPOImmediateTask。但是这个功能后来被删除了,并带有以下解释:
不一致,手工操作更好
本系列文章的目的是演示如何枚举这些滥用机会,并将其用于权限提升和实现持久化。
 
枚举
有一些我们可能感兴趣的权限,例如:
在域(domain)中创建新的GPO。
将GPO链接到某个OU(组织单元, organizational unit)。
修改现有的GPO(这可能是/不是当前链接的)。
我之所以这样认为,是因为它们是单独授权的权限。例如:
授权创建GPO并不一定授权其链接到OU。
用户可能修改现有的GPO,但它可能是未链接的,不能链接自己本身。
或者用户可能无法修改GPO,但可以将其链接到另一个OU。
因此,拥有的权限组合将取决于如何实现这种滥用。 www.wnhack.com
 
创建GPO
在组策略管理控制台(GPMC)中授权在域中创建GPO,如下:

可以用下面的方法在PowerView中进行枚举:
PS > Get-DomainObjectAcl -SearchBase "CN=Policies,CN=System,DC=testlab,DC=local" -ResolveGUIDs | Where-Object { $_.ObjectAceType -eq "Group-Policy-Container" }
AceQualifier           : AccessAllowed
ObjectDN               : CN=Policies,CN=System,DC=testlab,DC=local
ActiveDirectoryRights  : CreateChild                                       "Create GPO" in this context www.wnhack.com
ObjectAceType          : Group-Policy-Container
ObjectSID              :
InheritanceFlags       : None
BinaryLength           : 56
AceType                : AccessAllowedObject
ObjectAceFlags         : ObjectAceTypePresent
IsCallback             : False
PropagationFlags       : None
SecurityIdentifier     : S-1-5-21-407754292-3742881058-3910138598-1106     1
AuditFlags             : None
IsInherited            : False 本文来自无奈人生安全网
AceFlags               : None
InheritedObjectAceType : All
OpaqueLength           : 0
PS > Convert-SidToName S-1-5-21-407754292-3742881058-3910138598-1106
LABDesktop Admins
 
GP-Link
Get-DomainOU向我们展示了活动目录(Active Directory)中所有的组织单元。在这个例子中,我们只有默认的Domain Controllers和自定义的Workstations组织单元。
PS > Get-DomainOU
usncreated             : 6031
systemflags            : -1946157056
iscriticalsystemobject : True
gplink                 : [LDAP://CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=testlab,DC=local;0]     s) of GPO(s) already linked to the OU
whenchanged            : 06/01/2019 13:14:24 www.wnhack.com
objectclass            : {top, organizationalUnit}
showinadvancedviewonly : False
usnchanged             : 6031
dscorepropagationdata  : {06/01/2019 13:15:24, 01/01/1601 00:00:01}
name                   : Domain Controllers
description            : Default container for domain controllers
distinguishedname      : OU=Domain Controllers,DC=testlab,DC=local
ou                     : Domain Controllers
whencreated            : 06/01/2019 13:14:24
www.wnhack.com

[1] [2] [3] [4] [5] [6]  下一页

内容来自无奈安全网

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。