RBCD深度利用之“烂番茄”
字数 1830 2025-08-12 11:34:00

基于资源的约束委派(RBCD)深度利用指南

1. RBCD基础概念

1.1 RBCD简介

基于资源的约束委派(Resource-Based Constrained Delegation, RBCD)是Windows Server 2012及更高版本支持的一种委派机制,与非约束委派和约束委派相比有以下关键区别:

  • 配置权限下放:RBCD将设置权限赋予计算机本身,计算机可以自主决定谁可以委派控制它
  • 无需管理员干预:计算机可以直接在自己的账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD
  • 更细粒度控制:委派关系存储在资源账户上,而非客户端账户上

1.2 核心协议:S4U2Self和S4U2Proxy

S4U2Self

  • 作用:获取标识任意用户身份的ST(Service Ticket)
  • 使用场景:当用户使用非Kerberos协议登录网站时,解决协议转换问题
  • 本质:服务器可以使用它向KDC请求一张用户身份的ST,即使该用户未通过Kerberos认证

S4U2Proxy

  • 作用:使用用户身份的ST向KDC请求访问另一服务的ST
  • 工作流程:服务器利用用户ST获取访问目标服务的ST,保持用户身份不变

2. RBCD关键属性分析

2.1 msDS-AllowedToActOnBehalfOfOtherIdentity

  • 默认状态:LDAP中不可见,需单独配置

  • 属性值格式

    O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;[被委派用户的SID])
    

    示例:

    D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-5199876-230042057-2391242617-1113)
    
  • 安全含义:配置此属性意味着计算机完全信任被委派的用户

2.2 配置权限

可以修改msDS-AllowedToActOnBehalfOfOtherIdentity值的账户:

  1. 机器账户本身
  2. mS-DS-CreatorSID属性对应的账户(即创建该计算机账户的用户)

3. RBCD攻击利用详解

3.1 攻击步骤

  1. 创建计算机账户

    • 连接域控LDAP创建新的计算机账户(如xiaolongxia)
  2. 设置RBCD属性

    • 通过LDAP协议在目标计算机(如sr)上设置msDS-AllowedToActOnBehalfOfOtherIdentity属性值为新建计算机账户的SID
  3. 获取TGT

    • 使用新建计算机账户(xiaolongxia)的凭据获取TGT(Ticket Granting Ticket)
  4. S4U2Self请求

    • 使用获取的TGT代表管理员(如administrator)获取ST
  5. S4U2Proxy请求

    • 使用S4U2Self获取的ST作为验证信息,请求访问目标计算机CIFS SPN的ST票据
  6. 权限提升

    • 使用获取的ST票据访问目标计算机资源,实现权限提升

3.2 数据包分析要点

  1. TGT获取数据包

    • 显示使用新建计算机账户凭据获取TGT的过程
  2. S4U2Self数据包

    • TGT放在TGQ-REQ -> padata -> PA-DATA PA-TGS-REQ ->padata-value->ap-req结构体中
    • 获取的ST由新建计算机账户的hash加密
    • ST身份为目标用户(如administrator),但由新建账户加密
  3. S4U2Proxy数据包

    • 使用S4U2Self获取的ST请求访问目标服务的ST

4. 攻击面分析

4.1 常见可利用场景

  1. 域加入账户被控

    • 企业可能有专门账户用于将新计算机加入域
    • 该账户通常只有普通域用户权限
    • 控制此账户可攻击其创建的计算机
  2. 多设备用户账户

    • 域用户可能在域中创建多台计算机(如笔记本和台式机)
    • 控制该用户可攻击其mS-DS-CreatorSID指向的所有计算机

4.2 防御建议

  1. 监控计算机账户创建

    • 特别关注普通用户创建的计算机账户
  2. 限制mS-DS-CreatorSID权限

    • 审查并限制创建计算机账户的用户权限
  3. 审计RBCD配置

    • 定期检查msDS-AllowedToActOnBehalfOfOtherIdentity属性配置
  4. 实施最小权限原则

    • 限制普通用户创建计算机账户的能力

5. 技术总结

RBCD攻击的核心在于利用计算机账户自配置委派关系的特性,通过控制创建计算机账户的权限或计算机账户本身,设置恶意委派关系,最终获取高权限服务的访问权限。这种攻击方式在域渗透中特别有效,因为它:

  1. 不需要域管理员权限
  2. 可以横向移动到其他系统
  3. 利用的是Windows设计特性而非漏洞

理解RBCD机制对于红队攻击和蓝队防御都具有重要意义。

基于资源的约束委派(RBCD)深度利用指南 1. RBCD基础概念 1.1 RBCD简介 基于资源的约束委派(Resource-Based Constrained Delegation, RBCD)是Windows Server 2012及更高版本支持的一种委派机制,与非约束委派和约束委派相比有以下关键区别: 配置权限下放 :RBCD将设置权限赋予计算机本身,计算机可以自主决定谁可以委派控制它 无需管理员干预 :计算机可以直接在自己的账户上配置 msDS-AllowedToActOnBehalfOfOtherIdentity 属性来设置RBCD 更细粒度控制 :委派关系存储在资源账户上,而非客户端账户上 1.2 核心协议:S4U2Self和S4U2Proxy S4U2Self 作用 :获取标识任意用户身份的ST(Service Ticket) 使用场景 :当用户使用非Kerberos协议登录网站时,解决协议转换问题 本质 :服务器可以使用它向KDC请求一张用户身份的ST,即使该用户未通过Kerberos认证 S4U2Proxy 作用 :使用用户身份的ST向KDC请求访问另一服务的ST 工作流程 :服务器利用用户ST获取访问目标服务的ST,保持用户身份不变 2. RBCD关键属性分析 2.1 msDS-AllowedToActOnBehalfOfOtherIdentity 默认状态 :LDAP中不可见,需单独配置 属性值格式 : 示例: 安全含义 :配置此属性意味着计算机完全信任被委派的用户 2.2 配置权限 可以修改 msDS-AllowedToActOnBehalfOfOtherIdentity 值的账户: 机器账户本身 mS-DS-CreatorSID 属性对应的账户(即创建该计算机账户的用户) 3. RBCD攻击利用详解 3.1 攻击步骤 创建计算机账户 连接域控LDAP创建新的计算机账户(如 xiaolongxia ) 设置RBCD属性 通过LDAP协议在目标计算机(如 sr )上设置 msDS-AllowedToActOnBehalfOfOtherIdentity 属性值为新建计算机账户的SID 获取TGT 使用新建计算机账户( xiaolongxia )的凭据获取TGT(Ticket Granting Ticket) S4U2Self请求 使用获取的TGT代表管理员(如 administrator )获取ST S4U2Proxy请求 使用S4U2Self获取的ST作为验证信息,请求访问目标计算机CIFS SPN的ST票据 权限提升 使用获取的ST票据访问目标计算机资源,实现权限提升 3.2 数据包分析要点 TGT获取数据包 显示使用新建计算机账户凭据获取TGT的过程 S4U2Self数据包 TGT放在 TGQ-REQ -> padata -> PA-DATA PA-TGS-REQ ->padata-value->ap-req 结构体中 获取的ST由新建计算机账户的hash加密 ST身份为目标用户(如administrator),但由新建账户加密 S4U2Proxy数据包 使用S4U2Self获取的ST请求访问目标服务的ST 4. 攻击面分析 4.1 常见可利用场景 域加入账户被控 企业可能有专门账户用于将新计算机加入域 该账户通常只有普通域用户权限 控制此账户可攻击其创建的计算机 多设备用户账户 域用户可能在域中创建多台计算机(如笔记本和台式机) 控制该用户可攻击其 mS-DS-CreatorSID 指向的所有计算机 4.2 防御建议 监控计算机账户创建 特别关注普通用户创建的计算机账户 限制 mS-DS-CreatorSID 权限 审查并限制创建计算机账户的用户权限 审计RBCD配置 定期检查 msDS-AllowedToActOnBehalfOfOtherIdentity 属性配置 实施最小权限原则 限制普通用户创建计算机账户的能力 5. 技术总结 RBCD攻击的核心在于利用计算机账户自配置委派关系的特性,通过控制创建计算机账户的权限或计算机账户本身,设置恶意委派关系,最终获取高权限服务的访问权限。这种攻击方式在域渗透中特别有效,因为它: 不需要域管理员权限 可以横向移动到其他系统 利用的是Windows设计特性而非漏洞 理解RBCD机制对于红队攻击和蓝队防御都具有重要意义。