
Автор: w01f
Версия: 1.0
Назначение: аудит, усиление защиты и поиск небезопасного использования NTLM/SMB для снижения рисков, таких как CVE-2025-50154.
Серьёзность: высокая
Тип: утечка NTLM-учётных данных + обход исправления (Zero-Click)
Затронуты: Windows 10/11, Windows Server
Сводка:
CVE-2025-50154 — обход ранее выпущенного исправления Microsoft для CVE-2025-24054. Даже с предыдущей мерой защиты специально сформированный файл или UNC-путь может заставить Проводник Windows получить удалённый ресурс и инициировать NTLM-проверку подлинности без какого-либо взаимодействия с пользователем (zero-click).
Это может привести к:
Почему это важно: этот обход показывает, что атакующие всё ещё могут эксплуатировать устаревшие пути проверки подлинности через обработку ресурсов в Проводнике. Усиление поведения NTLM и SMB-клиента, а также отслеживание подозрительных подключений, инициированных Проводником, имеет критическое значение.
.\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
Ниже приведены готовые запросы для обнаружения подозрительного использования NTLM/SMB, потенциально связанного с шаблонами эксплуатации 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 к TCP 445/139 вне разрешённого списка..lnk-файлов на рабочих столах пользователей.Этот набор инструментов предоставляется только для образовательных и оборонительных целей безопасности.
Не используйте в производственных средах без управления изменениями и тестирования.