Unconstrained Delegation

Cuando se establece para una cuenta de servicio en particular, la delegación sin restricciones permite la delegación a cualquier servicio a cualquier recurso en el dominio como usuario.

Cuando la delegación sin restricciones está habilitada, el controlador de dominio coloca el TGT del usuario dentro del TGS (Paso 4 en el diagrama anterior). Cuando se presenta al servidor con delegación sin restricciones, el TGT se extrae de TGS y se almacena en LSASS. De esta forma el servidor puede reutilizar el TGT del usuario para acceder a cualquier otro recurso como usuario.

Esto podría usarse para aumentar los privilegios en caso de que podamos comprometer la computadora con una delegación sin restricciones y un administrador de dominio se conecte a esa máquina.

Escenario 1: Comprometer servidor con tickets de usuarios

1:Descubra equipos de dominio que tienen habilitada la delegación sin restricciones:

# Powerview
Get-NetComputer -UnConstrained
# RSAT
Get-ADComputer -Filter {TrustedForDelegation -eq $True}
Get-ADUser -Filter {TrustedForDelegation -eq $True}

Powerview:

RSAT:

2:Comprometer los servidores donde la delegación sin restricciones está habilitada (Obtener Tickets)

Ejecute el siguiente comando para verificar si hay algún token DA disponible:

o

Debemos engañar o esperar a que un administrador de dominio conecte un servicio en el servidor con la delegacion unconstrained comprometido.

Ahora, si el comando se ejecuta de nuevo:

identificamos el ticket que queremos reutilizar:

3: El token DA podría reutilizarse: (reutilizar los tickets exportados de mimikatz)

Escenario 2: PrinterBug

¿Cómo engañamos a un usuario con privilegios elevados para que se conecte a una máquina con delegación sin restricciones? ¡El error de la impresora!

Una característica de MS-RPRN que permite que cualquier usuario de dominio (usuario autenticado) pueda obligar a cualquier máquina (ejecutando el servicio Spooler) a conectarse a una segunda máquina de la elección del usuario de dominio.

Podemos obligar a dcorp-dc a conectarse a dcorp-appsrv abusando del error de la impresora.

PASO 1: Una vez comprometido el equipo de dcorp-appsrv, usamos rubeus para estar en escucha monitoreando a la espera de una conexion:

Podemos capturar la TGT de dcorp-dc$ usando Rubeus en dcorp-appsrv:

PASO 2: Ejecutamos el Printer Bug:

Y luego ejecuta MS-RPRN.exe:

que se puede encontrar en:

(esta imagen quiere decir que si o si esta funcionando el script ya con la prueba de arriba no se estaba muy seguro debido a las multiples conexiones que se tenian)

Encontramos los tickets de DCORP-DC$:

PASO 3: Usamos los tickets:

Hacemos DCSYNC:

la razon por la que se puede hacer esto es por los permisos del grupo de Controladores de Dominio:

Krbrelayx: (otra forma de ejecutar el Paso 2)

use este repositorio:

obtuve la tecnica de este enlace:

Last updated