Active
Última actualización
Última actualización
En esta publicación, abordaremos la máquina "Active" de la plataforma Hack The Box. Iniciaremos con la enumeración de recursos compartidos a través del protocolo SMB, lo que nos permitirá obtener el archivo Groups.xml
. Dentro de este archivo, encontraremos una contraseña que podremos descifrar, ya que la clave de cifrado es conocida públicamente. Finalmente, realizaremos un ataque de Kerberoasting para obtener un hash TGS de Kerberos, que podremos crackear para obtener la contraseña del usuario Administrador.
Iniciamos lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.
Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Windows basandonos en el TTL (Time To Live) 127.
Lanzamos una serie de script básicos de enumeración propios de nmap
, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.
Antes de comenzar a enumerar, ingresamos en nuestro archivo /etc/hosts
la siguiente linea para que cuando hagmos referencia active.htb
resuelva a la IP 10.10.10.100
.
Comenzamos enumerando recursos compartidos através del protocolo SMB utilizando una Null Session.
Podemos observar, que tenemos permisos de lectura al recurso compartido Replication
.
También podemos enumerar utilizando otras herramientas como smbmap
.
Enumeramos de forma recursiva el recurso Replication
.
Observamos que dentro existe un directorio llamado active.htb
.
Continuamos enumerando y nos encontramos con tres subdirectorios.
Si seguimos enumerando, nos encontramos con un archivo llamdo Groups.xml
.
Descargamos este archivo a nuestra máquina utilizando sqlmap
.
Renombramos el archivo a Groups.xml
para mayor facilidad.
El archivo Groups.xml
es parte de la política de preferencias de grupo (GPP) en Active Directory. Este archivo se utiliza para configurar y administrar los grupos locales en los equipos dentro de un dominio de Active Directory. Las políticas de preferencias de grupo permiten a los administradores establecer configuraciones y preferencias de manera centralizada que se aplican a los usuarios y equipos.
Dentro de Groups.xml
, se pueden especificar acciones como crear, modificar o eliminar cuentas de usuarios locales y grupos en los equipos del dominio. El archivo está ubicado generalmente en la ruta:
Este archivo contiene la configuración específica para los grupos, incluyendo nombres de usuarios, grupos, contraseñas y otros parámetros.
cpassword
El campo cpassword
dentro del archivo Groups.xml
contiene la contraseña encriptada para las cuentas de usuario configuradas a través de las preferencias de grupo. La encriptación utilizada para este campo es bastante débil y utiliza una clave estática conocida. La contraseña se encripta usando AES-256, pero la clave de cifrado está embebida en las herramientas de administración de GPP y es conocida públicamente.
Para crackear el cpassword
, podemos utilizar la herramienta gpp-decrypt.
Validamos las credenciales contra el dominio utilizandonetexec
.
Ahora que tenemos credenciales validas del dominio, podemos intentar realizar un ataque de Kerberoasting. Además, si miramos el nombre del usuario vemos que el sufijo del mismo nos da a entender que este puede solicitar TGS (Ticket Granting Service) de Kerberos, para lo cual podemos hacer lo siguiente utilizando la herramienta impacket-GetUserSPNs
:
Ahora, podemos hacer uso de john
o hashcat
para crackear el hash y obtener la contraseña en texto claro.
Validamos las credenciales contra el dominio.
Genial, nos indica que son validas y además Pwn3d!, lo cual nos permite conectarnos a la máquina usando psexec
.
Nos conectamos a la máquina víctima.
Para tener una consola más interactiva, nos compartimos el binario de nc.exe
con un recurso compartido desde nuestra máquina utilizando impacket-smbserver
:
Creamos un recurso compartido
Decargamos el binario de netcat.
Nos ponemos en escucha con netcat por el puerto 443.
Enviamos la reverse shell
Ganamos acceso al sistema.
De esta forma, ya podemos leer las flags de user.txt
y root.txt
.
Concluimos la resolución de una nueva máquina.
Espero que hayas disfrutado del contenido y que los conceptos hayan quedado claros.
¡Gracias por leer!
Happy Hacking!