非约束委派获取权限

极客

我的一次内网渗透实战复盘,说多了都是泪啊!

说真的,兄弟们,今天我想跟你们聊聊非约束委派获取权限这个事儿,不是我想聊,是我上周刚踩完这个坑,心里憋得慌,必须得吐槽一下。

非约束委派获取权限

事情是这样的,前阵子接了个内网渗透的活儿,客户环境挺复杂的,域控、Exchange、文件服务器一堆,我一开始想着,常规套路走一遍呗,什么Kerberoasting、AS-REP Roasting,结果扫了半天,没捞着啥有价值的东西,正当我准备换个思路的时候,突然发现了一台机器——配置了非约束委派

你们知道那种感觉吗?就像你翻箱倒柜找了半天钥匙,结果发现钥匙就插在门上,我当时眼睛都亮了。

这里得先给不太熟的兄弟科普一下,非约束委派是个啥玩意儿,简单说,就是域里某台机器被设置成了“信任这台计算机进行任何服务的委派”,啥意思呢?就是当有用户登录到这台机器,或者通过这台机器去访问别的服务时,这台机器会把用户的TGT(票据授予票据)缓存到自己的内存里,注意啊,是缓存到内存,而且这玩意儿谁都能读——只要你权限够。

我当时就琢磨,这要是能拿到这台机器上的TGT,那不就能非约束委派获取权限,直接伪装成域管去访问域控了吗?想想都刺激。

于是我就开始动手了,第一步,先确认这台机器到底是不是真的配置了非约束委派,用PowerView跑了一下:

Get-DomainComputer -Unconstrained | select name

果然,这台机器赫然在列,我当时心里那个激动啊,手都有点抖,接下来就是想办法把这台机器上的TGT薅出来。

这里有个关键点,你得先拿到这台机器的本地管理员权限,或者至少能在这台机器上执行代码,我当时运气不错,之前通过一个弱口令拿下了这台机器的本地管理员,具体咋拿的就不细说了,反正就是常规的横向移动那套。

拿到权限之后,我直接上了Mimikatz,说真的,每次用Mimikatz的时候我都觉得这玩意儿简直是渗透测试界的瑞士军刀,命令很简单:

sekurlsa::tickets /export

跑完之后,内存里缓存的票据就全导出来了,我一看,好家伙,里面还真有一个域管的TGT,那一刻我差点从椅子上跳起来。

但是别急,光有TGT还不够,你还得把这个票据注入到当前会话里,这时候就得用kerberos::ptt命令了:

kerberos::ptt ticket.kirbi

注入成功之后,我试着访问域控的C$共享:

dir \\dc.domain.com\c$

啪的一下,直接进去了,那种感觉,就像你试了十几次密码终于登上了好久没用的QQ号,爽得不行。

然后我就用这个权限,直接非约束委派获取权限,把域管的所有权限都拿到了,DCSync、Golden Ticket,想干啥干啥,客户那边看完报告,直接竖大拇指,说没想到这么快就拿到域控了。

兄弟们,我得说但是了,虽然过程听起来很爽,但其实这里面坑也不少。

第一个坑,就是非约束委派获取权限这个操作,其实特别依赖运气,你得正好有一台配置了非约束委派的机器,还得正好有域管登录过这台机器,还得正好你没被EDR或者杀软逮住,这三个“正好”凑齐了,才能成事,我这次是运气好,下次呢?谁说得准。

第二个坑,就是票据的有效期,TGT默认是10小时,你要是磨磨蹭蹭的,票据过期了,那就白忙活了,我当时就是差点因为这个翻车,幸亏手快。

第三个坑,也是最要命的——非约束委派获取权限虽然猛,但动静也大,你想想,你突然用域管的票据去访问域控,日志里能不留下痕迹吗?客户的安全团队要是稍微有点水平,分分钟就能发现异常,所以这招适合啥?适合那种时间紧、任务重、客户对隐蔽性要求不高的场景,要是真遇上那种有高级威胁检测的环境,我劝你还是老老实实走约束委派或者基于资源的约束委派吧,别头铁。

说到这儿,我得提一嘴,现在微软其实已经意识到非约束委派的风险了,新版本的Windows默认都不启用这玩意儿了,但是架不住老环境多啊,很多企业内网里还留着这玩意儿,就跟定时炸弹似的,你要是渗透测试的时候发现了,千万别客气,直接上。

最后总结一下吧。非约束委派获取权限这招,说白了就是利用Windows域环境里的一个历史遗留问题,它好用吗?好用,它危险吗?危险,它适合什么时候用?适合你实在没别的路子的时候,反正我这次是尝到甜头了,但也吓出一身冷汗,下次再遇到,我估计还是会用,但肯定会更小心。

好了,今天就唠到这儿,兄弟们要是也有类似的经历,欢迎评论区交流,别忘了,渗透测试是为了帮客户发现问题,不是为了炫技,咱们下回见!

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]