Attacktive Directory
Última actualización
Última actualización
¡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:
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.
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!
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í!