Domain Trusts Primer

🧩 Scenario

Un Domain Trust es una relación creada entre dos dominios de Active Directory que permite:

En general, un trust no da acceso automático, solo permite que la autenticación viaje entre dominios.
El nivel de acceso depende de grupos, ACLs, permisos, GPOs, etc.


🏰 Domain Trusts Overview

Un trust permite que usuarios de un dominio accedan a recursos o realicen tareas administrativas en otro dominio.
El trust define cómo los sistemas de autenticación se comunican entre sí.

🔗 Tipos de Trusts

🌳 Parent-child

📌 Implicación:
Si comprometes un dominio hijo, normalmente puedes pivotar hacia el padre.

🌐 External Trust**

📌 Usado mucho cuando:

🏞️ Forest Trust

📌 Peligro:
Una forest entera puede convertirse en vector de entrada si tiene mala seguridad.


📌 Importante:
No añade nuevos accesos, solo reduce latencia.

🌳➡️🌳 Tree-Root Trust

Ejemplo:
inlanefreight.local y freightops.local dentro de la misma forest.


🛡️ ESAE / Red Forest


🔄 Transitive vs Non-Transitive Trusts

🔀 Transitive Trust

Confianza se extiende a los objetos que confía el dominio hijo.

A → B → C ⇒ A confía automáticamente en C.

🚫 Non-Transitive Trust

Solo confía en el dominio directamente especificado.

A → B (pero no C aunque B confíe en C)

📦 Analogía (Callout)

Analogía útil

Trust Transitivo = Cualquiera en casa puede recibir paquetes.
Trust No Transitivo = Solo tú puedes recibir el paquete.


🔁 One-way vs Two-way Trusts

1️⃣➡️2️⃣ One-way

Usuarios del dominio confiado pueden acceder al que confía.
No viceversa.

↔️ Bidirectional

Ambos dominios confían mutuamente.
Muy común pero altamente riesgoso si no se configura bien.


⚠️ Riesgos y Consecuencias

Riesgo Crítico

Una compañía adquirida con mala postura de seguridad puede convertirse en un vector de entrada hacia la empresa principal.

Ejemplos reales:



🔎 Enumerating Trust Relationships

🛠️ 1. Usando PowerShell — Get-ADTrust

Import-Module activedirectory
Get-ADTrust -Filter *

📌 Muestra:

🧾 Ejemplo real de salida

{41504A95-F8BB-49B3-9656-6D4CDF204177}.png


🛠️ 2. Usando PowerView — Get-DomainTrust

Import-Module .\PowerView.ps1
Get-DomainTrust

Muestra trusts dentro y fuera de la forest.

Ejemplo:

{26C47E74-ED7E-40C7-8744-675498876D39}.png


🛠️ 3. Domain Trust Mapping (PowerView)

Get-DomainTrustMapping

{2641A803-202D-4BBF-97BB-BC6C65E117A9}.png
Permite ver:


🧍‍♂️ 4. Enumerando usuarios en un dominio confiado

Get-DomainUser -Domain LOGISTICS.INLANEFREIGHT.LOCAL | select SamAccountName

Salida:

samaccountname -------------- htb-student_adm Administrator Guest lab_adm krbtgt


🛠️ 5. Usando netdom

🔍 Consultar trusts

netdom query /domain:inlanefreight.local trust

🔎 Consultar domain controllers

netdom query /domain:inlanefreight.local dc

🖥️ Consultar workstations/servers

netdom query /domain:inlanefreight.local workstation


🦈 BloodHound — Visualización de Trusts

BloodHound

Usa queries preconstruidas como Map Domain Trusts para visualizar trusts bidireccionales, forest trusts, relaciones entre dominios, etc.

Ejemplo visual (simplificado):

Pasted image 20251120192743.png


🚀 Onwards

Los siguientes módulos del curso cubren:

Consejo

Siempre validar con el cliente si los dominios confiados están dentro del scope antes de atacarlos.


📚 Resumen Final (Knowledge Base)

🧠 Conceptos Clave

⚔️ Riesgos

🛠️ Herramientas