Querier
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Querier
es un sistema operativo Windows de dificultad media que tiene una hoja de cálculo de Excel en un recurso compartido de archivos legible para todo el mundo. La hoja de cálculo tiene macros que se conectan al servidor MSSQL
que se ejecuta en el sistema. El servidor SQL se puede utilizar para solicitar un archivo a través del cual se pueden filtrar y descifrar los hashes NetNTLMv2
para recuperar la contraseña de texto sin formato. Después de iniciar sesión, se puede utilizar PowerUp
para buscar las credenciales de administrador en un archivo de política de grupo almacenado en caché local.
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Querier.
Lanzaremos una serie de scripts básicos para intentar buscar vulnerabilidades en los puertos que hemos encotrado expuestos.
Procederemos a añadir la entrada en nuestro archivo /etc/hosts
Comprobaremos a qué tipo de máquina nos enfrentamos a través de netexec, nos muestra que puede ser un Windows 10 o Windows Server 2019
Procederemos a enumerar el servicio de SMB que hemos encontrado expuesto. Probaremos de listar los recursos compartidos para ver que encontramos.
Procederemos a conectarnos al recurso compartido nombrado "Reports" y nos descargaremos todo el contenido de dicho recurso en nuestro equipo local.
Comprobamos que disponía de un archivo .xlsm, que corresponde a un Excel. Abriendo el Excel con LibreOffice, comprobamos que nos salta un mensaje informando que este documento contiene Macros.
Procederemos a inspeccionar el contenido de las macros del documento con la herramienta de olevba. Comprobamos que en las macros aparece el nombre de un usuario y unas credenciales.
Guadaremos las credenciales encontradas para verificar si son válidas o no.
Con la herramienta de netexec intentaremos autenticarnos al SMB con las credenciales encontradas, con el primer comando no hemos podido establecer conexión, poniendo que es una cuenta de equipo (-d WORKGROUP) nos confirma que las credenciales son válidas.
Por lo tanto, podemos saber que este usuario es un usuario del equipo y no de un dominio.
Probaremos de intentar comprobar si con dicho usuario tenemos acceso al WinRM, nos niega la conexión. Por lo tanto, el usuario no forma parte del grupo de Administración remota.
Como hemos visto que el servicio de MSSQL se encontraba expuesto (puerto 1433) probaremos de conectarnos. Con el primer comando no obtuvimos la conexión al servicio, pero indicándole que se autentique con (-window-auth) nos dejo acceder con dicho usuario.
Probaremos de intentar habilitar el componente de xp_cmdshell para así obtener un RCE (Remote Code Execution), pero comprobamos que con el usuario autenticado no disponemos de permisos para habilitar dicho componente.
En este punto lo que haremos es intentar abusar del componente xp_dirtree para obtener los hashes NTLMv2.
En nuestra Kali nos montaremos un servicio SMB y des la conexión de MSSQL procederemos a listar el contenido del recurso que estamos compartiendo, en nuestra Kali nos habrá llegado el Hash NTLMv2 de la cuenta de servicio que está consultando con xp_dirtree.
Comprobamos que obtuvimos el hash NTLMv2 del usuario "mssql-svc"
Nos guardaremos el hash obtenido en el archivo "hash.txt".
Procederemos a crackear el hash con la herramienta de john para así lograr saber qué contraseña pertenece a ese hash. Comprobamos que el hash ha sido crackeado y la contraseña correspondiente es: corporate568
Validaremos con netexec de que las credenciales encontradas son válidas para el usuario. Comprobamos que como usuario de dominio no nos indica que tenemos autenticación, pero indicándole que es un WORKGROUP si.
Probaremos de intentar revisar si tenemos acceso al WinRM con este nuevo usuario, sin exito tampoco.
Como esta cuenta parece ser la cuenta de servicio de MSSQL, probaremos de acceder al servicio con dichas credenciales. Comprobamos que también ganamos acceso con dicho usuario.
Con el usuario anterior que probamos no teníamos acceso a habilitar el componente xp_cmdshell, probaremos con este usuario de habilitar el componente.
Comprobamos que podemos habilitarlo y efectuar un RCE (Remote Code Execution)
Modificaremos el script y en la última línea añadiremos la siguiente línea para que así invoque el comando para otorgarnos la Reverse Shell a nuestro equipo por el puerto especificado.
En nuestra Kali, deberemos de levantar un servidor web con Python para compartir el archivo, des de otra terminal nos pondremos en escucha con nc por el puerto especificado en el script y des de la terminal donde hemos accedido anteriormente al MSSQL ejecutaremos con el componente xp_cmdshell la instrucción para que ejecute el comando de Powershell sobre el script que tenemos alojado en nuestra Kali.
Comprobamos que ganamos acceso al equipo en la terminal donde estabamos en escucha. Verificamos la flag de user.txt.
Probaremos de encontrar posibles vectores para realizar un PrivEsc y elevar nuestros privilegios como usuario Administrador.
Modificaremos el script y en la última línea añadiremos (Invoke-AllChecks) para así obtener toda la información de posibles vectores para escalar privilegios.
Nos montaremos un servidor web con Python para compartir dicho script y des de la terminal donde hemos ganado acceso al equipo, procederemos a ejecutar el script que tenemos alojado en nuestra Kali importándolo en memoria con IEX.
Así obtendremos un reporte completode vulnerabilidades potenciales y configuraciones inseguras que podemos aprovechar.
En el resultado del escaneo con PowerUp.ps1 comprobamos que tenemos el privilegio de (SeImpersonatePrivilege) lo que podríamos directamente impersonar al usuario "Administrator".
Y también vemos que ha encontrado un archivo .xml dentro del equipo en el cual disponía de las credenciales GPP del usuario Administrator, ya nos hace el (gpp -decrypt) y nos aparece la contraseña en texto plano.
Verificaremos que podemos acceder con las credenciales del usuario Administrator al WinRM. Le especificaremos que el domain es un WORKGROUP, sino nos dará error como en el primer comando.
Procederemos a conectarnos con evil-winrm al equipo con el usuario Adminsitrator y sus respectivas credenciales. Verificaremos la flag de root.txt.
Por otra parte, obtenida la contraseña del usuario Administrator, podemos dumpear todos los hashes de los usuarios del equipo a través de netexec para luego realizar un PassTheHash sin conocer las credenciales de los usuarios.
Probaremos con wrmiexec.y de acceder con el usuario Administrator y su respectivo hash NTLM al equipo, comprobamos que podemos acceder sin saber la contraseña del usuario Administrator. Esto lo podríamos realizar con el resto de usuarios que disponemos de su hash NTLM.
Procederemos a abusar de este RCE otorgándonos una Reverse Shell. Para ello, en nuestra Kai nos descargaremos el y lo renombraremos a "PS.ps1".
Para ello, en nuestra Kali nos descargaremos el script de .