Authority [MEDIUM🔵]

Dificultad: Medio

1- Reconocimiento y escaneo

1.1 Ping

Podemos notar que se trata de una maquina Windows, debido al TTL:

1.2 Nmap

Estamos frente a un entorno de directorio activo con un controlador de dominio(Puerto 53 --> authority.htb), el puerto 80(Microsoft IIS 10.0) correspondiente a un servidor web, el puerto 88 correspondiente a Kerberos, puerto 135(RPC) y 139(NetBIOS), el puerto 389(LDAP) y 445 correspondiente a un servidor SMB para recursos compartidos, además del puerto 5985 correspondiente a Windows Remote Managment(WinRM) con el que luego podremos conectarnos mediante evil-winrm, ya que es posible los usuarios de la maquina se encuentren dentro del grupo "Remote Management Users"

1.3 crackmapexec

Estamos ante una maquina Windows Server 2019 en su compilación 17763 de 64 bits, el nombre de la maquina es "AUTHORITY", su dominio es "authority.htb", el servidor SMB se encuentra firmado y no es soportado por SMBv1, por lo que trabajaremos con SMBv2

1.4 smbclient

Vamos a listar recursos compartidos con smbclient mediante una sesión nula

Tenemos 2 recursos compartidos interesantes, "Department Shares" y "Development"

2- Explotación

2.1 Recurso compartido "Development"

Vamos a ver que hay dentro del recurso compartido "Development" con smbclient, asi que vamos a conectarnos al servidor SMB para mas comodidad:

Vamos a investigar que hay dentro del recurso compartido "Devlopment"

Hay una carpeta llamada "Ansible" correspondiente a una herramienta DevOps que se utiliza para enviar comandos a varias maquinas al mismo tiempo

Vamos a bajarnos el recurso compartido "Development", en nuestro Kali, para mayor comodidad y ver que hay dentro

Utilizando este comando, nos bajaremos todo el contenido del recurso compartido

Vamos a hacer un "tree" para listar que hay dentro de todos los directorios

Podemos ver que hay una carpeta llamda "PWM", vamos a ver que hay dentro

Vamos a ver que hay dentro de este directorio mismo con tree:

Hay un archivo interesante llamado "tomcat-users.xml.j2", vamos a visualizarlo:

Tenemos 2 credenciales, seguramente del servicio "Apache Tomcat" alojado en el puerto 8443

Vamos a guardarnos estos usuarios, por si acaso:

Si recordamos, dentro de la carpeta "PWM", tambien teníamos un archivo llamado "ansible_inventory"

Veamos que contiene:

Tambien podemos visualiar unas posibles credenciales, pero adelante que estas credenciales no son validas para conectase mediante "evil-winrm" por el puerto 5985

Vamos a guardarnosla, de tal manera que ahora mismo, tenemos las siguientes credenciales:

Tambien dentro de la carpeta /PWM/defaults, tenemos un archivo YAML(main.yml), vamos a visualizarlo:

Tenemos posibles hashes de "Ansible", el primer hash vault:

Vault 2:

Y por ultimo, un hash LDAP:

Cada uno de estos hashes, cifrados con el algoritmo AES 256

Nos guardamos los hashes:

Para pasar estos hashes en limpio, tenemos una herramienta en Kali llamada "ansible2john", vamos a utilizarla para los 3 hashes:

2.2 John The Ripper con hashes Ansible

Y ahora vamos a crackear los hashes con la herramienta John The Ripper, utilizando el diccionario clasico de clasicos, "rockyou"

hash1:

hash2:

hash3:

Es la misma contraseña para los 3 hashes

Esta contraseña vamos a utilizarla para abrir un Ansible Vault

(Ansible Vault permite a los usuarios cifrar secretos y otros datos confidenciales, como claves API, contraseñas y otras credenciales, para protegerlos en reposo)

Para eso vamos a utilizar la herramienta llamada "ansible-vault", para vamos a visualizar el hash de los vaults con "cat" y agregamos un pipe para adjuntarle el comando "ansible-vault", para luego ingresar la contraseña anteriormente crackeada "!@#$%^&*"

(Ansible Vault no viene instalado en Kali, para instalarla tenemos que instalar Ansible dentro de Kali, "sudo apt install ansible-core")

De tal manera que tenemos el usuario y la contraseña de un usuario y ademas tenemos una contraseña del servicio LDAP

Estas credenciales, adelanto que no son de un usuario del DC

2.3 Modificación del servidor LDAP para recibir hashes

Pero si recordamos en el escaneo de Nmap, teníamos el puerto 8443, correspondiente a Apache Tomcat, vamos a ver que se encuentra dentro de ese sitio web, que además es HTTPS:

"Configuration Manager":

Nos pide una contraseña, lo cual vamos a ingresar la contraseña de Ansible Vault "pWm_@dm!N_!23"

Nos ingresa correctamente, y no solo eso, si no que podemos bajarnos la configuración, editarla a nuestra conveniencia y además importarla con alguna configuración maliciosa, lo que haremos nosotros es descargarnos el archivo de configuración:

Vamos a abrirlo con un edito de texto, en mi caso Neovim, y vamos a irnos a la linea 74, que contiene lo siguiente:

Y vamos a cambiar esta linea por lo siguiente:

En mi caso quedaria de la siguiente manera:

Y antes de subir el archivo, vamos a ponernos en escucha con la herramienta "Responder" para recibir algun hash de contraseña o incluso la contraseña en texto plano, Responder ya viene integrada en Kali:

Y ahora vamos a subir el archivo de configuración al panel:

Nos llevara al panel de inicio de sesión:

Pero si volvemos al "Responder":

Si esto no funciona, podemos cambiar la configuración del dominio del servidor LDAP desde el "Configuration Editor" del panel, la configuración se encuentra dentro de "LDAP > LDAP Directories > default > Connection"

Por defecto, en "Load URLs" nos vendrá el dominio de la maquina utilizado por el servidor LDAP, nosotros lo cambiamos por nuestra IP y el puerto 389 así como se puede ver en la imagen

Genial, ahora tenemos unas credenciales en texto plano:

2.4 Obtención de shell con evil-winrm

Ahora vamos a conectarnos mediante "evil-winrm" con estas credenciales que obtuvimos cambiando la configuración del servidor LDAP

2.5 Obtención de la flag user

La flag de user se encuentra dentro de la ruta absoluta "C:\Users\svc_ldap\Desktop\user.txt", vamos a visualizar la flag:

3- Escalado de privilegios

3.1 Dominio en /etc/hosts

Antes de nada, vamos a agregar el dominio del DC al archivo /etc/hosts :

De tal manera que ahora la IP de la maquina 10.10.11.222 apunta al dominio "authority.htb"

10.10.11.222 ----> authority.htb

Esto mas que nada, por que al estar trabajando con un Domain Controler en un entorno de directorio activo es mas cómodo que andar escribiendo la dirección IP

Si hacemos un ping al dominio "authority.htb" esto nos apunta a la IP mencionada:

3.2 Certificado LDAPs.pfx

Vamos a irnos a la shell que teniamos con "evil-winrm" y vamos a irnos al directorio "C:\Certs":

Tenemos un archivo .PFX correspondiente a un certificado que a menudo contienen información criptográfica, lo cual podemos deducir que esta maquina se maneja con certificados, podemos utilizar una herramienta para extraer el certificado y ver que permisos tiene el usuario "svc_ldap" con el que nos acabamos de logear en evil-winrm

3.3 certipy-ad

Para lo anteriormente mencionado vamos a utilizar la herramienta "certipy-ad" para el certificado, esta herramienta ya viene integrada en Kali, en cualquier caso "sudo apt install certipy-ad"

Primeramente vamos a bajarnos el certificado con el comando "download" que ya viene integrado dentro de la misma herramienta "evil-winrm", esto lo hacemos por si acaso:

Ya tenemos el certificado en local:

Ahora vamos a ejecutar "certipy-ad" para ver que permisos y grupos hay dentro de la maquina objetivo:

Tenemos el nombre de la plantilla de este certificado:

Tambien tenemos un grupo que puede añadir equipos nuevos dentro de esta maquina:

3.4 impacket-addcomputer

Ya sabiendo esto, vamos a utilizar una herramienta para crear un equipo nuevo dentro de la maquina, para eso vamos a utilizar la herramienta "impacket-addcomputer" para que nos cree un equipo

Con este comando le estamos especificando el dominio del DC, el usuario y la contraseña, le especificamos la IP del DC, un nombre para el equipo(user1) y la contraseña(user123)

Ahora teniendo el equipo creado, las credenciales quedarian de la siguiente manera, ya que la herramienta "impacket-addcomputer" realiza algunos cambios:

3.5 Obtención del certificado Administrator

Vamos a obtener el certificado de Administrator con este equipo que hemos creado, para eso utilizaremos la herramienta anteriormente mencionada "certipy-ad":

(Ojo, quizas es necesario ejecutar el comando mas de una vez, ya que esto funciona con el serivico NetBIOS de Windows de la maquina)

Ahora tenemos el certificado

3.6 Obtención de shell LDAP con maximos privilegios

Y ahora vamos a obtener una shell con privilegios elevados utilizando este certificado de Administrator, para eso utilizaremos nuevamente "certipy-ad":

Con este comando estamos indicando que nos queremos autenticar con el certificado de Administrator que acabamos de obtener, le estamos indicando la IP del controlador de dominio y por ultimo queremos que nos abra una shell LDAP

Ya somos usuarios Administrator:

3.7 Creación de un usuario Administrador

Ahora, esta consola es restrictiva, en sí, no es una PowerShell como las que se obtienen normalmente con evil-winrm, con esta consola podemos añadir un usuario dentro de la maquina y añadirlo al grupo de Administradores

Creamos el usuario "admin1":

Y lo agregamos al grupo de Administradores:

Y ahora vamos a entrar mediante evil-winrm con este usuario, recordemos que cuando creamos el usuario "admin1" nos genero una contraseña:

3.8 Obtención de la flag root

La flag de root se encuentra dentro de la ruta absoluta "C:\Users\Administrator\Desktop\root.txt", vamos a visualizar la flag:

Con esto, concluimos la maquina "Authority" de Hack The Box

Espero te haya sido de ayuda este Write Up :)

Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales

Última actualización