前言
域委派是指将域账号的权限委派给服务账号,使得服务账号能模拟域账号的权限开展域内活动。非受限委派中,服务账号可以获取请求账号的TGT票据,利用该票据模拟请求账号访问服务。
正文
非约束委派具体实现步骤:
当uesr去访问server1的时候,会先向DC发起服务,如果service1的服务账号开启了unconstrained delegation(非约束委派),那么DC就会把user的TGT放在ST票据中发送给server1,server1验证完了ST票据之后,就会把user的TGT转存在自己的lsass的内存中去,这样server1就可以拿着TGT去访问user可以访问的服务了。
利用条件:
机器账户开启了非约束委派,服务账户可以不用开启。
环境搭建:
给账号设置属性
查找非约束委派的主机可以利用adfind、ldapsearch、powerview
其命令分别如下:
AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
ldapsearch:
查找用户:
ldapsearch -x -H ldap://192.168.52.138:389 -D "CN=liukaifeng01,CN=Users,DC=god,DC=org" -w 123.com -b "DC=god,DC=org" "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" |grep -iE "distinguishedName"
查找机子:
ldapsearch -x -H ldap://192.168.52.138:389 -D "CN=liukaifeng01,CN=Users,DC=god,DC=org" -w 123.com -b "DC=god,DC=org" "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" |grep -iE "distinguishedName"
powerview:
查找服务账号:
Get-NetUser -Unconstrained -Domain god.org | select name
查机器账户:
Get-NetComputer -Unconstrained -Domain god.org
主动访问
导出凭据
成功
这个需要访问
接下来查看一下利用打印机服务漏洞的方法
先设置:
查看服务有没有开启
Rubeus打开监听域控
利用exp访问
这里需要重新编译一下,直接用网上的可执行文件失败了
这里是利用成功的
接收到票据
写入文件
导入票据
dcsync读取
之后还可以做权限维持
我们最后来看一下关于非约束委派的过程:
1.用户机器向KDC(密钥分发中心)发送消息请求可转发的TGT1(认证票据)
2、KDC在消息中给返回TGT1(访问服务1使用)
3、用户通过TGT1请求转发TGT2(访问服务2使用)
4、KDC返回消息TGT2
5、用户使用TGT1向KDC申请访问服务1
6、TGS(票据发放服务)返回ST(服务票据)
7、用户发送AP_REQ请求服务1,包含了TGT1、TGT2、TGT2的sessionkey
8、服务1使用用户发送过来的TGT2请求KDC,并以用户身份请求服务2的ST
9、KDC返回服务2的ST到服务1,这里ST将来源请求标记为用户机器,而不是服务1
10、服务1以用户名义请求服务2
11、服务2回应服务2请求
12、服务1回应用户机器请求
13、服务1能够向KDC请求其他服务ST
14、KDC返回其他服务ST
15、服务1用用户名义请求其他服务
16、其他服务回应服务1
参考:星期五实验室
原文始发于微信公众号(Th0r安全):带你认识非约束委派
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论