Trusts entre dominios y bosques
Una relación de confianza (trust) permite que usuarios de un dominio accedan a recursos de otro. Si consigo el control de un dominio, los trusts son el camino para saltar a otro dominio o bosque.
Dentro del mismo bosque (padre / hijo)
Todos los dominios de un bosque confían en la raíz. Con Domain Admin en un dominio hijo puedo escalar a Enterprise Admin de todo el bosque:
- Saco el hash de
krbtgtdel dominio hijo (DCSync). - Forjo un Golden Ticket añadiendo en el campo
sidHistoryel SID del grupo Enterprise Admins del padre. - Ese ticket vale en toda la jerarquía.
text
beacon> dcsync dev.corp.local DEV\krbtgt
beacon> ... golden /sids:<SID Enterprise Admins del padre> ...Entre bosques distintos
El SID history de grupos muy privilegiados se filtra (SID filtering), así que el truco anterior no vale. Lo que se busca aquí es más artesanal:
- Inbound (el otro bosque confía en el mío): busco en el otro dominio grupos que tengan como miembros a usuarios del mío (
foreignSecurityPrincipal) y heredo sus accesos. - Outbound (mi dominio confía en el otro): con la clave del trust puedo pedir un TGT como la cuenta del trust (
DOMINIO$) en el otro lado.
text
beacon> ldapsearch (objectClass=trustedDomain) --attributes trustPartner,trustDirection,trustAttributes
beacon> ldapsearch (objectClass=foreignSecurityPrincipal) --attributes objectSid,memberOfCómo se defiende
- Mantener el SID filtering activado en los trusts (no desactivarlo "para que algo funcione").
- Tratar cada bosque como un límite de seguridad real: no compartir cuentas de administración entre bosques.
- Revisar qué grupos de un dominio tienen miembros externos.
