点我
约束性委派攻击
委派设置
约束性委派的设置分为两种:
- 仅使用Kerberos
- 可以使用任何身份协议
约束性委派需要指定委派的机器和协议必须设置
设置对象
约束性委派在域控上设置的对象分为两种
1、机器账户
2、注册了SPN的域用户
约束性委派模型
流量分析
当前环境
在zhong-PC计算机中设置了约束性委派,然后访问zhangsan-PC的CIFS服务
必须要勾选使用任何身份验证协议
选择"仅使用kerberos",即选择constrained delegation权限(S4U2Proxy)。
该选项下的"使用任何身份验证协议"则是protocol transition权限(S4U2self)。
使用Rubeus.exe工具完成
Rubeus.exe s4u /user:SERVER-16$ /rc4:9aac8b558918b3c18afc9f8182011376 /domain:xbxaq.com /msdsspn:CIFS/zhangsan.xbxaq.com /impersonateuser:administrator /ptt
- user:设置委派计算机的机器用户
- rc4:user账户的hash值
- doamin:域名
- msdsspn:访问的目标的服务地址
- impersonateuser:需要委派的用户
这个工具发送命令后,共有6个kerberos数据包
第一条数据 AS-REQ
第一条数据包为当前计算机的机器用户身份信息,请求自己的TGT,请求的这个TGT是可以转发的。
该TGT是可以转发的
第二条数据 AS-REP
该条数据返回的是SERVER-16$用户的TGT票据(可以转发的TGT)
第三条数据 TGS-REQ
该条数据包是利用上一步得到的SERVER-16$的TGT(在数据包内),然后以administrator身份向TGS申请 一个自身的票据(ST),这里使用的是S4U2Self协议。
第四条数据 TGS-REP
该数据包为返回给该机器一张administrator用户访问本计算机的ST票据
第五条数据 TGS-REQ
SERVER-16$用户得到ST票据之后,以该ST票据作为证据,向TGS申请一张administrator用户访问zhangsan-PC的CIFS服务的ST票据
第六条数据 TGS-REP
返回给本计算机,以administrator用户身份访问zhangsan-PC的CIFS票据
存在的问题解决
- 服务账号B可以代表用户A向KDC申请访问B的票据,那么服务账号B能否代表域内管理员向KDC申请访问B的票据呢?
在这个过程中,不需要域内管理员的参与,在服务账号B自身就可以完成 服务账号B可以代表用户A向KDC申请访问C的票据,那么服务账号B能否代表域内管理员向KDC申请访问C的票据呢?
在这个过程中,不需要域内管理员的参与,在服务账号B自身就可以完成
问题解决
- 只需要知道服务账户的密码或者hash值就可以申请任意用户访问自身的票据(ST1票据)
- 使用ST1票据就可以申请任意用户访问委派的目标服务的票据(ST2)
约束性委派攻击的前提
- 知道设置约束性委派的用户名和密码(或者hash值)
- 知道设置约束性委派设置的委派目标的SPN
约束性委派攻击分为两步
- 利用设置约束性委派的用户名申请ST
- 利用ST1去申请ST2(任意用户的,一般是域管理员)
查询已配置账户
adfind
查询约束性委派服务账号
AdFind.exe -b "DC=xbxaq,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
PowerView.ps1
查询约束性委派的机器账户
Get-DomainComputer -TrustedToAuth -domain 域名 -Properties distinguishedname,msds-allowedtodelegateto|ft -Wrap -AutoSize
查询约束性委派的服务账户
Get-DomainUser -TrustedToAuth -domain 域名 -Properties distinguishedname,msds-allowedtodelegateto|fl
分类:
内网渗透
版权申明
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论