2025-5-12渗透测试:S4U2(Service for User)协议的利用步骤和CVE-2021-42278(名称伪装漏洞)分析(随笔)

一、S4U2协议(Service for User)

  • 两种扩展协议

    • S4U2Self
      服务代表用户向KDC申请访问自身的票据(无需用户密码),适用于服务需验证用户身份的场景(如Web应用)。
      • 触发条件:服务配置了约束委派(Constrained Delegation)。
    • S4U2Proxy
      服务将用户的票据转发给其他服务(代理),实现跨服务身份传递(如数据库访问后端API)。
      • 依赖条件:服务需被信任可委派(TrustedToAuthForDelegation)。
  • 在无法直接接触域控时,通过控制一个具有委派权限的服务账户(如SQL Server),转发用户请求获取高权限票据。

二、S4U2Self 利用步骤

服务代表用户向KDC申请访问自身的票据(无需用户密码),适用于服务需验证用户身份(如Web应用)。
前提条件

  • 服务账户已配置 约束委派(Constrained Delegation) 或 基于资源的约束委派(RBCD)
  1. 获取服务账户的哈希或密码

  2. 请求S4U2Self票据

    1. 使用服务账户的哈希,向KDC请求一个可转发的TGS(Service Ticket)给目标用户(如administrator
  3. 验证票据

    1. 查看缓存的票据是否包含目标用户的身份

三、S4U2Proxy 利用步骤

服务将用户的票据转发给其他服务(代理),实现跨服务身份传递(如数据库访问后端API)。
前提条件

  • 服务账户配置了 信任委派(TrustedToAuthForDelegation) 或 基于资源的约束委派(RBCD)
  1. 控制具有委派权限的服务账户

    • 通过漏洞(如PrivExchange)获取可委派的服务账户权限。
    • 查询域内配置了委派的服务账户
  2. 获取用户的可转发TGS

    • 利用S4U2Self生成可转发的TGS。
  3. 转发票据到目标服务

    • 使用S4U2Proxy将TGS转发到目标服务(如域控的LDAP服务)
    • 票据将自动注入内存,可直接访问目标服务。

四、基于资源的约束委派(RBCD)利用

当服务账户无法直接配置传统委派时,通过RBCD劫持。

  1. 获取对目标服务的写权限

    • 通过ACL滥用或漏洞(如ADCS ESC1)获取修改目标服务(如域控)msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限。
  2. 配置RBCD

    • 添加服务账户到目标服务的委派列表
  3. 利用S4U2Proxy提权

    • 使用服务账户申请访问目标服务的票据


以下是关于 2021年两个Kerberos漏洞(名称伪装与KDC欺骗)的联合利用分析,结合Active Directory(AD)的机制展开说明


CVE-2021-42278(名称伪装漏洞)漏洞原理

  1. 名称伪装(SAM-Account-Name Spoofing)

    • Active Directory(AD)允许计算机账户的 ​sAMAccountName​属性包含多个 ​$​符号(如 ​DC01$$​),但Kerberos协议在验证时可能错误地将此类名称解析为合法域控账户(如 ​DC01$​)。
    • 关键缺陷:KDC(密钥分发中心)未严格校验计算机账户名称的唯一性,导致攻击者可伪造高权限账户(如域控)的身份。
  2. 与CVE-2021-42287的关联

    • 需结合 CVE-2021-42287(KDC欺骗漏洞) 完成攻击链:
      1. 名称伪装:创建伪装成域控的计算机账户(如 ​DC01$$​)。
      2. KDC欺骗:诱导服务或用户向伪造的KDC请求票据,生成高权限ST(服务票据)。

漏洞复现步骤

 

noPac.exe -domain htb.local -user domain_user -pass 'Password123!' /dc dc02.htb.local /mAccount demo123 /mPassword Password123! /service cifs /ptt
参数说明
​-domain htb.local目标域名。
​-user domain_user普通域用户账号(需具备创建计算机账户的权限)。
​-pass 'Password123!'对应用户的密码。
​/dc dc02.htb.local指定域控制器的主机名。
​/mAccount demo123攻击者创建的恶意计算机账户名称(用于名称伪装)。
​/mPassword Password123!恶意计算机账户的密码。
​/service cifs目标服务(通常为 ​cifs​ 以访问文件共享)。
​/ptt将生成的票据注入当前会话(Pass-the-Ticket)。

创建恶意计算机账户
  • 绕过机制:AD默认允许 ​$​符号重复,且部分工具(如 ​nltest​)会误判 ​FAKEDC$$​为合法域控。
请求伪造的TGT
  • 结果:KDC返回一个看似合法的TGT,但实际由攻击者控制的账户签发。
结合S4U2Self获取高权限ST
  • 关键点:KDC因名称解析错误,误认为 ​FAKEDC$$​是域控,从而签发域管理员权限的ST。 

漏洞影响

  • 权限提升:普通域用户可伪造域控账户,获取域管理员权限。
  • 隐蔽性:攻击无需直接接触域控,且日志中可能仅记录为普通计算机账户活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值