Как исправить ошибку шифрования CredSSP в Windows

Почему появляется ошибка 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 build 1609 — KB4103723;
  • для сборки «десятка» 1703 — KB4103731;
  • для W10 build 1709 — KB4103727.

В указанном списке указаны номера обновлений, выпущенных в мае 2018 года, на данный момент вам необходимо установить последние накопительные пакеты обновлений (они также называются накопительными). Есть несколько способов сделать это. Например, обращаясь к серверной службе Windows Update для разработчиков или используя локальный сервер WSUS. Наконец, вы можете вручную загрузить необходимые исправления безопасности через каталог Центра обновления Майкрософт (это каталог Центра обновления Windows).

В частности, для поиска обновлений для вашего компьютера, на котором установлена ​​сборка «десять» 1803, на май 2020 года ваш поисковый запрос должен выглядеть так: windows 10 1803 5 / * / 2020.

Отключаем credssp в Windows через NLA

Я бы рассмотрел этот способ выхода из ситуации как быстрое и временное решение перед установкой обновлений безопасности. Чтобы разрешить удаленное подключение к серверу и избежать ситуации, когда произошла ошибка аутентификации credssp, сделайте следующее. Откройте свойства моего компьютера, попав в систему, вы также можете одновременно нажать WIN + Pause Breake или, альтернативно, ввести control / name Microsoft.System в командной строке. В окне «Система» находим пункт меню «Настройки удаленного доступа»

Снимите флажок «Разрешать подключения только с компьютеров, на которых запущен удаленный рабочий стол с проверкой подлинности на уровне сети»

После этого вы можете легко подключиться к этому компьютеру или серверу, но как вы можете быть, что вы не можете туда попасть и снимите этот флажок, тогда реестр Windows придет нам на помощь. Вы можете удаленно создать необходимые ключи реестра, которые отключат флажок NLA или политику CredSSP. Для этого можно поступить двумя способами:

  1. Использовать сетевой журнал Windows
  2. Используйте удаленное управление компьютером, например PsExec.exe, я уже показал вам, как удаленно открывать порты в брандмауэре.

Попробуем через удаленный реестр, для этого открываем Regedit, через окно «Выполнить».

В меню «Файл» выберите «Подключить сетевой журнал», затем найдите нужный сервер.

У вас будет дополнительный журнал, связанный с двумя ульями. Следуйте по пути (если у вас нет CredSSPParameters, вам нужно будет их создать):

Здесь вам нужно создать ключ REG_DWORD с именем AllowEncryptionOracle и значением 2. В этом случае политика CredSSP установит уровень Vulnerable — это самый низкий уровень безопасности. Это позволит вам подключаться к серверам удаленно, используя RDP. Однако это подвергнет серверы атаке.

Или вы также можете отключить NLA, для этого найдите ключ реестра:

Найдите там ключ SecurityLayer и установите для него значение, чтобы отключить аутентификацию на уровне сети.

Теперь то же самое можно сделать через PsExec.exe, установив минимальный уровень безопасности для CredSSP, или отключить NLA, для этого, находясь в cmd в режиме администратора, введите команду:

w10-cl01 — это имя компьютера.

Затем, запустив сеанс cmd для удаленного компьютера, выполните команду:

То же самое можно сделать и для отключения аутентификации на сетевом уровне, команда будет выглядеть так:

Опять же обращаю ваше внимание на то, что этот способ временный и наиболее опасный, применяется в тех случаях, когда вы не можете делать что-либо или дольше, но он вам уже нужен вчера, обязательно установите все необходимые обновления.

Отключаем шифрование credssp через GPO

Если у вас большая инфраструктура с сотнями компьютеров и сотнями серверов, вы можете временно отключить новый уровень шифрования CredSSP и удалить ошибку «Имя удаленного компьютера. Исправление шифрования CredSSP» перед установкой необходимых обновлений вечером. Для этого мы можем воспользоваться всеми преимуществами доменной инфраструктуры Active Directory. Есть два варианта: вы можете создать групповую политику, чтобы распространить ее среди необходимых организационных единиц, или, если у вас есть один или два локальных компьютера, вы можете запустить на них редактор локальной групповой политики, тем самым внося изменения только в них.

Напоминаю, что вы можете найти оснастку «Управление групповой политикой» на контроллере домена или компьютере с установленным RSAT, открыть ее можно с помощью команды в окне «Выполнить gpmc.msc». Если вы хотите открыть редактор локальной групповой политики, введите gpedit.msc в окне «Выполнить.

Вам нужно перейти в ветку:

Откройте параметр «Oracle Remediation Encryption». Включаем политику, включена опция «Уровень защиты», на выбор будет три варианта:

  • Принудительно обновлять клиентов — он будет включен по умолчанию из-за максимального уровня безопасности, вам необходимо изменить эту опцию. Это как бы самый безопасный уровень взаимодействия с клиентом, в идеале он должен быть после установки обновлений на всех серверах и компьютерах.
  • Оставить уязвимым: клиенты могут подключаться к уязвимым машинам.
  • Снижение риска (смягчение): клиенты не могут подключаться к уязвимым серверам, но серверы могут принимать уязвимых клиентов.

Давайте на время выберем «Оставить уязвимым (Vulnerable)». Сохраним настройки.

Далее вам необходимо обновить политику, для этого откройте командную строку и введите gpupdate / force. Если у вас нет компьютера домена, а также Windows 10 Home, в которой нет встроенного редактора локальной политики, то, как описано выше, вам необходимо отредактировать реестр

В Интернете запущен сценарий PowerShell, позволяющий включить эту политику на всех компьютерах в Active Directory

Модуль импорта ActiveDirectory
$ PSs = (Get-ADComputer -Filter *). DNSHostName
Foreach ($ компьютер на $ ПК) <
Recall-Command -ComputerName $ computer -Script Block <
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters / v AllowEncryptionOracle / t REG_DWORD / d 2
>
>

Причины ошибки шифрования CredSSP

В марте 2018 года Microsoft выпустила обновление безопасности для устранения уязвимостей для протокола поставщика поддержки безопасности учетных данных (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% людей и администраторов совершают ту же ошибку, сразу устанавливая обновления, не дожидаясь пары дней после выпуска. Этого времени обычно достаточно, чтобы поставщик обнаружил проблемы и отозвал дефектное обновление.

Буквально все упало в развертывание клиентской операционной системы Windows 7, Windows 8.1, Windows 10, из которой были предприняты попытки подключиться к ферме RDS или приложениям RemoteApp, работающим на Windows Server 2008 R2 и новее. Если вы прочитаете эту ветку в наши дни, вы поймете все недовольство людей, особенно Запада.

Назначение CredSSP

Что такое CredSSP — это Win32 API, используемый системами Microsoft Windows для выполнения различных операций, связанных с безопасностью, таких как аутентификация. SSPI работает как общий интерфейс для нескольких поставщиков поддержки безопасности (SSP). Поставщик поддержки безопасности — это библиотека динамической компоновки (DLL), которая делает один или несколько пакетов безопасности доступными для приложений.

C redSSP позволяет приложению делегировать учетные данные пользователя от клиента на целевой сервер для удаленной аутентификации. CredSSP предоставляет зашифрованный канал протокола безопасности транспортного уровня. Клиент аутентифицируется по зашифрованному каналу с использованием простого и безопасного согласования (SPNEGO) с Microsoft Kerberos или Microsoft NTLM.

После аутентификации клиента и сервера клиент передает на сервер учетные данные пользователя. Учетные данные шифруются дважды с использованием ключей сеанса SPNEGO и TLS. CredSSP поддерживает вход на основе пароля и вход со смарт-картой на основе X.509 и PKINIT.

Windows SSP

Следующие SSP устанавливаются вместе с 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)
  • PCT (устарело). Реализация TLS / SSL от Microsoft представляет собой шифрование SSP с открытым ключом, которое обеспечивает безопасную связь и шифрование для аутентификации клиентов и серверов через Интернет. Обновлено в Windows 7 для поддержки TLS 1.2.
  • SSP Digest (введено в Windows XP) (wdigest.dll) — обеспечивает аутентификацию на основе запросов / ответов HTTP и SASL между системами Windows и другими системами, в которых протокол Kerberos недоступен.
  • Учетные данные (CredSSP) (введены в Windows Vista и доступны в Windows XP с пакетом обновления 3 (SP3)) (credssp.dll) — обеспечивает аутентификацию на уровне сети и SSO для служб удаленных рабочих столов.
  • Распределенная проверка подлинности по паролю (DPA) — (введена в Windows 2000) (msapsspc.dll) — обеспечивает проверку подлинности через Интернет с использованием цифровых сертификатов.
  • Шифрование открытого ключа между пользователями (PKU2U) (введено в Windows 7) (pku2u.dll) — обеспечивает одноранговую аутентификацию с использованием цифровых сертификатов между системами, которые не являются частью домена.

Варианты исправления ошибки CredSSP

Есть несколько вариантов устранения причины ошибки CredSSP, и мы рассмотрим их отдельно!

Установка последних обновлений

где вам будет предложено вручную загрузить обновление и установить его на клиент / сервер

Вы можете установить недостающие обновления безопасности на сервер через Центр обновления Windows или вручную. Чтобы не выкидывать много лишнего, вот прямые ссылки на обновления для разных версий Windows Server:

  • Windows Server 2016 / Windows 10
  • Windows Server 2012 / Windows 10
  • Windows Server 2008 / Windows 7
    инжир. 3 Ошибка CreedSSP — установите последние обновления

Отключить уведомления об ошибке шифрования CreedSSP

Но есть более простой (но небезопасный) способ обойти это, если нет времени на загрузку и установку! Таким образом, мы просто отключаем это уведомление об ошибке и спокойно продолжаем работать через RDP

  1. запустить cmd от имени администратора
  2. c введите следующую команду: REG ADD HKLM SOFTWARE Microsoft Windows CurrentVersion Policies System CredSSP Parameters / v AllowEncryptionOracle / t REG_DWORD / d 2
  3. перезагрузите компьютер и проверьте RDP

Как выглядит ошибка credssp

Прежде чем показать вам известные мне способы устранения, я хотел бы как обычно подробно описать ситуацию. Вчера, когда я попытался подключиться к своему рабочему компьютеру под управлением Windows 10 1709 из таблицы терминалов, которая является частью фермы RDS на Windows Server 2012 R2, я получил сообщение об ошибке после ввода логина и пароля:

Ну и конечно в русской версии:

Получается двойная ситуация, что RDP вроде работает, но по какой-то причине ваши учетные данные на принимающей стороне не соответствуют некоторым критериям, выясняем, что это за зверюга CredSSP.

Ошибка CredSSP, исправляем за минуту

Добрый день! Уважаемые читатели и гости ИТ-блога Pyatilistnik.org, в прошлый раз, когда мы ремонтировали жесткий диск с поврежденной файловой системой и состоянием RAW, я уверен, что вам это удалось. Сегодня я еще раз перенесу вектор нашего средства устранения неполадок в таблицы терминалов, то есть рассмотрим ситуацию, когда при попытке подключиться к удаленному серверу по протоколу RDP и после ввода логина и пароля вы получаете ошибку, которую вы сделали не пройти аутентификацию, и ошибка может быть вызвана исправлением шифрования CredSSP. Давайте узнаем, что это за зверь этот CredSSP и как вы можете получить доступ к своему серверу.

Оцените статью
Блог о хакинге