Произошла ошибка проверки подлинности предоставленный функции токен неправилен

RRS feed

  • Remove From My Forums
  • Вопрос

  • Всем привет. Есть высокодоступная терминальная ферма. В какой-то момент некоторые пользователи перестали подключаться, но не все. Часть по прежнему могут подключаться. При подключении появляется ошибка: «Произошла
    ошибка проверки подлинности. Предоставленный функции токен неправилен». По информации из интернета всё сводится к CredSSP. Обновил все сервера фермы, обновил клиентскую ос, но ошибка не ушла, NTLM не отключал. Что ещё можно сделать?

Все ответы

  • А КД обновили ? Так же эта ошибка возникает, если сам КД с RDP недоступен. Проверьте RDP, проверьте контроллер, посмотрите диагностику dcdiag /q

  • В какой момент это произошло?
    После установки какого-то обновления?

  • Привет

    Спасибо за ваш вопрос и обращение. Насколько я понимаю, у вас возникли проблемы, связанные с RDP-входом.

    Проверьте уровень безопасности серверов. Недавние обновления Windows также включали те, которые требуют установки исправлений как для клиента, так и для сервера, особенно для CredSSP, или для которых требуются изменения реестра на стороне клиента, чтобы
    обеспечить подключение к серверам без исправлений.

    Отключите любую антивирусную программу или брандмауэр Windows, которые могут быть у вас временно.

    —Если ответ полезен, проголосуйте за него и примите как ответ—

  • В общем спустя почти 2 месяца всё повторилось. Притом странно, никаких обнов не было установлено, никто ничего не трогал. Просто вчера работало, сегодня нет. Более того, есть счастливчики, которые, как и в прошлый раз, подключаются без
    проблем. Есть пользователь, которого пустило с 3-го раза с такой ошибкой. На своём тестовом компе я так же не могу подключиться. В прошлый раз ни один из советов не помог, я развалил ферму и создал новую. Перед разворачиванием
    ролей RDS предварительно обновил все сервера фермы и КД. Всё работало хорошо, до вчерашнего дня. В журналах ничего интересного не нашел. Не могу понять откуда ноги растут

При попытке использовать удаленный рабочий стол из окна Windows 10 (21H2 19044.1566) в Ubuntu 22.04 LTS (полностью пропатченный) я получаю следующую ошибку:

Произошла ошибка аутентификации. Токен, предоставленный функции, недействителен.

Удаленный компьютер: {Имя компьютера}

Это при попытке RDP с пользователем домена AD, который я могу подтвердить успешно войти в систему локально.

2 ответа

Проверьте пароль в Настройки->Общий доступ->Удаленный рабочий стол в разделе Аутентификация, возможно, он не совпадает с тем, который вы используете для подключения по SSH или локально


3

Skysave
22 Май 2022 в 23:50

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

Приложение «Пароль и ключи» -> Щелкните правой кнопкой мыши связку ключей для входа в систему -> измените пароль на пустой. Это добавляет уязвимость безопасности, но может быть допустимо в некоторых настройках.


1

Sergii Zaskaleta
10 Авг 2022 в 23:56

Обновлено 25.11.2019

rdp logo

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

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

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

An authentication error has occurred. The function requested is not supported. Remote computer name. This coild be to CredSSP encryption oracle remediation.

credSSP encryption oracle remediation

Ну и конечно в русском исполнении:

Произошла ошибка при проверке подлинности. Указанная функция не поддерживается. Удаленный компьютер имя. Причиной ошибки может быть исправление шифрования CredSSP

Причиной ошибки может быть исправление шифрования CredSSP

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

Назначение CredSSP

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

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

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

Подробнее на Microsoft https://docs.microsoft.com/en-us/windows/desktop/secauthn/credential-security-support-provider

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

Подробнее на https://en.wikipedia.org/wiki/Security_Support_Provider_Interface

Причины ошибки шифрования 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

Уязвимость в протоколе Credential Security Support Provider (CredSSP — провайдер поддержки безопасности учетных данных) допускала удаленный запуск произвольного кода на уязвимой системе и 8 мая 2018 г. Microsoft изменила уровень безопасности подключения с Vulnerable на Mitigated и начались проблемы подключения к удаленному рабочему столу по RDP. Ранее вы могли удаленно подключаться с обновленной машины к машинам без обновления безопасности, так сказать в мягком режиме. Однако с последним обновлением, Microsoft усилила безопасность, и вы больше не можете подключаться к компьютерам без обновления закрывающего брешь CVE-2018–0886.

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

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

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

  • Вы можете удалить новое обновление безопасности, самый плохой вариант, но в ответственные моменты, иногда используется, чтобы перенести работы на вечер или ночь
  • Если нужно быстро получить доступ к серверу и избежать проверку подлинности credssp, то я вам советую отключить на принимающем подключении сервере галку NLA (Network Level Authentication) в русском варианте «Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол  с проверкой подлинности на уровне сети»
  • То же быстрый метод и на массовое применение, это использование групповой политики, которая изменит шифрование Oracle Remediation
  • Ну и самый правильный методэто установка обновлений на все ваши системы

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

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

Отключение NLA для CredSSP

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

Отключение NLA для CredSSP-2

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

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

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

отключить credssp через реестр Windows

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

Подключение сетевого реестра

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

HKLMSoftwareMicrosoftWindowsCurrentVersion PoliciesSystemCredSSPParameters

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

credssp в реестре windows

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

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl Terminal ServerWinStationsRDP-Tcp

Найдите там ключ SecurityLayeи выставите ему значение 0, чтобы деактивировать Network Level Authentication.

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

PsExec.exe \w10-cl01 -u rootАдминистратор -p пароль cmd

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

исправление ошибки credssp windows

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

REG ADD HKLMSoftwareMicrosoftWindows CurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)

rdp ошибка credssp

Аналогично можно сделать и для отключения Network Level Authentication, команда будет такой:

REG ADD «HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlTerminal ServerWinStationsRDP-Tcp» /v SecurityLayer /t REG_DWORD /d 0

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

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

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

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

gpedit.msc windows 10

Вам необходимо перейти в ветку:

Конфигурация компьютера — Административные шаблоны — Система — Передача учетных данных — Исправление уязвимости шифрующего оракула (Computer Configuration — Administrative Templates — System — Credentials Delegation — Encryption Oracle Remediation

Исправление уязвимости шифрующего оракула

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

  • Принудительно применять обновленные клиенты (Force Updated Clients) — она будет стоять по умолчанию из-за максимального уровня защиты, вам данную опцию нужно сменить. Это так сказать максимально безопасный уровень взаимодействия клиент, он должен быть в идеале, после установки обновлений на все сервера и компьютеры.
  • Оставить уязвимость (Vulnerable) – клиенты могут подключаться на уязвимые машины.
  • Уменьшить риск (Mitigated) – клиенты не могут подключаться к уязвимым серверам, но серверы могут принимать уязвимые клиенты.

Настройка Encryption Oracle Remediation

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

Оставить уязвимость credSSp

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

REG ADD HKLMSoftwareMicrosoftWindows CurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)

На просторах интернета ходит скрипт PowerShell, который поможет включить данную политику на всех компьютерах в Active Directory

Import-Module ActiveDirectory
$PSs = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $PCs) {
Invoke-Command -ComputerName $computer -ScriptBlock {
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}

Самый правильный метод, это установка обновлений

Когда вам удалось везде подключиться и подошло время обслуживания ваших серверов, быстренько производим установку обновлений закрывающих брешь (CVE-2018-0886 | CredSSP Remote Code Execution Vulnerability).

https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-0886

Раньше были вот такие KB, но они со временем могут меняться свой номер, поэтому пройдите по ссылке выше, так будет надежнее.

  • Windows Server 2012 R2 / Windows 8: KB4103715
  • Windows Server 2008 R2 / Windows 7: KB4103712
  • Windows Server 2016 / Windows 10 1607 — KB4103723
  • Windows Server 2016 / Windows 10 1703 — KB4103731
  • Windows Server 2016 / Windows 10 1709 — KB4103727
  • Windows Server 2016 / Windows 10 1803 — KB4103721

CVE-2018-0886 CredSSP Remote Code Execution Vulnerability

На этом у меня все, надеюсь, что вы разобрались в работе CredSSP и научились ей управлять. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Какой логин и пароль к административной части БУС?
Логин — admin
Пароль — Bitrix123456

Зависла раскладка клавиатуры

Сценарий: вы подключились к серверу (или разорвалось соединение и вы подключаетесь), а переключение языка ввода не работает. При этом иконка языка может меняться, а ввод остается «зависшим» на en или ru. 

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

2020-12-31_18-28-16 (2).png

2020-12-31_18-29-04 (2).png

2020-12-31_18-29-15 (2).png

Ошибка подключения к удаленному серверу из Windows
Произошла ошибка проверки подлинности. Предоставленный функции токен неправилен

Ошибка.PNG

Такая ошибка возникает при подключении из очень старых, не обновленных версий Windows.
Например, из необновленной Windows 7 практически наверняка не подключитесь.

Microsoft выпустила важное обновление безопасности этого протокола, поэтому необновленные версии Windows не могут подключаться по RDP к актуальному серверу.

Тут либо обновить систему, либо использовать другой компьютер для прохождения экзамена.


Отображается вот такое окно при входе в терминал 

2019-12-16_21-31-53.png

Это значит что логин-пароль были указаны неверные.
Важно! До подключения к удаленному серверу — выставьте в вашей системе английскую раскладку клавиатуры!  
Проверить себя можно, используя поле логина, убедитесь, что вы пишите на латинице. 

Зависла раскладка клавиатуры

Если произошел сценарий: разорвалось соединение, вы подключаетесь повторно, при этом переключение языка ввода не работает. 

Вам нужно закрыть терминал, включить в вашей системе английскую раскладку и подключиться снова.

Если вы отошли от компьютера и по возврату — такая картинка или просто черный экран, то это экран блокировки.

2019-12-16_21-09-20.png

Нажмите Esc либо «сдвиньте» мышкой экран вверх, «взявшись» мышкой за нижнюю часть.
И введите пароль со страницы подключения к серверу, убедитесь что вводите в английской раскладке (смена — Shift+Alt). 
2019-12-16_21-10-00 (2).png

Хром не имеет кнопки «свернуть»
И это прям загадка — почему так 🙂 . Сворачивание можно получить, кликнув по иконке на нижней панельке:
2019-12-16_21-07-21.png

Не открывается страничка в браузере на сервере, «белый экран», «localhost завис» и т.д.
Обратите внимание, из браузера внутри машины не доступны никакие сайты кроме *.1c-bitrix.ru и localhost.

Если вы пишете свой код, особенно на уровне init.php, агентов, создаете компоненты и т.д., то вполне можно «накодить» и получить ошибку, которая приведет к падению PHP. Apache в браузере такую ошибку уже не покажет, страница будет «висеть».

Тогда можно перезагрузить веб-сервер, иконка httpd_restart на рабочем столе. 

Что произошло, можно понять из логов сервера, иконка папки php_logs на рабочем столе. 
Пример, сайт «висит», в логах находим:

[error] [client 127.0.0.1] PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 79 bytes) in /home/bitrix/www/bitrix/modules/main/classes/mysql/database_mysqli.php on line 176, referer: http://localhost/test.php?bitrix_include_areas=Y&clear_cache=Y

Вся доступная память PHP закончилась, что-то пошло не так в алгоритме вашего скрипта :)

Дабы не плодить новых тем…

Проблему такую же словил.
Ubuntu 20.04.1 LTS с xrdp и Win7 x64 SP1.
Казус в том, что сперва подключился, но на следующий день просто словил вот такой алерт https://i.imgur.com/Cjep86M.jpg.

Проблема выражается в обновлениях безопасности со стороны клиента Win7, гуглить можно с ключевым словом — CredSSP / фразой — уязвимость CVE-2018-0886 в CredSSP.

Далее думаю сами разберётесь)

lawliet

(15.01.21 07:59:31 MSK)

  • Ссылка

Понравилась статья? Поделить с друзьями:
  • Произошла ошибка распаковки не совпадает контрольная сумма
  • Произошла ошибка проверки подлинности не удалось установить связь
  • Произошла ошибка при установке игры ps4
  • Произошла ошибка распаковки unarc dll
  • Произошла ошибка проверки подлинности не удается установить связь