欢迎光临
我们一直在努力

内网---> WriteDacl权限滥用

目录

✏️ WriteDacl权限全面扩展解析

🌐 WriteDacl底层原理详解

⚔️ 内网渗透中的关联与利用场景

🛠️ 详细利用步骤(以WriteDacl对高权限用户/组为例)

👑 MemberOf权限全面扩展解析

🌐 MemberOf底层原理详解

⚔️ 内网渗透中的关联与利用场景

🛠️ 详细利用步骤(间接利用MemberOf – 添加自己到组)

📌 典型实际案例:StreamIO HTB中的WriteDacl与MemberOf利用


✏️ WriteDacl权限全面扩展解析

WriteDacl是Active Directory中最危险的扩展权限之一,允许主体直接修改目标对象的DACL(Discretionary Access Control List,自主访问控制列表)。拥有此权限相当于完全掌控目标对象的安全描述符,可任意授予或剥夺权限。

🌐 WriteDacl底层原理详解

  • AD安全描述符结构:每个AD对象都有一个Security Descriptor,包括Owner、DACL和SACL。DACL决定“谁能做什么”(允许/拒绝访问),SACL负责审计日志。

  • WriteDacl扩展权限GUID:固定为00000000-0000-0000-0000-000000000001(实际上是全零,但文档中常以此表示),属于最高级Extended Right。

  • 权限生效机制:WriteDacl允许主体添加、删除或修改DACL中的ACE(Access Control Entry)。一旦授予,可给自己或他人添加FullControl、DCSync、WriteOwner等任意权限。

  • 硬编码特性:即使对象有显式Deny条目,WriteDacl仍可覆盖。Owner隐式拥有WriteDacl,但WriteDacl可独立授予。

  • BloodHound识别:SharpHound查询对象ACL中包含WriteDacl的ACE,生成WriteDacl边。高价值目标包括域对象、管理员组、GPO等。

  • ⚔️ 内网渗透中的关联与利用场景

    WriteDacl是“万能钥匙”权限,常用于直接提权或持久化。

  • 直接完全控制:给自己添加FullControl,实现Owns级别支配。

  • 特权权限授予:添加DCSync(域复制)、ReadLAPSPassword、ForceChangePassword等,实现无声提权。

  • 后门与持久化:添加隐蔽账户到管理员组,或删除审计ACE隐藏痕迹。

  • 防御绕过:可移除安全工具的监控权限,或添加Deny给防御账号。

  • 链式攻击:常与其他路径结合,如WriteOwner后进一步WriteDacl。

  • 🛠️ 详细利用步骤(以WriteDacl对高权限用户/组为例)

    假设攻击者控制普通用户,并在BloodHound中发现该用户 → WriteDacl → Administrator@STREAMIO.HTB。

  • 确认权限:使用PowerView验证WriteDacl ACE存在。

  • 准备工具:上传PowerView.ps1或使用AD模块。

  • 授予自己FullControl:核心提权步骤。

  • 进一步滥用:添加DCSync或加入高权限组。

  • 清理痕迹:可选删除审计日志ACE。

    #/*
    ———————
    间接利用MemberOf – 添加自己到高权限组(PowerView示例)
    参数1:-Identity:目标组(如Administrators或Domain Admins)
    参数2:-Members:要添加的攻击者账户

    1. 通过GenericWrite或WriteDacl权限修改member属性
    2. 实现MemberOf关系,建立权限继承
    3. 验证组成员变更
    —————-
    */

    # 步骤1:导入PowerView
    Import-Module .\\PowerView.ps1

    # 步骤2:将攻击者账户添加到目标组(核心步骤)
    Add-DomainGroupMember -Identity "Administrators" -Members "ATTACKER_USER" # ATTACKER_USER成为成员

    # 步骤3:验证MemberOf关系建立
    Get-DomainGroupMember -Identity "Administrators" | Select MemberName # 查看新成员列表

    # 步骤4:测试继承权限(如读取LAPS)
    Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwd # 若组有ReadLAPSPassword,应成功读取

  • 👑 MemberOf权限全面扩展解析

    MemberOf是BloodHound中最常见的边,表示主体是目标组的直接成员,从而继承该组的所有委托权限和ACE。它不是“权限”,而是关系边,但却是权限传播的核心机制。

    🌐 MemberOf底层原理详解

  • 组成员存储:组对象的member属性(多值属性)存储成员DN(Distinguished Name)。成员变更立即生效。

  • 权限继承机制:AD通过组嵌套和委托实现权限传播。成员自动继承组的所有ACE(包括Extended Rights和委托权限)。

  • 嵌套与传递:支持组嵌套(如A组成员是B组,继承B组权限)。BloodHound会展开显示最终继承路径。

  • BloodHound收集:SharpHound直接读取member属性生成MemberOf边,常作为查询起点(如“所有Domain Admins成员”)。

  • 与其它边的关系:MemberOf是权限的“终点”,攻击者常通过WriteOwner/WriteDacl/GenericWrite等方式间接实现“添加自己到组”。

  • ⚔️ 内网渗透中的关联与利用场景

    MemberOf本身不可直接滥用(需写权限才能修改member属性),但作为路径终点极具价值。

  • 权限继承起点:普通用户是高权限组成员 → 直接提权。

  • 攻击目标:通过其他权限(如GenericWrite)添加自己到目标组。

  • 路径分析:BloodHound最短路径常以MemberOf高权限组结束。

  • 持久化:攻击者加入管理员组后,即使原始入口失效,仍保留权限。

  • 🛠️ 详细利用步骤(间接利用MemberOf – 添加自己到组)

    MemberOf本身不可直接利用,但常见方式是通过GenericWrite或WriteDacl添加成员。以下以GenericWrite为例(常见于滥用)。

  • 发现路径:BloodHound显示攻击者控制用户 → GenericWrite → 高权限组。

  • 执行添加:使用PowerView修改member属性。

  • 验证继承:检查新权限生效。

  • #/* ——————— 间接利用MemberOf – 添加自己到高权限组(PowerView示例) 参数1:-Identity:目标组(如Administrators或Domain Admins) 参数2:-Members:要添加的攻击者账户 1. 通过GenericWrite或WriteDacl权限修改member属性 2. 实现MemberOf关系,建立权限继承 3. 验证组成员变更 —————- */ # 步骤1:导入PowerView Import-Module .\\PowerView.ps1 # 步骤2:将攻击者账户添加到目标组(核心步骤) Add-DomainGroupMember -Identity "Administrators" -Members "ATTACKER_USER" # ATTACKER_USER成为成员 # 步骤3:验证MemberOf关系建立 Get-DomainGroupMember -Identity "Administrators" | Select MemberName # 查看新成员列表 # 步骤4:测试继承权限(如读取LAPS) Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwd # 若组有ReadLAPSPassword,应成功读取

    📌 典型实际案例:StreamIO HTB中的WriteDacl与MemberOf利用

  • WriteDacl场景:攻击者通过前期路径获得对Administrator用户或高权限组的WriteDacl权限。

  • 直接提权:使用Add-DomainObjectAcl授予自己FullControl或DCSync,实现域对象完全控制。

  • MemberOf场景:攻击者通过WriteDacl/WriteOwner等方式将自己添加到Administrators或CORE STAFF组(MARTIN原本是成员)。

  • 完整链路:前期HasSession横向到域控 → WriteOwner/Owns提权到CORE STAFF → 继承ReadLAPSPassword → 结合MemberOf关系读取域控LAPS → 本地Administrator登录 → 最终通过MemberOf Domain Admins(或直接WriteDacl添加)实现域接管。

  • 案例关键:MARTIN作为Administrators组成员继承高权限,但攻击者通过WriteDacl绕过,直接在Administrator对象上植入后门,避免依赖原始成员关系。

  • 此路径展示了WriteDacl的毁灭性:一旦获得,几乎无解;MemberOf则是权限继承的自然结果,常作为攻击终点被蓝队重点监控。

    赞(0)
    未经允许不得转载:171主机测评 » 内网---> WriteDacl权限滥用
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址