Attacktive Directory

¡Hola!

En este writeup vamos a resolver la máquina Attacktive Directory de TryHackMe, una máquina de nivel de dificultad media. La podéis encontrar en el siguiente enlace:

Reconocimiento

Como siempre, vamos a empezar la fase de enumeración lanzando un nmap, en esta ocasión también voy a exportar la captura de nmap a un archivo para tener los datos disponibles en caso de que más adelante fueran necesarios:

nmap -sC -sV <IP> -oN <NOMBRE_ARCHIVO>

El escaneo de nmap nos arroja los siguientes resultados:

Entre la gran cantidad de puertos abiertos que encontramos vamos a centrarnos en los puertos relacionados con el protocolo SMB. Además como podemos ver hemos encontrado un nuevo dominio, spookysec.local, vamos a añadirlo al /etc/hosts de forma que sea más fácil de recordar y nos facilite el trabajo en los siguientes pasos.

Con enum4linux y el parámetro -a podemos realizar una serie de escaneos básicos para enumerar los puertos 139 y 445:

enum4linux -a <IP>

En este caso no nos reporta demasiada información de utilidad pero al menos si podemos comprobar el nombre del dominio coincide con la captura de nmap.

En los siguientes pasos vamos a estar utilizando varias herramientas de Impacket y también la utilidad Kerbrute, te dejo los enlaces por aquí:

Con el objetivo de enumerar usuarios válidos del dominio podemos utilizar la utilidad Kerbrute junto al parámetro userenum quedando de la siguiente forma:

kerbrute_linux_amd64 userenum --dc <Dominio> -d <Dominio> <Diccionario>

Como especifican en TryHackMe, con el objetivo de acortar el tiempo de enumeración se pueden utilizar los diccionarios userlist.txt y password.txt

Y con esto ya tenemos una lista de usuarios válidos y habremos terminado la fase de reconocimiento.

Explotación

Entre los usuarios válidos que hemos extraído con Kerbrute destacan especialmente dos: svc-admin y backup.

Una vez terminada la fase de enumeración vamos a crackear contraseñas del Directorio Activo mediante un ataque tipo AS-REP Roasting. Vamos a empezar utilizando la utilidad GetNPUsers incluida en el paquete de herramientas Impacket. Para ello ejecutamos el siguiente comando sustituyendo los parámetros por los valores extraídos en la fase de enumeración:

python3 GetNPUsers.py <DOMINIO_DC>/<USUARIO_DC> -request -no-pass -dc-ip <DOMINIO_DC> > <ARCHIVO_SALIDA>
# Ejemplo:
# GetNPUsers.py THM-AD/svc-admin -request -no-pass -dc-ip spookysec.local > svc-admin_hash

Para ver una forma alternativa a la sugeria por TryHackMe vamos a crackear el hash con John The Ripper en lugar de Hashcat, la sintaxis quedaría de la siguiente forma:

john --wordlist=<Diccionario> --format=krb5asrep <Archivo_hash>

Con esto ya tendremos la contraseña del usuario svc-admin.

Ahora que tenemos credenciales válidas vamos a utilizarlas para enumerar recursos compartidos bajo el protocolo SMB utilizando smbclient:

smbclient -L //<IP>/ --user svc-admin

De la lista de recursos compartidos backup parece que es el que puede contener algo interesante. Vamos a echarle un vistazo:

smbclient //10.10.125.32/backup --user svc-admin

Efectivamente, contiene un archivo llamado backup_credentials.txt, vamos a traérnoslo a nuestra máquina con el comando get:

get backup_credentials.txt

Si visualizamos su contenido comprobamos que se trata de una string codificada en base64. Podemos decodearla directamente desde la línea de comandos con:

cat backup_credentials.txt | base64 -d

¡Y se nos mostrará las credenciales del usuario backup!

Escalada de privilegios

Con las credenciales del usuario backup podemos utilizar la herramienta secretsdump de Impacket para extraer las credenciales de todos los usuarios del dominio:

secretsdump.py -just-dc <Usuario>:<Contraseña>@<IP_o_nombrededominio>

Y con esto ya conseguimos el hash válido del usuario Administrator para utilizarlo con evil-winrm e ingresar como usuario de altos privilegios:

evil-winrm -i <IP> -u <Usuario> -H <Hash>

También podemos crackear el hash para obtener la contraseña en texto claro

Y con esto ya podemos visualizar las flags y habremos terminado la máquina.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Espero que este Writeup te haya sido de utilidad, si tienes alguna duda, sugerencia o simplemente te interesa este tipo de contenido no dudes en seguirme a través de cualquiera de mis redes sociales:

📝 LinkedIn ⮞ https://www.linkedin.com/in/david-rodriguez-ramos/ ▶️ YouTube ⮞ https://www.youtube.com/c/xerosec 🐦 Twitter ⮞ https://twitter.com/xerosec 🔴 Twitch ⮞ https://www.twitch.tv/xerosec 💬 Discord ⮞ https://discord.gg/E4AjK2XsFm

¡Gracias por llegar hasta aquí!

Última actualización