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:
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:
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:
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:
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:
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:
De la lista de recursos compartidos backup parece que es el que puede contener algo interesante. Vamos a echarle un vistazo:
Efectivamente, contiene un archivo llamado backup_credentials.txt
, vamos a traérnoslo a nuestra máquina con el comando get:
Si visualizamos su contenido comprobamos que se trata de una string codificada en base64. Podemos decodearla directamente desde la línea de comandos con:
¡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:
Y con esto ya conseguimos el hash válido del usuario Administrator para utilizarlo con evil-winrm e ingresar como usuario de altos privilegios:
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