电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 681 人浏览分享

RBCD深度利用之“烂番茄”

[复制链接]
681 0
1.RBCD简介

本篇文章是在基于资源的约束委派的基础上的一个利用,篇幅会比较短,但个人认为利用面还是挺广泛的于是就写一下。

首先,需要了解的是RBCD的基础知识:

可以参考我的这本篇文章,如果你还不了解Kerberos,可以看一下这篇

简单回顾一下:

QQ截图20220729094810.png

基于资源的约束委派(RBCD)只支持2012及2012以上,它与非约束委派,约束委派有个一个很大的区别,就是不需要管理员去单独
配置RBCD把设置的权限给了计算机本身,那么,既计算机本身可以决定‘我’可以委派谁来控制我,换句话说就是计算机自身可
以直接在自己账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD。

2.S4U2Self和S4U2Proxy

既然是RBCD,就一定绕不开两个协议,S4U2Self和S4U2Proxy,这两个协议的作用主要是解决计算机以自己
身份申请票据已达到完成认证的目的。

2.1.S4U2Self

S4U2Self
通过此扩展可以拿到一张标识任意用户身份的ST,使用S4U2Self的原因,是因为,如果用户非Kerberos协议登录网站那么就涉
及到协议转换的问题,因此需要使用S4USelf。如果用户是使用Kerberos协议进行认证并登录该服务器的,那么,在该服务器上
会有该用户的ST,就不需要使用S4USelf去申请ST,直接使用该的ST。这个协议的本质,其实是解决协议转换问题。当该用户
user使用非Kerberos协议请求Server A的时候,Server A是没有user用户的ST的,但是Server A要去获取Server B的访问权
限需要user用户的ST,因此S4U2Self解决了这个问题,Server A服务器可以使用它去向KDC请求一张user身份的ST,Server
A服务器再用这张ST去发起S4U2proxy请求。

S4U2proxy

该拓展作用是使用一张user用户身份的ST去向KDC请求一张用于访问Server B的ST,这张ST的身份还是user用户
这样Server A就可以利用uesr用户的权限去访问Server B上的文件了。

3.msDS-AllowedToActOnBehalfOfOtherIdentity

默认情况下,属性在ldap中是查不到的,需要单独配置才可以。谁配置了msDS-AllowedToActOnBehalf
OfOtherIdentity属性,就说明谁配置了RBCD。

1658110351_62d4c18f10fc9c3404b72.png

msDS-AllowedToActOnBehalfOfOtherIdentity的values是这样的:
O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;serverA的sid)
其中O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO未固定写法,;;;后面为被委派的用户的SID
如上图,values:D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21
-5199876-230042057-2391242617-1113)
说明:CN=SR,CN=Computers,DC=test,DC=org配置了S-1-5-21-5199876-2300
42057-2391242617-1113的委派

针对这,可以根据rabbit大佬的思路来理解:配置了msDS-AllowedToActOnBehalfOfOtherIdentity,values指向
域内某个用户,就可以理解为,该计算机将鉴定权能力交出去,相当于 该计算机完全信任委派的用户。

按照上图就是:

CN=SR,CN=Computers,DC=test,DC=org配置了S-1-5-21-5199876-230042057-2391242617-1113的委派就相
当于CN=SR,CN=Computers,DC=test,DC=org信任S-1-5-21-5199876-230042057-2391242617-1113

3.1.谁可以配置?

既然知道了配置了RBCD的具体表现以及含义,那么问题来了,谁能修改msDS-AllowedToActOnBeha
lfOfOtherIdentity的values准确的来讲,应该是:谁可以添加msDS-AllowedToActOnBehalfOfOther
Identity的values并修改values

这里直接抛结论:

机器用户

mS-DS-CreatorSID 账号(mS-DS-CreatorSID的valuse的值对应的objectSid)

4.攻击利用

这里复盘一下攻击步骤:

第一步,连接域控ldap创建计算机账户xiaolongxia
第二步,通过ldap协议在域控上设置sr的msds-allowedtoactonbehalfofotheridentity的值为O:BAD:(A;;CCD
CLCSWRPWPDTLOCRSDRCWDWO;;;xiaolongxia的sid)
第三步,使用xiaolongxia凭据拿到一张TGT

QQ截图20220729101350.png

该工具集成上面的前三步,唯一不同的是,该工具将所有计算机的msds-allowedtoactonbehalfofotheridentity
的值都设置成了新建的机器用户xiaolongxia

PS:这里感谢rabbit师傅提供的工具

第四步,使用s4u2self代表administrator拿到一张ST

第五步,拿从s4u2self那里获取到的ST作为验证信息再去请求一张用于访问sr机器CIFS spn的ST票据。

1658110598_62d4c286428843b532013.png

第六步,提升权限

999.png

5.数据包分析

这里只简单看一下几个数据包

998.png

这个数据包,表示第三步:使用xiaolongxia凭据拿到一张TGT

997.png

996.png

991.png

这里表示,通过s4u2self代表administrator拿到一张ST,对自己进行请求。其中,从s4u2self申请ST所需要的TGT
它放在了TGQ-REQ -> padata -> PA-DATA PA-TGS-REQ ->padata-value->ap-req 结构体中

990.png

拿到的ST是由xiaolongxia的hash加密,s4u2self这个步骤作用是xiaolongxia拿自己的tgt票据请求一张访问
xiaolongxia的ST,且该ST的身份是administrator,而这张ST是用xiaolongxia的hash加密的

899.png

最后一步,我们拿从s4u2self那里获取到的ST作为验证信息再去请求一张用于访问sr机器CIFS spn的ST
票据也就是s4u2proxy这一步。

6.攻击面

企业可能会有一个专门的账号,用来拉新用户加入域,该账号通常只有普通域用户权限如果我们控制了这个账户呢?

当我们渗透进入一个域环境,发现并没有足够的权限扩,行动有限,那么我们可以查看,当前机器是谁
拉进来的如果我们能控制该用户呢?

一个域用户X可能会在域中创建多台机器(比如笔记本和台式机都需要加入域),当我们有了改用户的权限时可以
利用RBCD继续攻击其他mS-DS-CreatorSID是该域用户的机器。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.