内网---> WriteOwner权限滥用

目录

WriteOwner:内网渗透中的关键ACL滥用权限

[🔑 WriteOwner 权限概述](#🔑 WriteOwner 权限概述)

[🛠️ WriteOwner 的底层原理](#🛠️ WriteOwner 的底层原理)

[⚔️ WriteOwner 的典型攻击利用流程](#⚔️ WriteOwner 的典型攻击利用流程)

[📚 典型案例:StreamIO 中的 WriteOwner 利用](#📚 典型案例:StreamIO 中的 WriteOwner 利用)

[🏆 内网渗透中的关键作用与防御思考](#🏆 内网渗透中的关键作用与防御思考)


WriteOwner:内网渗透中的关键ACL滥用权限

🔑 WriteOwner 权限概述

WriteOwner 是 Active Directory(AD)中一种扩展权限(Extended Right),它允许主体修改目标 AD 对象的 所有者(Owner) 属性。

在 AD 中,每个对象(用户、组、计算机、OU 等)都有一个 Owner,默认是对象的创建者。Owner 拥有特殊的隐式权限:无论 DACL(Discretionary Access Control List)如何配置,Owner 始终可以修改该对象的访问控制列表(ACL)

通俗来说:WriteOwner 就像给你一把"改房本"的钥匙------你不能直接进屋,但能把房本过户到自己名下,过户成功后,你就成了新房主,自然能改锁、加钥匙。

🛠️ WriteOwner 的底层原理

AD 对象的权限控制基于 NTFS/AD ACL 模型,主要包含两部分:

  1. Owner(所有者) Owner 拥有隐式权限:WriteDacl(修改 ACL)和 FullControl 的子集。 这意味着:即使 DACL 明确拒绝了某人,Owner 仍能修改 DACL 给自己权限。

  2. DACL(访问控制列表) 显式定义谁能做什么。WriteOwner 是 DACL 中的一个 ACE(Access Control Entry),GUID 为: BF9679C0-0DE6-11D0-A285-00AA003049E2

  3. 权限继承与传播 WriteOwner 可以继承(Inherited),常出现在组或 OU 上,导致大范围影响。

  4. 为什么危险? AD 设计时认为 Owner 是可信的(通常是管理员),因此 Owner 的权限是硬编码的,无法通过 DACL 剥夺。这就是 WriteOwner 滥用的根本原因。

⚔️ WriteOwner 的典型攻击利用流程

攻击者通常结合 PowerView 或原生 PowerShell 完成以下链条:

  1. 发现目标对象(如某个高权限组)授予了当前用户 WriteOwner 权限。

  2. 将该对象的所有者修改为自己(或自己控制的用户)。

  3. 作为新 Owner,修改对象的 DACL,授予自己 FullControl。

  4. 利用 FullControl 执行最终目标(如添加用户到高权限组)。

文本模式通讯流程图(攻击者 → AD 对象)

cpp 复制代码
攻击者 (控制用户 A)                  AD 对象 (例如 CORE STAFF 组)
      |                                       |
      | 1. 修改 Owner → A                    |
      |    Set-DomainObjectOwner              |
      |-------------------------------------->|
      |                                       |
      | 2. AD 返回成功(Owner 变为 A)        |
      |<--------------------------------------|
      |                                       |
      | 3. 以 Owner 身份修改 DACL             |
      |    Add-DomainObjectAcl (Rights All)   |
      |-------------------------------------->|
      |                                       |
      | 4. 获得 FullControl                   |
      |<--------------------------------------|
      |                                       |
      | 5. 执行最终滥用(如 Add Group Member)|
      |-------------------------------------->|
📚 典型案例:StreamIO 中的 WriteOwner 利用

在 StreamIO

  1. JDgodd 用户对 CORE STAFF 组拥有 WriteOwner 权限。

  2. CORE STAFF 组被授予了 LAPS 密码读取权限(ms-MCS-AdmPwd)。

  3. 攻击者控制 nikk37 → 提取 JDgodd 密码 → 以 JDgodd 身份:

    • 将 CORE STAFF 组 Owner 改为 JDgodd

    • 授予 JDgodd FullControl

    • 将 JDgodd 添加为 CORE STAFF 成员

  4. JDgodd 获得 LAPS 读取权限 → 读取域控本地 Administrator 密码 → 完全控制域。

实际命令示例(PowerView)

cpp 复制代码
# 存储 JDgodd 凭据
$SecPassword = ConvertTo-SecureString 'JDgodd1s@d0p3cr3@t0r' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('streamio\JDgodd', $SecPassword)
​
# 修改所有者为 JDgodd
Set-DomainObjectOwner -Identity 'CORE STAFF' -OwnerIdentity JDgodd -Credential $Cred
​
# 授予 JDgodd 完整 ACL
Add-DomainObjectAcl -TargetIdentity 'CORE STAFF' -PrincipalIdentity JDgodd -Rights All -Credential $Cred
​
# 将 JDgodd 添加为组成员
Add-DomainGroupMember -Identity 'CORE STAFF' -Members 'JDgodd' -Credential $Cred
🏆 内网渗透中的关键作用与防御思考

WriteOwner 在现代域渗透中的地位:

  1. 高隐蔽性:不触发 Kerberoasting 或 Golden Ticket 等传统告警。

  2. 链式提权:常与 LAPS、GPO、组成员等结合,形成从普通域用户到域管的完整路径。

  3. 真实企业常见:运维误配(如将普通组授予 WriteOwner)导致大量存在。

  4. BloodHound 检测:在 BloodHound 中显示为 "WriteOwner" 边,是最常见的提权路径之一。

防御关键点

  • 严格审计 WriteOwner 权限分配。

  • 使用 Tiering 模型隔离管理员权限。

  • 启用 Advanced Audit Policy 监控 Owner 修改事件(Event ID 5136)。

掌握 WriteOwner 滥用,您在内网 ACL 攻击领域已达到高级水平。结合 RBCD、Shadow Credentials 等,您已具备完整现代域渗透能力!

相关推荐
美酒没故事°16 小时前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
为何创造硅基生物17 小时前
ESP32S3的RGB屏幕漂移问题
网络
好运的阿财17 小时前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
航Hang*18 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
周杰伦fans18 小时前
C# required 关键字详解
开发语言·网络·c#
洛水水18 小时前
深入理解网络编程核心:Reactor、IOCP 与异步 IO 模型详解
网络·iocp
favour_you___18 小时前
epoll惊群问题与解决
服务器·网络·tcp/ip·epoll
北方的流星18 小时前
华三网络设备的路由重定向配置
运维·网络·华三
一个欠登儿程序员18 小时前
在国产服务器上通过 Docker 部署 Windows 虚拟机
服务器·windows·docker
.select.18 小时前
TCP 3
服务器·网络·tcp/ip