exploiting-constrained-delegation-abuse

Exploit Kerberos Constrained Delegation misconfigurations to impersonate privileged Active Directory users via S4U2self and S4U2proxy.

954|172|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/xalgord/xalgorix --skill exploiting-constrained-delegation-abuse
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: exploiting-constrained-delegation-abuse
Source: https://github.com/xalgord/xalgorix/tree/main/internal/tools/skills/data/red-teaming/exploiting-constrained-delegation-abuse
Command: npx skills add https://github.com/xalgord/xalgorix --skill exploiting-constrained-delegation-abuse

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

During authorized red team engagements, testers need a reliable method to abuse Kerberos Constrained Delegation misconfigurations in Active Directory, but the S4U2self/S4U2proxy attack chain involves subtle distinctions between delegation flavors that frequently cause failed exploitation attempts.

Core Features & Use Cases

  • Delegation Enumeration: Identify accounts with msDS-AllowedToDelegateTo configured using PowerView, findDelegation.py, and BloodHound CE, including detection of the TRUSTED_TO_AUTH_FOR_DELEGATION protocol transition flag.
  • S4U Exploitation: Execute S4U2self and S4U2proxy attacks with Rubeus on Windows or Impacket getST.py on Linux to impersonate Domain Admins against delegated services like CIFS, LDAP, and HTTP.
  • Alternate Service Name Abuse: Rewrite service tickets (e.g., CIFS to LDAP) to achieve DCSync via secretsdump.py, since SPNs are not cryptographically bound to tickets.
  • Use Case: During an authorized assessment, you compromise a service account with constrained delegation to a Domain Controller; use this workflow to impersonate administrator, obtain an LDAP service ticket, and perform a DCSync to achieve domain compromise.

Quick Start

Ask the AI to enumerate accounts with Kerberos Constrained Delegation in the domain and demonstrate S4U2self/S4U2proxy impersonation of a Domain Admin against the delegated CIFS service on the Domain Controller.

Frequently Asked Questions about exploiting-constrained-delegation-abuse

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I exploit Kerberos Constrained Delegation in Active Directory?

Enumerate accounts with msDS-AllowedToDelegateTo using PowerView or findDelegation.py, then use Rubeus s4u or Impacket getST.py with the -impersonate flag to request a service ticket as a privileged user. Pass the ticket with /ptt or KRB5CCNAME to access the delegated service.

What is the difference between constrained delegation and resource-based constrained delegation?

Constrained delegation is configured on the service account via msDS-AllowedToDelegateTo and abused with S4U2self/S4U2proxy. Resource-based constrained delegation (RBCD) sets msDS-AllowedToActOnBehalfOfOtherIdentity on the target computer and is exploited when you can write that attribute.

Why does S4U2proxy fail when I try to impersonate a user?

S4U2proxy fails when the account lacks the TRUSTED_TO_AUTH_FOR_DELEGATION flag (userAccountControl 0x1000000), because S4U2self then returns a non-forwardable ticket. It also fails if the target user is in Protected Users or marked as sensitive and cannot be delegated.

Can I use a CIFS service ticket for LDAP to perform DCSync?

Yes, because the service name in a Kerberos ticket is not cryptographically bound to the session key. Request a CIFS ticket with getST.py using -altservice LDAP, then use it with secretsdump.py -k to perform a DCSync against the Domain Controller.

What tools work for constrained delegation abuse on Linux?

Impacket provides findDelegation.py for enumeration and getST.py for S4U ticket requests on Linux. Obtained tickets are used via KRB5CCNAME with smbclient.py or secretsdump.py, while Rubeus and PowerView cover the Windows side.