
Autor: w01f
Versión: 1.0
Propósito: Auditar, endurecer y cazar usos inseguros de NTLM/SMB para mitigar riesgos como CVE-2025-50154.
Severidad: Alta
Tipo: Fuga de credenciales NTLM + Bypass de parche (Zero-Click)
Afecta: Windows 10/11, Windows Server
Resumen:
CVE-2025-50154 es un bypass del parche anterior de Microsoft para CVE-2025-24054. Incluso con la mitigación previa, un archivo o ruta UNC manipulados pueden provocar que el Explorador de Windows obtenga un recurso remoto e inicie autenticación NTLM sin ninguna interacción del usuario (zero-click).
Esto puede provocar:
Por qué es importante: Este bypass demuestra que los atacantes aún pueden explotar rutas de autenticación heredadas a través del manejo de recursos del Explorador. Endurecer el comportamiento del cliente NTLM y SMB, además de monitorear conexiones sospechosas iniciadas por el Explorador, es fundamental.
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Audit -AllowlistCIDRs "10.0.0.0/8,192.168.0.0/16" -HoursBack 24 -ExportJson .\ntlm_audit.json
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Harden -AllowlistCIDRs "10.0.0.0/8,192.168.0.0/16" -SampleHosts "filesrv01.corp,10.0.5.20"
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Revert
A continuación se presentan consultas de detección listas para usar con el fin de identificar uso sospechoso de NTLM/SMB potencialmente relacionado con patrones de explotación de CVE-2025-50154.
DeviceNetworkEvents
| where InitiatingProcessFileName =~ "explorer.exe"
| where RemotePort in (445, 139)
| where not(RemoteIP in ("10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"))
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName
let lnk = DeviceFileEvents
| where FileName endswith ".lnk"
| where FolderPath has @"\Users\" and FolderPath has @"\Desktop";
let smb = DeviceNetworkEvents
| where RemotePort in (445,139)
| where InitiatingProcessFileName =~ "explorer.exe";
lnk
| join kind=innerunique (smb) on DeviceId
| where smb.Timestamp between (lnk.Timestamp .. lnk.Timestamp + 5m)
| project DeviceName, lnk.Timestamp, smb.Timestamp, FolderPath, RemoteIP
DeviceLogonEvents
| where LogonType == "Network"
| where AuthenticationPackage =~ "NTLM"
| summarize count() by DeviceName, RemoteIP, AccountUpn, bin(Timestamp, 10m)
| order by count_ desc
explorer.exe a TCP 445/139 fuera de la lista de permitidos..lnk en los escritorios de los usuarios.Este kit se proporciona únicamente con fines educativos y de seguridad defensiva.
No lo use en entornos de producción sin control de cambios y pruebas.