- Почему появляется ошибка CredSSP
- Причины ошибки шифрования CredSSP
- Как решить ошибку в протоколе CredSSP
- Установка обновлений
- Отключение уведомлений через редактор локальной групповой политики
- Что делать, если в ОС нет параметра “Исправление уязвимости шифрующего оракула”?
- Назначение CredSSP
- Поставщик общих служб Windows
- Варианты исправления ошибки CredSSP
- Отключаем credssp в Windows через NLA
- Отключаем шифрование credssp через GPO
Почему появляется ошибка CredSSP
Итак мы уже знаем, что на многих версиях Windows (серверные версии 2016/2012/2008, за исключением 2013, а также клиентские версии начиная с 7) без кумулятивных патчей не устанавливаются, если попытаться подключиться к удаленному ПК через RDS /RDP, возникла проблема с подключением к удаленному рабочему столу.
Другими словами, при удаленном подключении к компьютеру во время процедуры аутентификации по шифрованию возникла ошибка CredSSP, которая может быть вызвана несоответствием протоколов шифрования. Это происходит потому, что на одной из машин (клиентской или удаленной) не установлены правильные обновления, выпущенные после марта 2018 года.
Именно тогда Microsoft начала развертывание обновления, направленного на защиту выявленной уязвимости протокола CredSSP, которая ставила под угрозу возможность удаленного выполнения кода злоумышленниками. Технические подробности проблемы достаточно подробно изложены в бюллетене CVE2018-0886. Через два месяца вышло еще одно обновление, которое по умолчанию вводило запрет на возможность клиентской машины Windows общаться с удаленным сервером, если версия протокола CredSSP не была пропатчена мартовским обновлением.
То есть, если у вас есть клиент Windows с установленными вовремя майскими обновлениями, и вы пытаетесь подключиться к удаленным серверам, на которых не установлены накопительные обновления безопасности с весны 2018 года, такие попытки потерпят неудачу. В этом случае клиентская машина получит сообщение о невозможности установления удаленного соединения типа CredSSP.
Так, причиной ошибки может быть исправление разработчиками протокола шифрования CredSSP, появившееся в результате выхода следующих обновлений:
- для версии сервера 2008 R2 и «семерки» — KB4103718;
- для WS 2016 — KB4103723;
- для WS 2012 R2 и Windows 8.1 — KB4103725;
- для «десятки» сборки 1803 – KB4103721;
- для Windows 10 сборка 1609 — KB4103723;
- для «ti» сборки 1703 — KB4103731;
- для W10 сборки 1709 — KB4103727.
В этом списке указано количество обновлений, выпущенных в мае 2018 года; в настоящее время необходимо устанавливать более новые накопительные пакеты обновлений (их еще называют накопительными) обновлениями. Существует несколько способов выполнения этой операции. Например, получив доступ к службе Центра обновления Windows на базе серверов разработчика или используя локальный сервер WSUS. Наконец, вы можете вручную загрузить необходимые обновления безопасности через каталог Центра обновления Microsoft (это каталог Центра обновления Windows).
Конкретно для поиска обновлений для вашего компьютера, где установлена «десятка» build 1803, на май 2020 года поиск должен выглядеть так: windows 10 1803 5/*/2020.
Причины ошибки шифрования CredSSP
В марте 2018 года Microsoft выпустила обновление безопасности для решения проблемы протокола Credential Security Support Provider (CredSSP) CVE-2018-0886 (https://support.microsoft.com/en-us/help/4093492/credssp-updates- for -cve-2018-0886-march-13-2018), используемый соединениями по протоколу удаленного рабочего стола (RDP) для клиентов Windows и Windows Server. Как только пользователи и системные администраторы установили обновления, по всему миру начались массовые жалобы на то, что люди не могут подключиться к серверам, компьютерам по RDP, а также появляется ошибка, что причиной сбоя может быть шифрование CredSSP.
К сожалению, 99% людей и администраторов совершают одну и ту же ошибку, устанавливая обновления сразу, не дожидаясь нескольких дней после выхода. Обычно этого времени вендору хватает, чтобы выявить проблемы и составить ошибочное обновление.
Уязвимость в поставщике поддержки безопасности учетных данных (CredSSP) позволяла удаленно выполнять произвольный код в уязвимой системе, а 8 мая 2018 года Microsoft изменила уровень безопасности подключения с «Уязвимый» на «Мягкий» и инициировала проблемы с RDP-подключениями к удаленному рабочему столу. Раньше можно было с обновлённой машины удаленно подключаться к машинам без обновления безопасности, так сказать, в мягком режиме. Однако с последним обновлением Microsoft усилила безопасность, и теперь невозможно подключиться к компьютерам без обновления CVE-2018-0886.
Буквально все попадало в дистрибутив клиентских операционных систем Windows 7, Windows 8.1, Windows 10, из которого предпринимались попытки подключения к ферме RDS или приложениям RemoteApp, работающим на Windows Server 2008 R2 и новее. Если вы прочтете эту ветку в наши дни, то поймете все возмущение людей, особенно Запада.
Как решить ошибку в протоколе CredSSP
Тем, кто уже столкнулся с последствиями внедрения текущих обновлений от Microsoft, рекомендуется сделать следующее. Нужно:
- Установите с официального сайта необходимую версию обновления CVE-2018-0886, выберите ее для своей операционной системы Windows.
- Если вы не можете исправить протокол CredSSP, просто отключите уведомления об ошибках шифрования.
Второй способ не рекомендуется, так как… Проблема «Ошибка может быть вызвана исправлением шифрования CredSSP» не решает проблему, но может временно помочь не получать сообщения об ошибках и поэтому пользуется все большей популярностью среди пользователей.
Первое, что вам нужно сделать, это включить ручной режим при установке обновлений. Тогда, что бы вы ни делали, чтобы временно отключить сообщения об ошибках, вам все равно придется устанавливать обновления, иначе вы не сможете подключиться к удаленному рабочему столу.
Установка обновлений
Каждая версия ОС Windows имеет свое обновление, которое необходимо установить из каталога Microsoft CO. Ниже мы находим необходимую версию CVE-2018-0886 для вашей операционной системы:
KB4103721 — Windows 10 1803, Server 2016 1803.
KB4103727 — Windows 10 1709, Server 2016 1709.
KB4103731 — Windows 10 1703, Server 2016 1703.
KB4103723 — Windows 10 1607, Server 2016 1607, Server 2016.
KB4103728 — Windows 10 1511, Server 2016 1511.
KB4103716 — Windows 10.
KB4103715 — Windows 8.1, Server 2012 R2, Server 2012.
KB4103712 — Windows 7, Server 2008 R2.
Нажмите на название вашей операционной системы и загрузите необходимое обновление.
Отключение уведомлений через редактор локальной групповой политики
откройте редактор локальной групповой политики, введя команду gpedit.msc в строке «Выполнить». Перед нами появляется вот такое окно.
- Затем перейдите по пути «Конфигурация компьютера» -> «Административные шаблоны» -> «Система» -> «Перенос учетных данных”.
- Ищем параметр «Исправить уязвимость шифрования oracle» и устанавливаем для него значение «ВКЛ”.
- Установите уровень защиты «Оставить уязвимым”.
- Все, перезагрузите устройство и попробуйте подключиться к удаленному рабочему столу.
Что делать, если в ОС нет параметра “Исправление уязвимости шифрующего оракула”?
- В этом случае необходимые параметры вносим в реестр вручную.
- В строке «Выполнить» введите команду regedit.
- В открывшемся редакторе реестра перейдите по пути HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters.
- Здесь мы ищем параметр DWORD с именем AllowEncryptionOracle и присваиваем ему значение 2.
- Если этого параметра нет в Windows, создаем его.
- Обязательно перезагрузите устройство и продолжайте работу.
Можно пойти другим путем:
- откройте командную строку от имени администратора.
- Введите REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2.
- Подтвердите действие.
- Установите компьютер на перезагрузку.
С помощью этой команды мы вносим изменения в реестр, что позволяет нашему устройству подключаться по протоколу CredSSP.
Назначение CredSSP
Что такое CredSSP — это Win32 API, используемый системами Microsoft Windows для выполнения различных операций, связанных с безопасностью, таких как аутентификация. SSPI служит общим интерфейсом для нескольких поставщиков поддержки безопасности (SSP). Поставщик поддержки безопасности — это динамически подключаемая библиотека (DLL), которая делает один или несколько пакетов безопасности доступными для приложений.
CredSSP позволяет приложению делегировать учетные данные пользователя с клиента на целевой сервер для удаленной аутентификации. CredSSP обеспечивает зашифрованный протокол безопасности транспортного уровня. Клиент проходит проверку подлинности по зашифрованному каналу, используя простое и безопасное согласование (SPNEGO) с Microsoft Kerberos или Microsoft NTLM.
После аутентификации клиента и сервера клиент отправляет учетные данные пользователя на сервер. Учетные данные дважды шифруются с помощью сеансовых ключей SPNEGO и TLS. CredSSP поддерживает вход на основе пароля и вход с помощью смарт-карты на основе X.509 и PKINIT.
Поставщик общих служб Windows
Следующие поставщики общих служб устанавливаются вместе с Windows:
- NTLM (представлен в Windows NT 3.51) (msv1_0.dll) — обеспечивает аутентификацию запросов/ответов NTLM для клиентских/серверных доменов до Windows 2000, а также внедоменную аутентификацию (SMB/CIFS).
- Kerberos (представленный в Windows 2000 и обновленный в Windows Vista для поддержки AES) (kerberos.dll). Предпочтителен для взаимной аутентификации домена клиент/сервер в Windows 2000 и более поздних версиях.
- Согласование (введено в Windows 2000) (secur32.dll): выберите Kerberos и, если недоступен, NTLM. SSP обеспечивает функцию единого входа, иногда называемую встроенной проверкой подлинности Windows (особенно в контексте IIS). В Windows 7 и более поздних версиях представлен NEGOExts, который согласовывает использование установленных пользовательских SSP, поддерживаемых на клиенте и сервере для аутентификации.
- Безопасный канал (также известный как SChannel) — представлен в Windows 2000 и обновлен в Windows Vista и более поздних версиях для поддержки более сильного шифрования AES и ECC. Этот поставщик использует записи SSL/TLS для шифрования полезных данных. (Schannel.dll)
- Реализация TLS/SSL от Microsoft PCT (устаревшая версия) представляет собой шифрование с открытым ключом SSP, которое обеспечивает безопасную связь и шифрование для аутентификации клиентов и серверов в Интернете. Обновлено в Windows 7 для поддержки TLS 1.2.
- Дайджест SSP (введен в Windows XP) (wdigest.dll) — обеспечивает аутентификацию на основе запроса/ответа HTTP и SASL между системами Windows и другими системами, где протокол Kerberos недоступен.
- Credential Credentials (CredSSP) (представлен в Windows Vista и доступен в Windows XP SP3) (credssp.dll) — обеспечивает аутентификацию на уровне сети и единый вход для служб удаленных рабочих столов.
- Распределенная аутентификация паролей (DPA) — (введена в Windows 2000) (msapsspc.dll). Обеспечивает аутентификацию через Интернет с использованием цифровых сертификатов.
- Шифрование с открытым ключом между пользователями (PKU2U) (введено в Windows 7) (pku2u.dll) — обеспечивает одноранговую аутентификацию с использованием цифровых сертификатов между системами, которые не являются частью домена.
+ livye-oboi-windows.ru Как выбрать вкладку по умолчанию в диспетчере задач Windows 10 1903
Более подробную информацию можно найти на https://en.wikipedia.org/wiki/Security_Support_Provider_Interface
Варианты исправления ошибки CredSSP
На самом деле вариантов много, это правильно, есть временные и альтернативные решения, которые нужно делать быстро, чтобы оно хоть как-то работало, так как компания может прямо сейчас простаивать и терять деньги.
- Удалить новое обновление безопасности можно в худшем случае, но в критические моменты иногда его используют для того, чтобы отложить работу до вечера или ночи
- Если вам нужен быстрый доступ к серверу и избегайте аутентификации credssp, рекомендую отключить галочку NLA (Network Level Authentication) при подключении к принимающему серверу в русской версии «Разрешить подключения только с компьютеров с удаленным рабочим столом с аутентификацией на уровне сети”
- Тот же метод быстрого массового развертывания использует групповую политику, которая изменит шифрование Oracle Remediation
- Хороший и самый правильный метод — установить обновления на все ваши системы
+ livye-oboi-windows.ru Характеристики оконного режима в операционной системе Windows
Отключаем credssp в Windows через NLA
Я бы рассматривал это решение как быстрое и временное решение перед установкой обновлений безопасности. Чтобы разрешить удаленное подключение к серверу и избежать ошибок аутентификации credssp, выполните следующие действия. Откройте «Свойства моего компьютера» один раз в системе, вы также можете одновременно нажать WIN + Pause Breake или ввести control/name Microsoft.System в командной строке. В окне «Система» находим пункт меню «Настройки удаленного доступа”
Снимите флажок «Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с аутентификацией на уровне сети”
После этого вы сможете без проблем подключиться к этому компьютеру или серверу, но что делать, если вы не можете зайти и снять эту галочку, тогда нам поможет реестр Windows. Вы можете удаленно создать необходимые ключи реестра, которые отключат флаг NLA или политику CredSSP. Есть два способа сделать это:
- Использовать сетевой журнал Windows
- Используйте удаленное управление компьютером, например PsExec.exe. Я уже показал вам, как удаленно открывать порты на брандмауэре.
Попробуем через внешний реестр, открыв Regedit через окно «Выполнить”.
В меню «Файл» выберите «Подключиться к сетевому журналу» и найдите нужный сервер.
У вас будет дополнительный журнал, связанный с двумя ульями. Следуйте по пути (если у вас нет CredSSPParameters, вам необходимо их создать):
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters
Здесь вам необходимо создать ключ REG_DWORD с именем AllowEncryptionOracle и значением 2. В этом случае политика CredSSP установит уровень Vulnerable, который является самым низким уровнем безопасности. Это позволяет удаленно подключаться к серверам с помощью RDP. Однако это подвергнет серверы атакам.
Или вы также можете отключить NLA, для этого найдите ключ реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationRDP-Tcp
Найдите там ключ SecurityLayer и установите для него значение 0, чтобы отключить аутентификацию на уровне сети.
Теперь то же самое можно сделать через PsExec.exe, выставив минимальный уровень безопасности для CredSSP или отключив NLA, для этого находясь в cmd в режиме администратора введите команду:
PsExec.exew10-cl01 -u rootАдминистратор -p пароль cmd
w10-cl01 — имя компьютера.
Затем, запустив сеанс cmd на удаленном компьютере, выполните команду:
REG ADD HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters/v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)
То же самое можно сделать и для отключения аутентификации на уровне сети, команда будет выглядеть так:
REG ADD «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationRDP-Tcp» /v SecurityLayer /t REG_DWORD /d 0
Еще раз обращаю внимание на то, что этот метод временный и самый опасный, он используется в тех случаях, когда вы не можете ничего сделать или больше, но он вам уже понадобился еще вчера, обязательно установите все необходимые обновления.
+ livye-oboi-windows.ru Как создать отчет по исследованию сна в Windows 10
Отключаем шифрование credssp через GPO
Если у вас большая инфраструктура с сотнями компьютеров и сотнями серверов, вы можете временно отключить новый уровень шифрования CredSSP и удалить «Имя внешнего компьютера. Исправить шифрование CredSSP» перед установкой любых необходимых ночных обновлений. Для этого мы можем в полной мере воспользоваться преимуществами доменной инфраструктуры Active Directory. Есть два варианта: вы можете создать групповую политику, чтобы распространить ее по необходимым организационным подразделениям, или, если у вас один или два локальных компьютера, вы можете запустить на них локальный редактор групповой политики, внося таким образом изменения только на них.
Напомню, найти оснастку «Управление групповыми политиками» можно на контроллере домена или компьютере с установленным RSAT. Открыть его можно с помощью команды в окне «Выполнить gpmc.msc». Чтобы открыть редактор локальной групповой политики, введите gpedit.msc в окне «Выполнить.
Вам необходимо обратиться в отделение:
Конфигурация компьютера – Административные шаблоны – Система – Делегирование учетных данных – Шифрование исправлений Oracle
откройте настройку «Шифрование исправления Oracle». Активируем политику, активируется опция «Уровень защиты», на выбор будет три варианта:
- Принудительное обновление клиентов — оно будет включено по умолчанию из-за максимального уровня безопасности, вам необходимо изменить эту опцию. Это, так сказать, самый безопасный уровень взаимодействия с клиентом; в идеале это должно быть после установки обновлений на все сервера и компьютеры.
- Оставить уязвимым: клиенты могут подключаться к уязвимым машинам.
- Смягчено: клиенты не могут подключаться к уязвимым серверам, но серверы могут принимать уязвимых клиентов.
Давайте на мгновение выберем «Оставить уязвимым». Сохраним настройки.
Затем вам необходимо обновить политику, для этого откройте командную строку и введите gpupdate /force. Если у вас нет доменного компьютера и Windows 10 Home, на которой нет встроенного редактора локальных политик, необходимо, как описано выше, отредактировать реестр
REG ADD HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters/v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)
Сценарий PowerShell запускается онлайн, чтобы включить эту политику на всех компьютерах в Active Directory
Модуль импорта Active Directory
$PSs = (Get-ADComputer -Filter *). DNSHostName
Foreach ($компьютер-$ПК) {
Recall-Command -ComputerName $computer -Script Block {
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}