news 2026/9/12 18:22:39

Active Directory中WriteOwner权限滥用与防御实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Active Directory中WriteOwner权限滥用与防御实战

1. 内网WriteOwner权限滥用风险全景解析

在Active Directory(AD)域环境中,WriteOwner权限作为ACL(访问控制列表)中的一项关键权限,常被攻击者用于权限提升攻击链。这个看似普通的权限项,实际上允许主体修改目标对象的所有者属性——而所有权变更往往意味着完全控制权的获取。我在多个企业红队评估项目中,亲眼目睹过攻击者如何利用这个"合法权限"实现从普通域账户到域管理员权限的跃迁。

2. WriteOwner权限技术原理深度剖析

2.1 ACL权限继承机制

AD中的每个对象都通过安全描述符(Security Descriptor)存储权限信息,其中包含DACL(自主访问控制列表)。当用户尝试修改对象属性时,系统会逐条检查DACL中的ACE(访问控制项),判断是否具有WriteProperty或WriteOwner权限。关键点在于:

  • WriteOwner权限默认不会显示在常规权限管理界面
  • 所有权变更后,新所有者会自动获得修改DACL的权限
  • 子对象默认继承父容器的ACL设置(除非启用权限继承阻断)

2.2 典型滥用场景还原

以某次渗透测试为例,我们通过以下路径完成权限提升:

  1. 获取普通域账户(通过钓鱼或弱口令)
  2. 枚举ACL发现对某OU具有WriteOwner权限
  3. 使用PowerShell修改OU所有者:
$OU = Get-ADOrganizationalUnit -Identity "OU=Servers,DC=contoso,DC=com" $User = Get-ADUser -Identity "attacker" Set-ADObject -Identity $OU -Owner $User.DistinguishedName
  1. 作为新所有者添加完全控制权限
  2. 在OU下创建恶意组策略对象(GPO)实现全域控制

3. 实战检测与防御方案

3.1 权限滥用检测技术

推荐使用BloodHound进行可视化分析:

# 收集域内ACL数据 SharpHound.exe --CollectionMethods ACL,Container --Domain contoso.com

在BloodHound中重点关注:

  • 非管理员账户拥有的WriteOwner权限
  • 关键容器(如Domain Controllers OU)的异常权限分配
  • 服务账户对用户对象的写权限

3.2 企业级防御策略

基于微软安全基准的强化建议:

防护层面具体措施实施命令示例
权限收敛清理冗余ACL条目Get-ACL "AD:\OU=Servers" | Set-ACL -RemoveAccounts "S-1-5-21-*"
审计强化启用对象访问审计Auditpol /set /subcategory:"Directory Service Changes" /success:enable
监控规则创建SCOM警报规则监控Event ID 4662中的Owner字段变更

关键提示:定期使用Microsoft's Attack Surface Analyzer检查权限配置漂移,特别关注新创建的ACL条目。

4. 权限模型优化实践

4.1 最小权限原则实施

在某金融客户案例中,我们采用三级权限模型:

  1. 核心层(Tier 0):域管理员组,仅允许交互式登录到DC
  2. 业务层(Tier 1):服务器管理员,通过JIT(即时)权限分配
  3. 用户层(Tier 2):标准用户,禁止所有WriteOwner权限

通过PowerShell自动化检测脚本:

# 检查非Tier0账户的WriteOwner权限 Get-ADObject -Filter * -Properties nTSecurityDescriptor | ForEach-Object { $sd = $_.nTSecurityDescriptor $sd.Access | Where-Object { $_.ActiveDirectoryRights -match "WriteOwner" -and $_.IdentityReference -notlike "*Tier0*" } | Select-Object @{N='Object';E={$_.DistinguishedName}}, @{N='Principal';E={$_.IdentityReference}} }

4.2 常见配置错误修复

在制造业客户环境中发现的典型问题:

  • 错误配置:Exchange Trusted Subsystem组对域根具有WriteOwner
  • 修复方案:
$root = Get-ADRootDSE $acl = Get-ACL "AD:\$($root.defaultNamingContext)" $acl.PurgeAccessRules((New-Object System.Security.Principal.NTAccount("Exchange Trusted Subsystem"))) Set-ACL -Path "AD:\$($root.defaultNamingContext)" -AclObject $acl

5. 高级威胁狩猎技巧

5.1 隐蔽攻击痕迹分析

攻击者常使用以下手法规避检测:

  • 在非工作时间(UTC 02:00-04:00)执行权限变更
  • 通过已入侵的服务器账户(如SQL服务账户)发起操作
  • 使用低权限DC复制(DCSync)而非直接修改

对应的KQL查询示例(Azure Sentinel):

SecurityEvent | where EventID == 4662 | where TargetObject contains "Owner" | extend Account = tostring(parse_json(Account)[0].Account) | where not(Account endswith "$") // 排除机器账户 | where TimeGenerated between (ago(7d) .. now()) | summarize count() by Account, bin(TimeGenerated, 1h) | where count_ > 3 // 高频操作警报

5.2 红队对抗经验

在实际攻防演练中,我们开发了多种绕过技术:

  1. 利用ACL继承延迟:在父容器添加权限后立即删除,子对象仍保留权限
  2. 通过Exchange相关漏洞(如CVE-2020-0688)间接获取WriteOwner
  3. 滥用DS-Replication-Get-Changes扩展权限实现等效控制

对应的防御检测规则应包含:

  • 监控PowerShell的Set-ADObject调用栈(应禁止非管理会话调用)
  • 分析LDAP流量的特殊属性修改请求(如owner=*)
  • 建立权限变更的基线行为模型(如正常管理员操作模式)

在最近的客户环境中,我们发现攻击者开始滥用Azure AD Connect的同步账户实施此类攻击,这要求防御方必须将本地AD与云身份系统的权限关联分析。通过部署Microsoft Defender for Identity,可以捕获跨系统的异常权限使用模式,如从非管理终端发起的Owner属性修改请求。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 18:22:37

复数卷积神经网络:面向相位敏感任务的复变函数建模方法

简介:本资源是一份面向计算机、电子信息工程及数学等专业本科生的复数卷积神经网络(CNN)完整实现代码包,适用于课程设计、期末大作业或毕业设计场景,聚焦于解决传统实值CNN难以建模相位信息的局限性。代码涵盖复数卷积…

作者头像 李华
网站建设 2026/9/12 18:22:11

液冷板材料选型:不锈钢 vs 铝合金 vs 铜合金全面对比

液冷板最常用的材料是6061铝合金(成本适中、工艺成熟、重量轻),不锈钢(304/316)适用于强腐蚀环境但导热差、加工难,铜合金适用于超高功率散热但成本高。储能液冷板选6061铝合金是当前最优解。液冷板的材料选…

作者头像 李华