如何滥用 GPO 攻击活动目录 Part 1
很久以来我一直想写关于组策略对象(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
很久以来我一直想写关于组策略对象(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
内容来自无奈安全网