Ошибка RDP: CredSSP Encryption Oracle Remediation (CVE-2018-0886)
Архитектура уязвимости CredSSP и симптомы блокировки
При попытке подключения к серверу или рабочей станции по удаленному рабочему столу (RDP) возникает всплывающее окно с ошибкой: «Произошла ошибка проверки подлинности... Это может быть связано с исправлением шифрования CredSSP (This could be due to CredSSP encryption oracle remediation)». Подключение мгновенно прерывается, окно ввода пароля не появляется.
Суть конфликта (CVE-2018-0886)
В мае 2018 года Microsoft выпустила патч, закрывающий критическую уязвимость в протоколе Credential Security Support Provider (CredSSP), которая позволяла хакерам выполнять атаки Man-in-the-Middle (MITM) и перехватывать RDP-сессии. Конфликт возникает, когда ваш клиентский ПК УЖЕ получил этот патч безопасности (и требует защищенного соединения), а удаленный Сервер ЕЩЕ НЕ обновлен. Безопасный ПК отказывается подключаться к уязвимому серверу.
Пошаговое дерево решений (Патчинг и Обход)
Сценарий 1: Правильный (Обновление целевого сервера)
Единственное архитектурно верное решение — установить последние накопительные обновления (Cumulative Updates) на целевой сервер (к которому вы пытаетесь подключиться). Как только сервер получит патч (CVE-2018-0886), он начнет поддерживать защищенный протокол CredSSP, и ошибка исчезнет навсегда.
Сценарий 2: Обходной путь (Правка реестра на локальном ПК)
Если целевой сервер обновить нельзя (например, это старый Server 2008 без лицензий ESU, или у вас нет к нему физического доступа), вам придется разрешить уязвимое подключение (понизить безопасность) на вашем собственном ПК (клиенте).
- На ВАШЕМ ЛОКАЛЬНОМ ПК (с которого вы звоните) нажмите Win+R ->
regedit. - Перейдите в ветку:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters(Если папок CredSSP и Parameters нет — создайте их). - Создайте параметр DWORD (32-бита) с именем
AllowEncryptionOracle. - Установите значение 2 (Означает Vulnerable / Уязвимый).
- Закройте реестр и подключайтесь по RDP (перезагрузка ПК не требуется).
Сценарий 3: Настройка через групповую политику (GPO)
Если вы администратор домена и хотите массово разрешить подключение к старым серверам для ИТ-отдела:
- Откройте
gpedit.msc(или доменную GPO). - Перейдите:
Конфигурация компьютера -> Адм. шаблоны -> Система -> Передача учетных данных. - Найдите политику Исправление уязвимости шифрующего оракула CredSSP (Encryption Oracle Remediation).
- Включите её и выберите уровень защиты Оставить уязвимым (Vulnerable).
- Выполните
gpupdate /force.
Типовые ошибки администраторов
- Правка реестра на сервере: Ошибка возникает из-за того, что ваш клиент (ПК) отказывается идти на сервер. Править реестр или GPO нужно НА КЛИЕНТЕ, а не пытаться делать это на самом удаленном сервере.
Уязвимости RDP и NTLM — это открытая дверь для шифровальщиков и хакеров (Lateral Movement). Возьмем вашу ИТ-инфраструктуру на системный аутсорсинг: плавно мигрируем старые ОС (P2V), закроем RDP за шлюзом (RD Gateway), настроим MFA (Двухфакторку) и обеспечим безопасные доступы без 'костылей' в реестре.
Частые вопросы (FAQ)
Опасно ли ставить AllowEncryptionOracle = 2?
Да. Устанавливая '2' (Уязвимый), вы разрешаете вашему ПК использовать старую версию протокола NLA. Злоумышленник в вашей локальной сети (Man-in-the-Middle) сможет перехватить ваши учетные данные (логин/пароль) в момент инициализации RDP-сессии.
Что означает уровень защиты 'Обновленные клиенты' (Mitigated)?
Это значение '1' в реестре. Клиентское приложение (mstsc.exe) будет требовать обновленный протокол CredSSP, но серверу разрешается не отвечать этим требованиям полностью. Это средний уровень паранойи.
Что означает уровень 'Принудительное обновление' (Force Updated Clients)?
Это значение '0'. Высший уровень защиты (включен в Windows 10/11 по умолчанию). Клиент жестко требует пропатченного сервера. Если сервер не обновлен — связь блокируется с той самой ошибкой.
Можно ли отключить NLA на сервере, чтобы обойти ошибку?
Да. Если к серверу нельзя применить патчи Windows (Server 2008), просто отключите обязательную проверку NLA (Network Level Authentication) в свойствах системы (sysdm.cpl -> Удаленный доступ) целевого сервера. Это уберет использование протокола CredSSP, и ошибка исчезнет (но безопасность RDP упадет до нуля).
Поможет ли установка другого RDP-клиента (например, MobaXterm)?
Нет. Все сторонние утилиты под Windows (mRemoteNG, MobaXterm, RDCMan) под капотом используют встроенные библиотеки ОС (mstscax.dll и подсистему CredSSP). Они столкнутся с той же ошибкой ядра ОС.