Sauna
Platform
HackTheBox
O.S
Windows
Level
Easy
Skills
Kerberos Basics
DSync Rights
BloodHound
Cracking
Fase 1: Reconocimiento
Reconocimiento de puertos TCP abiertos a través de nmap.
nmap -sT -p- --open -n -Pn -vv -oN target 10.10.10.175

Lanzamiento de scripts NSE por defecto y obtención de versiones de los puertos que nos interesan.
nmap -sCV -p80,88,135,389,445,5985 10.10.10.175 -oN ports

Perfecto, luego de analizar a fondo los protocolos y puertos que la víctima tiene accesibles, procedemos información básica del dominio y la máquina a través de SMB.

Una vez identificados tanto el nombre de la máquina víctima como el nombre del dominio, lo añadimos al fichero /etc/hosts
para que nuestra máquina asocie automáticamente esa IP al nombre del dominio, al nombre del PC y al FQDN.

Con smbclient identificamos si el objetivo tiene recursos compartidos disponibles con una sesión nula, sin éxito.

Fase 2: Explotación
Así que decido realizar una enumeración de usuarios con ayuda de la herramienta Derrote, aprovechando que el sistema implementa autenticación kerberos.

Procedo a pasar los usuarios encontrados a una lista de users.txt
para posteriormente realizar más acciones.
Lo primero que pruebo (quizás un poco nos xD) es realizar fuerza bruta, de una vez adelanto que no tuvo éxito.
Así que pruebo algo que tenga un poco más de sentido y es comprobar si de casualidad existe alguno de esos tiene la preautenticación de Kerberos desactivada.
La siguiente librería de Impacket lo que hace es un krb_as_req simplemente con el nombre del usuario, y si el usuario no requiere tener establecida una autenticación previa con el KDC, este le va a contestar con un krb_as_rep común y corriente.

Perfecto, al parecer el usuario fsmith
tenía esta configuración en kerberos y nos ha devuelto su clave de sesión cifrada con el hash de su propia contraseña. Esto es posible crackearlo de manera offline con herramientas como john (que fue como le he especificado en el formato) o hashcat, que en realidad toma el mismo formato de john y la verdad es que la prefiero.
Así que metemos el contenido en un fichero.

Y procedemos a crackearlo con hashcat (o john, como prefieran).
hashcat -a 0 -m 18200 fsmith.hash /usr/share/wordlists/rockyou.txt --status --status-timer 8
Vemos que obtenemos un output exitoso con la contraseña del usuario fsmith en texto plano.

Comprobamos si el usuario pertenece al grupo de administración remota y si nos podemos conectar a través de WinRM.

Y efectivamente!
Así que nos autenticamos a la máquina y obtenemos la flag del usuario. Bastante sencillita por cierto 🫣.

Fase 3: Post-Explotación
Enumero de forma manual todo lo posible pero no veo nada interesante a explotar.
# Compruebo privilegios
whoami /priv
# Veo a que grupos pertenezo
whoami /groups
# Veo usuarios que pertenecen al grupo local de administradores
net localgroup administrators
# Y demás...
Así que decido usar un script automatizado llamado WinPEAS.

Gracias a WinPEAS obtengo una credencial almacenada en el registro del sistema de windows, también llamadas cuentas Autologon.

¿Es realista encontrárselas en un entorno empresarial?
Y sí, es realista encontrarlas en entornos empresariales, sobre todo cuando se prioriza la operatividad por encima de la seguridad.
Compruebo si esta cuenta también pertenece al grupo de gestión remota y bingo!

De nuevo me he encontrado el problema de que he estado intentando sacar información valiosa a través de enumeraciones y búsquedas manuales, de nuevo sin éxito.
Entonces recurro a BloodHound 🙂↕️
# Iniciamos su base de datos
sudo neo4j start
# Dentro de la carpeta donde tenemos instalado bloodhound
./Bloodhound --no-sandbox
Para quienes no estén familiarizados con esta herramienta, tengo un tutorial de instalación en la máquina Support.
Con SharpHound recolectamos la información necesaria para posteriormente pasársela a bloodhound y la analice.

Generado el archivo zip que contiene la información que buscamos, lo descargo y lo subo a BloodHound.

Una vez dentro de BloodHound, enumero inicialmente información relacionada a la última cuenta a la que hemos accedido: svc_loanmgr
Y logro encontrar que contiene permisos DCSync
😈.

El permiso DCSync se le asigna a una cuenta para que pueda simular el comportamiento de un controlador de dominio (DC), específicamente para replicar datos del directorio.
Bien, como hemos visto en la teoría, podemos extraer todos los hashes de los usuarios del dominio con esta cuenta, incluido el hash del administrador.
Para automatizar esta tarea vamos a usar la librería de Impacket llamada secretsdump, la cual con la siguiente combinación, usa los privilegios DCSync
asignados a la cuenta, accede al dominio y vuelca todos los hashes de los usuarios. A esto se le conoce como Replicación de dominio.
Lo que hace es pedirle al DC que "le sincronice" los datos del directorio, como si fuera otro DC... ¡y eso incluye los hashes NTLM de todas las cuentas del dominio!

Por último con el hash del administrador, realizamos un PtH con ayuda de nuevo de Impacket
(que haríamos sin esta herramienta 🫣).

Y obtenemos la flag del root.

Last updated