Unconstrained
Last updated
Was this helpful?
Last updated
Was this helpful?
To configure a service to have Unconstrained Delegation (UD) the option Trust this user for delegation to any service (Kerberos only) (Trusted_For_Delegation
) must be enabled (Figure 1).
Below we can see step-by-step what happens under the hood (Figure 2).
In Step 2 () the will notice that the service (HTTP/sharebrowser
) is set with and the resulting will have the ok-as-delegate
flag. This way the client will also know that the service is suitable for delegation (Figure 3).
The delegation which the client asks for in Step 3 () will have the forwarded
flag set (Figure 4).
Once the service receives the delegation TGT (Step 4), then it can request a ST for any service from the KDC while impersonating the user (Figure 5).
The TGT-REQ in Step 5 will request a ST for another service (cifs
) as the user (vegeta
) and the corresponding TGT-REP from the KDC will be issued for that user (vegeta
) (Figure 6).
If we control a service with UD set, then all clients talking to that service will drop their TGTs, therefore, we will be ablle to impersonate them. We can even force a privileged client to connect to our service, for example, through phishing.
If we are able to impersonate the DC01$
, which has , then we will be able to perform a and get the administrator
's hash.
Trusted_For_Delegation
setting (image taken from).ok-as-delegate
flag (image taken from).forwarded
flag set (image taken from).