Unconstrained Delegation Abuse (KUD)¶
Gain a TGT as any user who authenticates to an attacker controlled host with unconstrained delegation set.
Requirements¶
- Control of an account with unconstrained delegation.
- Except for users who are "Protected Users" or marked as "Account is sensitive and cannot be delegated."
Receive a TGT¶
TARGET = Computer with unconstrained delegation
Linux (Remotely)¶
- Requires Windows Server 2012+
1. Add ATTACKER$ as AdditionalDnsHostName on SPN of TARGET$¶
2. Add ATTACKER$ to DNS on TARGET$ SPN.¶
dnstool.py -u '<domain>\<TARGET>' -p ':<nt_hash>' -r '<ATTACKER>.<domain_fqdn>' -d '<ATTACKER_ip>' --action add DomainController
3. Verify DNS Record¶
Wait a few minutes
4. Start krbrelayx¶
User account SALT =
<UPPERCASE_REALM_FQDN> + <case_sensitive_TARGET_username>
Concatenate values, no space.
5. Coerce Authentication¶
Coerce authentication to krbrelayx
on the remote Linux host.
6. Use the TGT¶
if successful krbrelayx
will receive a TGT. Use it.
Windows (Locally)¶
1. Listen for a TGT¶
Outputs base64 TGT when one is received.
2. Coerce Authentication¶
Coerce authentication to the Rubeus
listener. If successful the Rubeus
listener will receive a base64 TGT.
3. Use the TGT¶
Attack Paths¶
- DCSync
- If a TGT is captured for DC$ or some other privileged user.
- Review discovery steps in the methodology