top of page

TryHackMe / Attacktive Directory

  • n3n3c0
  • 4 mar 2022
  • 3 Min. de lectura

Actualizado: 7 mar 2022

Attacktive Directory es una máquina de dificultad media en la cual practicaremos y afianzaremos conocimientos involucrados en Active Directory, hashes, credenciales, recursos compartidos y criptografía.


*Existen varias maneras de solucionar esta sala vulnerable, os enseñare el método por el cual conseguí completarla, pero siempre podréis investigar por vuestra cuenta y sacar vuestra conclusión.


*Todas las herramientas, protocolos e información considerada relevante tiene sus correspondientes enlaces, por si es necesario documentarse y profundizar.






¡Empecemos!


Antes de empezar, tenemos que instalar algunas herramientas, la primera que vamos a instalar va a ser impacket, un proyecto que contiene múltiples clases y scripts que soportan los principales protocolos de red disponibles actualmente, especialmente aquellos utilizados en redes con sistemas Windows.



Después de clonar el repositorio, se instalarán varios archivos relacionados, requirements.txt y setup.py.


Primero instalaremos los requisitos de Phyton para Impacket:



Una vez instalados, instalaremos Impacket:



Por último necesitamos instalar Bloodhunt y Neo4j, para ello instalaremos las dos herramientas con el siguiente comando:

*Es posible que pida permisos de root.



Una vez tengamos todas las herramientas instaladas podemos empezar a hacer la máquina.

Empezaremos por un escaneo de puertos con nmap.

Como podemos ver tenemos varios puertos interesantes abiertos y que el escaneo nos ha sacado el nombre de dominio "spookysec.local".


Podríamos sacar más información con la herramienta enum4linux




Como hemos visto en el puerto 88, se está utilizando Kerberos, Kerberos es un servicio de autenticación de claves dentro de AD, con este puerto abierto, podemos usar una herramienta llamada Kerbrute para descubrir usuarios por fuerza bruta y contraseñas.


Para ello utilizaremos el siguiente comando:



Lo que tenemos que hacer ahora es insertar en el archivo "hosts" el dominio de este servidor junto con su dirección ip, para ello modificaremos "/etc/hosts".



Lo siguiente será descargarse la lista de usuarios y contraseñas que proporciona el apartado cuatro de tryhackme para así poder lanzar kerbrute.


Veremos que conforme van saliendo los usuarios tenemos dos en concreto que nos pueden ser mas útiles:



Vamos a realizar un ataque "ASREPRoasting", que aprovecha el servicio de autenticación previa de Kerberos. Esto significa que un dispositivo debe estar autorizado para comunicarse antes de que esté autorizado para comunicarse en la red. Podemos usar una herramienta llamada GetNPUsers.py del conjunto de herramientas Impacket para encontrar cuentas previamente autenticadas que puedan ser explotadas.



El resultado es este hash que guardaremos en un txt y lo descifraremos gracias a hashcat con fuerza bruta.




Como ya sabemos las credenciales de svc-admin vimos que tenemos abierto el servicio SAMBA con el puerto 445, vamos a intentar conectarnos por SMBCLIENT para ver los recursos compartidos y a cuales puede acceder este usuario.



Vemos que hay un recurso compartido que se llama "backup" que podemos acceder desde este usuario, vamos a intentar acceder a el otra vez con SMBCLIENT con el siguiente comando.



Cuando entremos, si listamos con el comando "ls" podremos ver que existe un archivo llamado "backup_credentials.txt".



Veamos que hay dentro de este archivo, para ello tendremos que utilizar el comando get para descargárnoslo en nuestra máquina.

*Tendrás que ser root para descargartelo.



Nos da una cadena codificada en base 64. La desencriptamos...




Esta cuenta backup tiene un permiso único que permite sincronizar todos los cambios de Active Directory, esto incluye hashes de contraseña, para ello utilizaremos una herramienta llamada "secretsdump.py" que nos permitirá sacar todos los hashes de las cuentas a las que se ha tenido acceso, recordemos que la contraseña es la que hemos adquirido anteriormente.



Ahora con la herramienta psexec.py dentro del directorio de impacket que hemos entrado anteriormente vamos a iniciar sesión con la cuenta de administrador pasando como contraseña el hash que aparece al lado del nombre de administrador.


Ya tenemos acceso a la máquina!


Es una buena praxis el ver si ese hash sirve como método de autenticación o de inicio de sesión dentro de un equipo, porque puede no funcionar porque puede haber un antivirus o firewall que bloquea ese tipo de inicios de sesión, con la herramienta crackmapexec podemos pasar el usuario y el hash y ver si es correcto.



El resultado es un (Pwn3d!) lo que quiere decir que tiene permisos de administrador esta cuenta, si no tiene el resultado pero conserva el símbolo [+] quiere decir que la cuenta sigue siendo válida pero no tiene permisos de administrador


Y una vez con la sesión iniciada podremos ir al directorio del escritorio de cada uno de los usuarios y ver la bandera!!


¡Enhorabuena! Una mas o una menos. ( ͡° ͜ʖ ͡°)








 
 
 

Comments


Publicar: Blog2_Post
bottom of page