Skip to content

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.

Relaciones de confianza entre dominios y bosques

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:

  1. Saco el hash de krbtgt del dominio hijo (DCSync).
  2. Forjo un Golden Ticket añadiendo en el campo sidHistory el SID del grupo Enterprise Admins del padre.
  3. 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,memberOf

Có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.

Contenido propio con fines educativos. Sin flags ni material de exámenes.