拓冰建站拓冰建站
首页 / 资讯中心 / 正文

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

1. 内网WriteOwner权限滥用风险全景解析在Active DirectoryAD域环境中WriteOwner权限作为ACL访问控制列表中的一项关键权限常被攻击者用于权限提升攻击链。这个看似普通的权限项实际上允许主体修改目标对象的所有者属性——而所有权变更往往意味着完全控制权的获取。我在多个企业红队评估项目中亲眼目睹过攻击者如何利用这个合法权限实现从普通域账户到域管理员权限的跃迁。2. WriteOwner权限技术原理深度剖析2.1 ACL权限继承机制AD中的每个对象都通过安全描述符Security Descriptor存储权限信息其中包含DACL自主访问控制列表。当用户尝试修改对象属性时系统会逐条检查DACL中的ACE访问控制项判断是否具有WriteProperty或WriteOwner权限。关键点在于WriteOwner权限默认不会显示在常规权限管理界面所有权变更后新所有者会自动获得修改DACL的权限子对象默认继承父容器的ACL设置除非启用权限继承阻断2.2 典型滥用场景还原以某次渗透测试为例我们通过以下路径完成权限提升获取普通域账户通过钓鱼或弱口令枚举ACL发现对某OU具有WriteOwner权限使用PowerShell修改OU所有者$OU Get-ADOrganizationalUnit -Identity OUServers,DCcontoso,DCcom $User Get-ADUser -Identity attacker Set-ADObject -Identity $OU -Owner $User.DistinguishedName作为新所有者添加完全控制权限在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:\OUServers | Set-ACL -RemoveAccounts S-1-5-21-*审计强化启用对象访问审计Auditpol /set /subcategory:Directory Service Changes /success:enable监控规则创建SCOM警报规则监控Event ID 4662中的Owner字段变更关键提示定期使用Microsofts Attack Surface Analyzer检查权限配置漂移特别关注新创建的ACL条目。4. 权限模型优化实践4.1 最小权限原则实施在某金融客户案例中我们采用三级权限模型核心层Tier 0域管理员组仅允许交互式登录到DC业务层Tier 1服务器管理员通过JIT即时权限分配用户层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 {NObject;E{$_.DistinguishedName}}, {NPrincipal;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 $acl5. 高级威胁狩猎技巧5.1 隐蔽攻击痕迹分析攻击者常使用以下手法规避检测在非工作时间UTC 02:00-04:00执行权限变更通过已入侵的服务器账户如SQL服务账户发起操作使用低权限DC复制DCSync而非直接修改对应的KQL查询示例Azure SentinelSecurityEvent | 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 红队对抗经验在实际攻防演练中我们开发了多种绕过技术利用ACL继承延迟在父容器添加权限后立即删除子对象仍保留权限通过Exchange相关漏洞如CVE-2020-0688间接获取WriteOwner滥用DS-Replication-Get-Changes扩展权限实现等效控制对应的防御检测规则应包含监控PowerShell的Set-ADObject调用栈应禁止非管理会话调用分析LDAP流量的特殊属性修改请求如owner*建立权限变更的基线行为模型如正常管理员操作模式在最近的客户环境中我们发现攻击者开始滥用Azure AD Connect的同步账户实施此类攻击这要求防御方必须将本地AD与云身份系统的权限关联分析。通过部署Microsoft Defender for Identity可以捕获跨系统的异常权限使用模式如从非管理终端发起的Owner属性修改请求。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门