Как заставить Windows солгать о своих службах для захвата всего домена?

Исследователи безопасности из компании SafeBreach детализировали новый метод атаки, названный EPM Poisoning. Эта техника позволяет злоумышленнику без привилегий выдать себя за легитимную системную службу, используя уязвимость в протоколе удаленного вызова процедур Windows (RPC). Конечная цель цепочки эксплойтов — заставить защищенный процесс пройти аутентификацию на сервере атакующего, похитить его учетные данные и использовать их для полного захвата домена Active Directory.
Как заставить Windows солгать о своих службах для захвата всего домена?
Изображение носит иллюстративный характер

В основе атаки лежит уязвимость спуфинга в Windows Storage, отслеживаемая как CVE-2025-49760. Несмотря на относительно низкий рейтинг по шкале CVSS (3.5), ее эксплуатация в правильной последовательности приводит к катастрофическим последствиям. Компания Microsoft устранила этот недостаток в рамках ежемесячного обновления Patch Tuesday в июле 2025 года. В официальном описании уязвимости говорится: «Внешний контроль имени или пути файла в хранилище Windows позволяет авторизованному злоумышленнику выполнять спуфинг по сети».

Фундаментальная проблема кроется в работе компонента Endpoint Mapper (EPM) протокола RPC. EPM функционирует как справочная служба, аналогичная системе DNS: если DNS преобразует доменное имя в IP-адрес, то EPM сопоставляет уникальный идентификатор интерфейса службы (UUID) с конкретной сетевой конечной точкой. Главный недостаток EPM заключается в отсутствии проверки подлинности процесса, который регистрирует тот или иной UUID. Это позволяет любому процессу, даже с низкими привилегиями, зарегистрировать известный UUID системной службы и перенаправить все запросы к ней на свой вредоносный сервер.

Атака наиболее эффективна против служб, которые не запускаются немедленно при старте системы. Злоумышленник использует состояние гонки, нацеливаясь на службы с типом запуска «Вручную» или «Отложенный запуск». Это создает временное окно, в течение которого легитимная служба еще не активна, а ее RPC-интерфейс не зарегистрирован, что позволяет атакующему занять ее место в EPM.

Для демонстрации была разработана цепочка эксплойта, нацеленная на службу хранилища (StorSvc.dll). Вредоносный процесс регистрирует ее UUID в EPM, указывая на собственный поддельный RPC-сервер. Затем атакующий инициирует обращение к этой службе со стороны службы оптимизации доставки (DoSvc.dll) — системного компонента, работающего в режиме Облегченного защищенного процесса (PPL), который был введен в Windows 8.1 для защиты критических процессов от вредоносного кода.

Из-за «отравления» EPM, запрос от защищенного процесса DoSvc.dll поступает на поддельный сервер злоумышленника. Атакующий немедленно вызывает метод GetStorageDeviceInfo(), который заставляет службу оптимизации доставки подключиться к подконтрольному злоумышленнику SMB-ресурсу. Во время этого подключения служба аутентифицируется с использованием своей учетной записи компьютера, что приводит к утечке ее NTLM-хеша.

Получив NTLM-хеш, злоумышленник переходит к следующему этапу — атаке типа NTLM Relay, известной как ESC8. Похищенные учетные данные ретранслируются на веб-страницу регистрации служб сертификации Active Directory (AD CS). С помощью такого инструмента, как Certipy, атакующий от имени скомпрометированной службы запрашивает цифровой сертификат.

Имея на руках действительный сертификат, выданный центром сертификации домена, злоумышленник использует его для получения тикета Kerberos (Ticket-Granting Ticket, TGT). Этот тикет предоставляет права, достаточные для выполнения дампа всех секретов с контроллера домена, что равносильно полной компрометации всей сетевой инфраструктуры.

Автором исследования является Рон Бен Ицхак из компании SafeBreach, который представил свои выводы на конференции DEF CON 33. Для автоматизации поиска уязвимых RPC-интерфейсов команда SafeBreach также выпустила инструмент RPC-Racer.

Помимо захвата домена, техника EPM Poisoning может применяться и для других атак. Например, для организации атак «человек посередине» (Adversary-in-the-Middle), когда трафик перехватывается, анализируется и затем перенаправляется на легитимную службу, или для проведения атак типа «отказ в обслуживании» (DoS) путем регистрации множества системных UUID и последующего отклонения всех входящих запросов.

Для обнаружения подобных атак рекомендуется вести мониторинг системных вызовов к функции RpcEpRegister и использовать технологию трассировки событий для Windows (ETW) для регистрации активности приложений. Исследователи отмечают, что для полного устранения угрозы требуется фундаментальное изменение в дизайне EPM: протокол должен криптографически проверять подлинность RPC-сервера при регистрации, по аналогии с механизмом SSL pinning, который используется для верификации подлинности серверов в веб-протоколах.


Новое на сайте

20327Кости прерий: как истребление бизонов породило целую индустрию — и сама себя же уничтожила 20326Кто и зачем взламывает серверы Ollama и ComfyUI ради ключей от AWS? 20325Как злоумышленники спрятали командный сервер внутри блокчейна и почему его невозможно... 20324Брюссель заставляет Android делиться секретами с чужими ИИ-помощниками 20323WordPress: как два бага слились в одну критическую дыру, которую назвали wp2shell 20322Как китайские хакеры обманули DigiCert и украли сертификаты для подписи кода? 20321Что скрывается за уязвимостью, которую агентство США внесло в список активно используемых... 20320Автономные системы наступают быстрее, чем инфраструктура для управления ими: кто выиграет... 20319Почему в OpenSSL нашли дыру, съедающую память серверов, но не дали ей даже номер CVE? 20317SonicWall SMA 1000: как два бага превратили VPN-шлюз в бэкдор для атакующих 20316Может ли уязвимость в клиенте Zoom для Windows открыть доступ к чужому аккаунту без... 20315TELEPUZ: новый вредонос на C, который научился прятаться в Telegram, Steam и блокчейне... 20314Дома из дёрна: как исландцы триста лет прятались от холода под слоем земли и травы 20313Как один токен от чужого сервиса мог впустить злоумышленника в чужой аккаунт n8n?
Ссылка