约束委派攻击

本文深入探讨了Kerberos约束委派的原理,包括S4U2Self和S4U2Proxy机制,以及如何设置和查找约束委派配置。约束性委派限制了服务代表用户访问特定服务的权限,提高了安全性。文章还介绍了攻击者如何利用明文密码或NTLM哈希,甚至直接从内存中获取TGT来模拟用户访问委派服务。
摘要由CSDN通过智能技术生成

0x00 原理

回顾

首先回顾一下什么是委派?

服务/用户

主机名

用户A

hostA

服务B

hostB

服务C

hostC

委派就是用户A委派主机hostB上的服务代表自己去访问了主机hostC上的服务C,委派需要提前在域控上进行配置,它可以理解成是一种权限。

约束性委派原理

由于⾮约束委派的不安全性(配置了⾮约束委派的机器在 LSASS 中缓存了⽤户的 TGT 票据可模拟⽤户去访问域中任意服务),微软在 Windows Server 2003 中引⼊了约束委派,对 Kerberos 协议进⾏拓展,引⼊了 S4U(S4U2Self / S4U2proxy), 这两个扩展都允许服务代表⽤户向 KDC 请求票据。

S4U2self (Service for User to S4U2Self) 可以代表自身请求针对其⾃身的 Kerberos 服务票据(ST);如果⼀个服务账户的 userAccountControl 标志TRUSTED_TO_AUTH_FOR_DELEGATION , 则其可以代表任何其他⽤户获取⾃身服务的 ST。

S4U2proxy (Service for User to Proxy) 可以以⽤户的名义请求其它服务的 ST【读完你会发现这就是前面我们回顾的委派的原理】,而约束委派则是限制了 S4U2proxy 扩展的范围。

约束性委派的大致流程:
用户访问开启约束性委派的服务A
(情况一:无S4U2Self 参与)首先需要经过KDC认证,KDC发现服务A开启了约束性委派,于是在TGS_REP截断返回给用户ST1(可转发ST),用户拿着ST1访问服务A,服务A先与KDC进行身份验证获得一个有效TGT,然后拿着ST1经过S4U2PROXY协议向KDC发起TGS_REQ,KDC返回ST2(用户身份的ST),然后服务A拿着ST2访问之前设置的只能被指定访问的服务。
(情况二:有S4U2Self 参与)用户通过其他方式(如NTLM认证,表单认证等)获取了服务A的信任,但是此时服务A并没有来自用户的ST1,按情况一中的流程,服务A就不能完成委派。所以这个时候服务A会以自己的身份向KDC发起申请获取一个可转发TGT(获取KDC信任࿰

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值