滥用 GPO 攻击活动目录—Part 1
字数 1332 2025-08-27 12:33:37
滥用GPO攻击活动目录 - 完整指南
1. GPO基础概念
组策略对象(Group Policy Objects, GPO)是Active Directory中用于集中管理计算机和用户配置的核心组件。GPO可以包含各种策略设置,从安全配置到软件部署等。
GPO关键组件:
- GPC (Group Policy Container):存储在AD中的GPO部分,包含版本和状态信息
- GPT (Group Policy Template):存储在SYSVOL中的GPO部分,包含实际策略设置
- GPLink:将GPO链接到组织单位(OU)的属性
2. GPO攻击面枚举
2.1 枚举创建GPO的权限
Get-DomainObjectAcl -SearchBase "CN=Policies,CN=System,DC=testlab,DC=local" -ResolveGUIDs |
Where-Object { $_.ObjectAceType -eq "Group-Policy-Container" }
关键点:
- 查找
CreateChild权限(在此上下文中表示"创建GPO") - 注意具有此权限的用户/组的SID
2.2 枚举GPO链接权限
Get-DomainOU | Get-DomainObjectAcl -ResolveGUIDs |
Where-Object { $_.ObjectAceType -eq "GP-Link" }
关键点:
- 查找
WriteProperty权限(GP-Link是OU对象上的一个属性) - 注意
InheritanceFlags和IsInherited属性
2.3 枚举修改现有GPO的权限
Get-DomainGPO | Get-DomainObjectAcl -ResolveGUIDs |
Where-Object {
$_.ActiveDirectoryRights -match "WriteProperty|WriteDacl|WriteOwner" -and
$_.SecurityIdentifier -match "S-1-5-21-407754292-3742881058-3910138598-[\d]{4,10}"
}
关键点:
- 查找
WriteProperty、WriteDacl或WriteOwner权限 - 过滤掉内置管理员组(RID<1000)
3. GPO与OU关系映射
3.1 按计算机枚举GPO
Get-DomainGPO -ComputerIdentity ws-1 -Properties Name, DisplayName
3.2 按GPO枚举适用的OU
Get-DomainOU -GPLink "{ECB75201-82D7-49F3-A0E0-86788EE7DC36}" -Properties DistinguishedName
3.3 按OU枚举链接的GPO
$GPLink = (Get-DomainOU -Identity "Workstations" -Properties GPLink).gplink
[Regex]::Matches($GPLink,"\{[A-Z0-9]{8}-([A-Z0-9]{4}-){3}[A-Z0-9]{12}\}") |
Select-Object -ExpandProperty Value |
ForEach-Object { Get-DomainGPO -Identity "{$_}" -Properties DisplayName }
4. 继承分析
GPO权限可以继承:
InheritanceFlags: ContainerInherit表示权限将应用于子容器IsInherited: True表示权限是从父容器继承的AceFlags: ContainerInherit, Inherited表示权限是继承的且将传递给子容器
关键继承场景:
- 默认情况下,权限会继承到所有子对象
- 可以设置为"仅此对象"(This object only),此时
InheritanceFlags和AceFlags将为None - 嵌套OU会继承所有父OU的权限
5. 攻击路径分析
5.1 创建新GPO的攻击路径
- 检查是否有创建GPO的权限
- 检查是否有将GPO链接到目标OU的权限
- 创建恶意GPO并链接到目标OU
5.2 修改现有GPO的攻击路径
- 枚举可修改的GPO
- 检查这些GPO链接的OU
- 修改GPO设置以添加恶意任务或配置
5.3 链接现有GPO的攻击路径
- 枚举有GP-Link权限的OU
- 查找现有的未链接或可用的GPO
- 将GPO链接到目标OU
6. 防御建议
- 定期审计GPO权限委派
- 限制GPO创建和修改权限
- 监控SYSVOL中的异常更改
- 实施GPO变更管理流程
- 使用工具如BloodHound检测攻击路径
7. 工具推荐
- PowerView:用于枚举GPO权限和关系
- BloodHound:可视化GPO攻击路径
- GPMC:组策略管理控制台,用于管理GPO
- ADUC:Active Directory用户和计算机,用于委派控制
通过深入理解GPO的工作原理和权限模型,攻击者可以找到提升权限或维持持久性的途径,而防御者则可以更好地保护Active Directory环境免受此类攻击。