基于资源约束的委派 (RBCD) 利用细节

RBCD (Resource-Based Constrained Delegation) 是一种允许资源所有者(服务)自主决定谁可以委派给它的安全机制。其核心在于目标计算机对象的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性。如果计算机 A 的该属性中包含了账户 B 的 SID,那么账户 B 就可以代表任意域用户向计算机 A 申请服务票据。


1. 核心原理

与传统委派不同,RBCD 将控制权从"前端服务"转移到了"后端资源"。

  • 配置位置:目标机器(资源)的属性上,而非发起委派的用户上。
  • 鉴权逻辑 :当一个用户尝试访问服务 A 时,如果 A 拥有目标机器 B 的 RBCD 配置权限,A 就可以通过 S4U2selfS4U2proxy 协议流程,代表任意域用户(包括域管)获取访问 B 的 Service Ticket。
  • 权限需求 :修改该属性需要对目标计算机对象拥有 GenericAllGenericWriteWriteProperty 权限。

2. 利用细节分析

A. 常规打法:利用 MachineAccountQuota (MAQ)

这是最通用的路径。

  • 原理 :默认情况下,普通域用户可以将最多 10 台机器(MAQ 默认值为 10)加入域。
  • 细节
    1. 利用现有权限创建一个伪造的机器账户(具有 SPN)。
    2. 利用对目标机器的 WriteProperty 权限,将该伪造机器账户的 SID 写入目标机器的 msDS-AllowedToActOnBehalfOfOtherIdentity
    3. 使用伪造机器账户发起 S4U 请求。
B. 有 SPN 修改权限:绕过 MAQ 限制

MAQ=0 时,无法新建机器账户,此时需寻找"现成"账户。

  • 原理 :RBCD 要求发起委派的对象必须拥有 ServicePrincipalName (SPN)
  • 细节
    1. 如果你对某个普通域用户有 Validated write to service principal name 权限。
    2. 手动为其添加一个任意 SPN,使其在逻辑上具备"服务账户"的特征。
    3. 将其 SID 写入目标机器的 RBCD 属性,从而完成委派。
C. 有密码修改权限 (SetNTLMHash):S4U + U2U

这是一种高级利用方式,通常配合 Shadow CredentialsGenericAll 权限。

  • 原理 :利用 U2U (User-to-User) 身份验证获取初始凭据,再通过 S4U (Service for User) 协议完成转换。
  • 细节
    1. 当你拥有 SetNTLMHash 权限时,可以直接同步或修改该用户的哈希。
    2. 利用该账户的哈希,通过 S4U2self 模拟高权限用户。
    3. 由于普通用户没有 SPN 无法直接执行 S4U2proxy,通过 U2U 封装票据,可以强制目标资源接受该委派请求。

3. 关键属性对比

利用点 核心前提 目标属性
MAQ 路径 MAQ > 0 目标机器的 msDS-AllowedToActOnBehalfOfOtherIdentity
SPN 路径 WriteProperty (SPN) 使普通用户具备 Service 身份
U2U 路径 SetNTLMHash / GenericAll 解决普通用户(无 SPN)的身份模拟问题

提示 :RBCD 的防御重点在于监控域内计算机对象的属性变更,以及严格控制 MachineAccountQuota 的值(建议设为 0)。

相关推荐
王二端茶倒水19 小时前
从千兆到万兆:宽带运营不能只卖套餐,要管用户生命周期从千兆到万兆:宽带运营需要管理用户生命周期
后端·网络协议·架构
extrao3 天前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
不做菜鸟的网工5 天前
BGP特性
网络协议
明月_清风7 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假7 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
王二端茶倒水8 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816088 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水9 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议