Page cover

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.

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.

¿Por qué existen estas cuentas?

Estas cuentas existen para automatizar el inicio de sesión en sistemas donde se requiere que ciertos servicios o aplicaciones arranquen sin intervención manual, como en kioscos, sistemas embebidos o servidores legacy.

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 😈.

¿Qué son los permisos DSync?

Los permisos DCSync permiten a una cuenta simular el comportamiento de un controlador de dominio (DC) y solicitar al DC las contraseñas (hashes) de los usuarios del dominio, incluidos los administradores.

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.

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