После установки майских обновлений безопасности (от 8 мая 2018 г. на платформы Windows 7/8/10 и серверные платформы на ОС Windows Server 2008 R2 / 2012 R2 / 2016) пользователи не получают доступ к удаленной машине посредством RDP и RemoteApp, и происходит следующая ошибка:
В начале весны 2018 года Microsoft выпустила обновление, предотвращающее удалённое выполнение кода с помощью уязвимости в протоколе CredSSP, и в мае было выложено обновление после установки которого по умолчанию клиентским машинам запрещено подключение к удаленным RDP-серверам с уязвимой версией протокола CredSSP. Соответственно если на клиентах весенние обновления установлены, а на серверах с ОС Windows Server — не установлены, то мы получим ошибку при подключении:
«Произошла ошибка при проверке подлинности. Указанная функция не поддерживается. Причиной ошибки может быть исправление CredSSP.»
Или английский вариант:
«This could be due to CredSSP encryption oracle remediation.»
Ошибка клиента RDP появляется после установки обновлений безопасности:
- Windows 7 / Windows Server 2008 R2 — обновление KB4103718
- Windows 8.1 / Windows Server 2012 R2 — обновление KB4103725
- Windows 10 1803 — обновление KB4103721
- Windows 10 1709 — обновление KB4103727
- Windows 10 1703 — обновление KB4103731
- Windows 10 1609 — обновление KB4103723
- Windows Server 2016 — обновление KB4103723
Для восстановления подключения можно просто удалить вышеуказанные обновления, но это действие откроет найденную уязвимость, поэтому план действий для решения проблемы будет такой:
- Мы временно, на компьютере с которого подключаемся по RDP, уберем уведомление безопасности, которое блокирует подключение;
- Подключимся к нему по уже восстановленному RDP-подключению, и установим необходимый патч безопасности;
- Включим обратно уведомление безопасности которое временно отключали в первом пункте плана действий.
Поехали!
- Открываем редактор локальных групповых политик: Пуск — Выполнить — gpedit.msc;
- Переходим в раздел Конфигурация компьютера — Административные шаблоны — Система — Передача учетных данных (Computer Configuration — Administrative Templates — System — Credentials Delegation — англ.);
- Находим политику с именем Исправление уязвимости шифрующего оракула (Encryption Oracle Remediation- англ.). Включите политику Включено (Enabled — англ.), в качестве параметра в выпадающем списке выберите Оставить уязвимость (Vulnerable — англ.);
- Осталось обновить политики на компьютере (для этого открываем Cmd и используем команду gpupdate/force) и попробовать подключится по RDP. При включенной политике клиентские приложения с поддержкой CredSSP смогут подключаться даже к непропатченным Remote Desktop серверам.
Если это домашний компьютер с урезанной версией Windows, и у вас нет доступа к консоли локальных групповых политик — не беда, воспользуемся редактором реестра (Regedit). Запускаем его, и проходим по пути:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
и установить значение параметра AllowEncryptionOracle в значение 2 (0х00000002).
Затем, необходимо скачать и установить обновления безопасности, подходящие для вашей системы (публикую прямые ссылки на обновления для Windows Server для вашего удобства, которые очень рекомендую установить):
- Windows Server 2016 / Windows 10 1607 — KB4103723
- Windows Server 2012 R2 / Windows 8 — KB4103715
- Windows Server 2008 R2 / Windows 7 — KB4103712
После установки этих обновлений политику в GPO нужно вернуть на значение Force Updated Clients, так как только в этом случае ваша ОС будет защищена от уязвимости подключения к незащищенным хостам с CredSSP. Для ОС с ответствующей оснасткой локальной GPO — запускаем Regedit, и идем по пути:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
и устанавливаем значение параметра AllowEncryptionOracle в значение 0.
На этом на сегодня всё. Проблема RDP-подключения решена, уязвимость закрыта.
8 мая 2018 г. Microsoft выпустило обновление, которое предотвращает удаленное выполнение кода с помощью уязвимости в протоколе CreedSSP.
После установки данного обновление пользователи не могут подключиться к удаленным ресурсам посредством RDP или RemoteApp. При подключении происходит такая ошибка:
Рисунок 1 — Ошибка проверки подлинности RDP
Появление ошибки обусловлено установкой данных обновлений безопасности:
- Windows Server 2016 — обновление KB4103723
- Windows 10 1609 — обновление KB4103723
- Windows 10 1703 — обновление KB4103731
- Windows 10 1709 — обновление KB4103727
- Windows 10 1803 — обновление KB4103721
- Windows 7 / Windows Server 2008 R2 — обновление KB4103718
- Windows 8.1 / Windows Server 2012 R2 — обновление KB4103725
В данной статье мы рассмотрим варианты исправления данной ошибки.
Вариант №1: Убираем проверку подлинности.
Заходим в свойства компьютера, переходим на вкладку Удаленный доступ и снимаем галку с чекбокса.
Рисунок 2 — Проверка подлинности
Вариант №2 (рекомендуемый): Обновление клиентских и серверных ОС.
Устанавливаем специально выпущенные патчи обновления, которые закрыли уязвимость в RDP-клиенте. Данные обновления можно посмотреть на сайте Microsoft. После установки данного обновления, мы обновляем CredSSP.
Вариант №3: Через групповые политики.
Локально заходим в групповые политики устройства, к которому пытаемся подключиться. Для того чтобы открыть редактор групповых политик выполним следующее действие: Нажимаете Win+R, а затем введите gpedit.msc. Переходите по данному пути: Конфигурация компьютера > Административные шаблоны > Система > Передача учетных данных > Защита от атак с использованием криптографического оракула.
В свойствах данной политики выбираем пункт Включено и ниже в параметрах выбираем уровень защиты Оставить уязвимость.
После того, как данные действия выполнены, необходимо зайти в командную строку от имени администратора и выполнить данную команду:
Вариант №4. Редактирование реестра.
Локально заходим на устройство, к которому пытаемся подключиться и нажимаем Win+R. Вводим regedit. После того, как откроется редактор реестра идем по следующему пути:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
Затем находим параметр AllowEncryptionOracle, открываем его и ставим значение 2.
После выполнения данных действий с реестром выполняем перезагрузку устройства.
Нужна помощь в настройке RDP-подключений? Обращайтесь к нам!
Проблема CredSSP RDP
Добрый день, уважаемые читатели блога! Отпуск закончился и принёс свои сюрпризы.
Сегодня вал звонков от сотрудников: «Иван! Не можем подключиться к серверу!». К серверу пользователи подключаются через RDP. В настройках ничего не менялось, для обновлений ещё не время. Полез смотреть на компьютер пользователя и показало вот такую ошибку:
«Произошла ошибка при проверке подлинности.
Указанная функция не поддерживается
Причиной ошибки может быть исправление шифрования CredSSP.»
Причиной данной проблемы является отсутствие обновления CVE-2018-0886 на сервере или клиенте, проблема зафиксирована после 8 мая 2018 года.
Решение №1
Скачать соответствующие обновления от компании Microsoft (лучший вариант):
- CVE-2018-0886 для Windows 10 x86
- CVE-2018-0886 для Windows 10 x64
- CVE-2018-0886 для Windows 8.1 x86
- CVE-2018-0886 для Windows 8.1 x64
- CVE-2018-0886 для Windows 7 x86
- CVE-2018-0886 для Windows 7 x64
- CVE-2018-0886 для Windows Server 2016
- CVE-2018-0886 для Windows Server 2012 R2
- CVE-2018-0886 для Windows Server 2012
- CVE-2018-0886 для Windows Server 2008 R2
- CVE-2018-0886 для Windows Server 2008 R2 Itanium
Сразу отмечу для Windows 10 и Windows Server 2016 объём обновлений довольно большой. Так что запаситесь терпением. Для остальных систем ТОЛЬКО обновление безопасности (без накопительного обновления).
Решение №2
Если по каким-то причинам обновление установить не удаётся можно включить игнорирование уязвимости CredSSP. Сделаем это через редактор групповых политик.
В окне выполнить пишем gpedit.msc, запускам.
Далее идём в Конфигурация компьютера — Административные шаблоны — Система — Передача учетных данных.
Ищем политику «Исправление уязвимости шифрующего оракула», включаем его (по стандарту стоит настройка «Не задана») ставим точку напротив «Включена», уровень защиты выберем «Оставить уязвимость».
Нажимаем «ОК» и теперь сможем без проблем подключаться к серверу.
Но лучше поставить обновления.
Всем удачи и хороших новостей после отпуска!
Информация об уязвимости в провайдере безопасности CredSSP ОС Windows была опубликована 13.03.2018 в документе CVE-2018-0886 | CredSSP Remote Code Execution Vulnerability. В этом документе можно найти ссылки на обновления безопасности, которые были выпущены для закрытия этой уязвимости. Выпущенные обновления относятся к механизмам CredSSP, как в клиентских, так и в серверных ОС Windows. При этом неправильная последовательность развёртывания обновлений, касающихся CredSSP, может привести к неожиданным последствиям.
Например, если перечисленные в документе мартовские обновления не были установлены на стороне сервера служб удалённых рабочих столов (Remote Desktop Services\RDS), но при этом на клиентских Windows-системах разворачивается выпущенное 08.05.2018 кумулятивное обновление (Monthly Rollup), получится так, что клиенты больше не смогут подключиться к RDS-серверу, получив ошибку проверки подлинности с отсылкой на исправление безопасности CredSSP:
Это связано с тем, что майские обновления приводят к форсированному применению более высокого уровня безопасности CredSSP для исключения возможности эксплуатации ранее обнаруженной уязвимости. Из информации о ревизиях CVE-2018-0886:
Microsoft is releasing new Windows security updates to address this CVE on May 8, 2018. The updates released in March did not enforce the new version of the Credential Security Support Provider protocol. These security updates do make the new version mandatory. For more information see "CredSSP updates for CVE-2018-0886" located at https://support.microsoft.com/en-us/help/4093492.
Более подробную информацию о вносимых в систему изменениях и вариантах использования режимов работы CredSSP можно получить из статьи KB4093492 — CredSSP updates for CVE-2018-0886.
Помимо служб RDS, замечено, что отсутствие обновления для CredSSP на стороне серверов виртуализации Hyper-V также может привести к невозможности подключения к консолям виртуальных машин при попытке доступа с обновлённых клиентских систем через консоли управления Hyper-V Manager или SCVMM.
Учитывая то обстоятельство, что патченный клиент не сможет подключаться к непатченному серверу, важно соблюсти корректную последовательность развёртывания обновлений из службы Windows Update/WSUS, описанных в CVE-2018-0886. То есть, сначала планируем и разворачиваем обновления безопасности на стороне серверов RDS, а затем разворачиваем обновления на стороне клиентских Windows-систем.
Если же вы уже развернули обновления на клиентские компьютеры, предварительно не обновив серверы, и нарвались на ситуацию, когда клиенты массово не могут подключиться к серверам RDS, то для возобновления работы серверов RDS вам может помочь централизованное ослабление уровня безопасности CredSSP на клиентских компьютерах через доменные групповые политики Active Directory. Для этого в редакторе доменных групповых политик Group Policy Management откроем политику, отвечающую за настройку клиентских компьютеров и в разделе Computer Configuration > Administrative Templates > System > Credentials Delegation найдём и включим параметр «Encryption Oracle Remediation«
Обратите внимание на то, что данный параметр групповой политики будет доступен только в том, случае если в ADMX-шаблоны групповых политик в центральном доменном хранилище были обновлены до актуальной версии, доступной для загрузки по ссылке: Administrative Templates (.admx) for Windows 10 April 2018 Update (1803).
Возможные варианты применения данного параметра групповых политик описан в выше упомянутой статье KB4093492 — CredSSP updates for CVE-2018-0886. Там же приводится информация по изменяемому данной политикой параметру системного реестра Windows (эта информация может оказаться полезной для пользователей вне домена).
Для того, чтобы ослабить уровень безопасности CredSSP, позволив тем самым подключаться патченным клиентам к непатченным серверам, потребуется установить значение параметра Protection Level равным Vulnerable.
После этого дожидаемся применения групповых политик на клиентских ПК, либо форсировано выполняем команду gpupdate. В результате на клиентскую машину «прилетит» новый параметр реестра:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters]
"AllowEncryptionOracle"=dword:00000002
В статье KB4093492 отмечено, что для вступления изменений в силу требуется перезагрузка системы, но имеющаяся у меня под руками подопытная клиентская ОС Windows 10 1703 (с установленным патчем CredSSP) без перезагрузки начала успешно подключаться к непатченным серверам RDS, на которые ранее подключиться не могла.
Майские обновления СredSSP предполагают использование режима работы, тождественного установленному значению Mitigated. Это значит что, после того, как на все RDS-серверы будут установлены обновления из статьи CVE-2018-0886, значение параметра «Encryption Oracle Remediation» в групповых политиках желательно либо перевести в режим Mitigated, либо отключить и оставить ненастроенным.
После установки обновлений безопасности Windows, которые вышли после мая 2018 года, вы можете столкнуться с ошибкой CredSSP encryption oracle remediation при RDP подключении к удаленному серверу и компьютеру Windows в следующих случаях:
- Вы подключаетесь к удаленному рабочему столу компьютера с недавно установленной старой (например, RTM) версией Windows (например, Windows 10 ниже билда 1803, Windows Server 2012 R2, Windows Server 2016), на котором не установлены последние обновления безопасности Windows;
- Вы пытаетесь подключиться к RDP компьютеру, на который давно не устанавливали обновления Microsoft;
- RDP подключение блокирует удаленный компьютер, т.к. нет нужных обновлений безопасности на вашем клиентском компьютере.
Попробуем разобраться с тем, что означает RDP ошибка CredSSP encryption oracle remediation и как ее можно исправить.
Итак, при попытке подключения к приложению RemoteApp на RDS серверах под Windows Server 2016 / 2012 R2 / 2008 R2, или к удаленным рабочим столам других пользователей по протоколу RDP (на Windows 10, 8.1 или 7), появляется ошибка:
Remote Desktop connection
An authentication error has occurred.
The function is not supported.
Remote Computer: hostname
This could be due to CredSSP encryption oracle remediation.
Подключение к удаленному рабочему столу
Произошла ошибка при проверке подлинности.
Указанная функция не поддерживается.
Причиной ошибки может быть исправление шифрования CredSSP.
Данная ошибка связана с тем, что на Windows Server или на обычной десктопной версии Windows, к которой вы пытаетесь подключится по RDP, не устанавлены обновления безопасности Windows (как минимум с марта 2018 года).
Дело в том, что еще в марте 2018 Microsoft выпустила обновление, закрывающее возможность удаленного выполнения кода с помощью уязвимости в протоколе CredSSP (Credential Security Support Provider). Подробно проблема описана в бюллетене CVE-2018-0886. В мае 2018 было опубликовано дополнительное обновление, в котором по-умолчанию клиентам Windows запрещается подключаться к удаленным RDP серверам с уязвимой (непропатченной) версией протокола CredSSP.
Таким образом, если вы на RDS/RDP серверах (компьютерах) Windows с марта 2018 года не устанавливались накопительные обновления безопасности, а на RDP клиентах установлены майские обновления (или более новые), то на них при попытке подключится к RDS серверам с непропатченной версией CredSSP будет появляется ошибка о невозможности подключения:
This could be due to CredSSP encryption oracle remediation
.
Ошибка RDP клиента появляется после установки следующих обновлений безопасности:
- Windows 7 / Windows Server 2008 R2 — KB4103718
- Windows 8.1 / Windows Server 2012 R2 — KB4103725
- Windows Server 2016 — KB4103723
- Windows 10 1803 — KB4103721
- Windows 10 1709 — KB4103727
- Windows 10 1703 — KB4103731
- Windows 10 1609 — KB4103723
В списке перечислены номера KB от мая 2018 года, на данный момент вам нужно скачивать и устанавливать более новый пакет накопительных обновлений для вашей редакции Windows. Вы можете получить последние обновления безопасности через Windows Update с серверов Microsoft, с локального WSUS сервера, или скачать вручную из каталога обновлений Windows — Microsoft Update Catalog — https://www.catalog.update.microsoft.com/Home.aspx. Например, для поиска обновлений за август 2019 года для Windows 10 1803 нужно использовать поисковый запрос: windows 10 1803 8/*/2019. Скачайте и установите кумулятивное обновление (в моем примере это будет “2019-08 Cumulative Update for Windows 10 Version 1803 for x64-based Systems (KB4512509)”.
Для восстановления удаленного подключения к рабочему столу можно удалить обновления безопасности на клиенте, с которого выполняется RDP подключение (но это крайне не рекомендуется, т.е. есть более безопасное и правильное решение).
Для решения проблемы вы можете временно на компьютере, с которого вы подключаетесь по RDP, отключить проверку версии CredSSP на удаленном компьютере. Это можно сделать через редактор локальных групповых политик. Для этого:
- Запустите редактор локальных GPO — gpedit.msc;
- Перейдите в раздел политик Computer Configuration -> Administrative Templates -> System -> Credentials Delegation (Конфигурация компьютера -> Административные шаблоны -> Система -> Передача учетных данных);
- Найдите политику с именем Encryption Oracle Remediation (Исправление уязвимости шифрующего оракула). Включите политику (Enabled/ Включено), а в качестве параметра в выпадающем списке выберите Vulnerable / Оставить уязвимость;
- Осталось обновить политики на вашем компьютере (команда
gpupdate /force
) и попробовать подключится по RDP к удаленному компьютеру. При включенной политике Encryption Oracle Remediation со значением Vulnerable ваши терминальные приложения с поддержкой CredSSP смогут подключаться даже к RDS/RDP серверам и компьютерам Windows, на которых отсутствуют актуальные обновления безопасности.
Политика Encryption Oracle Remediation предлагает 3 доступных значения защиты от CredSSP уязвимости:
- Force Updated Clients — самый высокий уровень защиты, когда RDP сервер запрещает подключение не обновлённым клиентам. Обычно эту политику стоит включать после полного обновления всей инфраструктуры и интеграции актуальных обновлений безопасности в установочные образы Windows для серверов и рабочих станций;
- Mitigated – в этом режиме блокируется исходящее удаленное RDP подключение к RDP серверам с уязвимой версией CredSSP. Однако другие службы, использующие CredSSP работаю нормально;
- Vulnerable –самый низкий уровень зашиты, когда разрешается подключение к RDP сервера с уязвимой версией CredSSP.
Если у вас отсутствует редактор локальных GPO (например, в Home редакциях Windows), вы можете внести изменение, разрешающее RDP подключение к серверам с непропатченной версия CredSSP, напрямую в реестр с помощью команды:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
Вы можете изменить этот параметр в реестре сразу на множестве компьютеров в AD с помощью доменной GPO (консоль gpmc.msc) или таким PowerShell скриптом (список компьютеров в домене можно получить с помощью командлета Get-ADComputer из модуля RSAT-AD-PowerShell):
Import-Module ActiveDirectory
$PSs = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $PCs) {
Invoke-Command -ComputerName $computer -ScriptBlock {
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}
После успешного подключения к удаленному RDP серверу (компьютеру) нужно установить на нем актуальные обновления безопасности через службу Windows Update (проверьте, что служба включена) или вручную. Скачайте и установите последние кумулятивные обновления Windows как показано выше. Если при установке MSU обновления появляется ошибка “Это обновление неприменимо к вашему компьютеру”, познакомьтесь со статей по ссылке.
Для Windows XP/ Windows Server 2003, которые сняты с поддержки нужно установить обновления для Windows Embedded POSReady 2009. Например, https://support.microsoft.com/en-us/help/4056564
После установки обновлений и перезагрузки сервера, не забудьте отключить политику на клиентах (либо выставить ее на Force Updated Clients), или вернуть значение 0 для ключа реестра AllowEncryptionOracle. В этом случае, ваш компьютер не будет подвержен риску подключения к незащищенным хостам с CredSSP и эксплуатации уязвимости.
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 0 /f
Есть еще один сценарий, когда обновления отсутствуют на вашем компьютере. Например, RDP сервер обновлен, но на нем выставлена политика, блокирующая RDP подключения с компьютеров с уязвимой версией CredSSP (Force Updated Clients). В этом случае при RDP подключении вы также увидите ошибку “This could be due to CredSSP encryption oracle remediation”.
Проверьте последнюю дату установки обновлений Windows на вашем компьютере с помощью модуля PSWindowsUpdate или через WMI команду в консоли PowerShell:
gwmi win32_quickfixengineering |sort installedon -desc
В этом примере видно, что последние обновления безопасности Windows устанавливалось 17 июня 2018 года. Скачайте и установите более новый MSU файл с кумулятивным обновлением для вашей редакции Windows (смотрите выше).