Forest
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Forest
en un controlador de dominio de Windows (DC) de dificultad fácil, para un dominio en el que se ha instalado Exchange Server
. Se descubre que el DC permite enlaces LDAP
anónimos, que se utilizan para enumerar objetos de dominio. La contraseña de una cuenta de servicio con la autenticación previa Kerberos
deshabilitada se puede descifrar para obtener un punto de apoyo.
Se descubre que la cuenta de servicio es miembro del grupo Operadores de cuenta, que se puede utilizar para agregar usuarios a grupos privilegiados de Exchange
. La pertenencia al grupo de Exchange
se aprovecha para obtener privilegios de DCSync
en el dominio y volcar los hashes NTLM
.
Realizaremos un reconocimiento sobre la máquina Forest para encontrar puertos abiertos.
Lanzaremos unos scripts básicos para ver si encontramos alguna vulnerabilidad en los puertos expuestos.
Comprobaremos el nombre del dominio a través del siguiente comando.
Procederemos a añadir la línea del dominio en el archivo /etc/hosts con su respectiva dirección IP.
Utilizamos rpcclient con el comando enumdomusers para enumerar los usuarios del dominio en el servidor SMB con IP 10.10.10.161. Este comando permite la conexión anónima y proporciona una lista de usuarios sin necesidad de credenciales.
Redirigiremos el resultado a un archivo llamado "users" y comprobaremos el contenido del archivo.
Ejecutamos la herramienta de impacket-GetNPUsers con las opciones -no-pass
y -usersfile users
para obtener los usuarios que pueden realizar autenticación con Kerberos en el dominio htb.local a través del fichero de los usuarios enumerados.
Comprobamos que obtenemos el hash krb5 del usuario "svc-alfresco".
Nos guardaremos el hash en un archivo llamado "hash.txt"
Con el uso de la herramienta de hashcat realizaremosataque de fuerza bruta para obtener la contraseña a través de un diccionario, como rockyou. Finalmente obtenemos que la contraseña para el usuario "svc-alfresco" es "s3rvice".
Procederemos a comprobar que con dichas credenciales podemos acceder al WinRIM que hemos encontrado expuesto en la máquina. Comprobamos que efectivamente nos aparece como Pwn3d.
Procederemos a conectarnos mediante evil-winrm y con las credenciales encontradas, comprobamos la flag de user.txt.
Procederemos a pasarnos al equipo que queremos comprometer el binario de SharpHound.exe
y a recopilar toda la información del sistema.
El .zip que nos genere, nos lo descargaremos a nuestra Kali.
Es hora de elevar nuestros privilegios y obtener acceso de administrador. Volviendo a BloodHound, podemos ver que nuestro usuario, svc-alfresco, es miembro del grupo “Account Operators” que tiene permiso GenericAll en el grupo “Exchange Windows Permissions”.
Con el permiso GenericAll, tenemos todos los derechos sobre el objeto de destino (agregar usuarios a un grupo, restablecer la contraseña del usuario, etc.) y podemos abusar de este permiso débil.
Además, el grupo “Exchange Windows Permissions” tiene permiso WriteDACL en el dominio (htb.local). Esto significa que si creamos un usuario y lo agregamos al grupo “Exchange Windows Permissions”, podríamos darle derechos de acceso DCSync y volcar los hashes de contraseña del controlador de dominio.
Abusando de que el usuario svc-alfresco se encuentra en el grupo donde podemos crear usuarios, procederemos a añadir un nuevo usuario y hacerlo miembro del grupo "Exchange Windows Permissions"
Comprobaremos que el usuario se ha creado correctamente y las credenciales funcionan sin problemas.
Primero de todo, procederemos a descargarnos el PowerView en nuestro equipo Kali, lo pasaremos al equipo que queremos comprometer e importaremos el módulo.
Estos comandos le otorga al usuario jr el derecho DCSync en el controlador de dominio htb.local, lo que le permite replicar la base de datos del dominio y obtener hashes de contraseñas de otros usuarios.
Utilizaremos la herramienta de secretsdump para bolcar toda la información de las contraseás (hashes) del DC. Comprobamos que hemos obtenido el hash del usuario "Administrator", lo cual podremos hacer un Pass The Hash.
Comprobaremos con netexec de conectarnos al WinRM mediante el usuario "Administrator" y el hash que hemos dumpeado con Secretsdump.py.
Comprobamos que nos aparece como Pwn3d lo que indica que podemos conectarnos haciendo PassTheHash con el usuario Administrator.
Procederemos a conectarnos haciendo PassTheHash con el usuario "Administrator" y su respectivo hash y comprobamos que podemos acceder y revisar la flag de root.txt.