点我

委派设置

约束性委派的设置分为两种:

  1. 仅使用Kerberos
  2. 可以使用任何身份协议

约束性委派需要指定委派的机器和协议必须设置

设置对象

约束性委派在域控上设置的对象分为两种

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票据

存在的问题解决

  1. 服务账号B可以代表用户A向KDC申请访问B的票据,那么服务账号B能否代表域内管理员向KDC申请访问B的票据呢?
    在这个过程中,不需要域内管理员的参与,在服务账号B自身就可以完成
  2. 服务账号B可以代表用户A向KDC申请访问C的票据,那么服务账号B能否代表域内管理员向KDC申请访问C的票据呢?

    在这个过程中,不需要域内管理员的参与,在服务账号B自身就可以完成

问题解决
  • 只需要知道服务账户的密码或者hash值就可以申请任意用户访问自身的票据(ST1票据)
  • 使用ST1票据就可以申请任意用户访问委派的目标服务的票据(ST2)
约束性委派攻击的前提
  1. 知道设置约束性委派的用户名和密码(或者hash值)
  2. 知道设置约束性委派设置的委派目标的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

分类: 内网渗透

评论

-- 评论已关闭 --

目录