Мой сценарий заключается в том, что у меня есть веб-сайт, настроенный через IIS в Windows Server 2012 R2 Standard с использованием проверки подлинности Windows, который был обнаружен как уязвимый для атаки NTLMv1, и поэтому я хочу отключить это и разрешить только NTLMv2.
Из моего исследования по этой теме я нашел много полезной информации, такой как "Анонимный вход" vs "NTLM V1" Что отключить? и https://markgamache.blogspot.co.nz/2013/01/ntlm-challenge-response-is-100-broken.html
По этим и другим подобным ссылкам единственный ответ, который обычно дается, - иметь значение реестра в HKLM \ SYSTEM \ CurrentControlSet \ Control \ Lsa с именем LmCompatibilityLevel и настраивать его. Я попытался установить для него значение 5, которое Клиенты используют только аутентификацию NTLMv2, и они используют сеансовую безопасность NTLMv2, если сервер ее поддерживает. Контроллер домена отклоняет ответы проверки подлинности LM и NTLM, но принимает NTLMv2.
Однако, когда я это делаю, кажется, что я все еще могу успешно подключиться к веб-сайту, используя свои учетные данные Windows с другого сервера, который я настроил, чтобы LmCompatibilityLevel был установлен на 0, который должен использовать / разрешать только LM / NTLM.
Я обнаружил, что он использует проверку подлинности NTLMv1, через журналы безопасности Windows.
Detailed Authentication Information:
Logon Process: NtLmSsp
Authentication Package: NTLM
Transited Services: -
Package Name (NTLM only): NTLM V1
Key Length: 128
Когда я устанавливаю значение реестра 3 или выше на клиентском сервере перед подключением, значение имени пакета становится NTLM V2.
Я также изменил локальную и групповую политику безопасности. Сетевая безопасность: уровень аутентификации LAN Manager к Отправлять только ответ NTLMv2. Отказаться от LM и NTLM но по результатам тестирования я понял, что это существенно разные интерфейсы для одной и той же настройки.
Кто-нибудь испытал это или знает, есть ли другая настройка, которую мне не хватает, которую мне нужно изменить?
По моему опыту, я столкнулся с этим из-за установки ntlm.auth.domain с неправильным доменным именем при настройке NTLMv2 (настроил аутентификацию в 2008 R2).
Нашел решение в сообщении @Silvio Meier (2. ловушка), которое лучше описывает проблему: https://web.liferay.com/community/forums/-/message_boards/message/57355858
3 отправляет только NTLMv2, но он принимает LM, NTLMv1 и NTLMv2. https://technet.microsoft.com/en-us/library/2006.08.securitywatch.aspx
Если у кого-то еще возникнет такая же проблема в будущем, похоже, что этот параметр был перезаписан параметром контроллера домена, который был ниже. При настройке Контроллера домена на уровень 5 (Отправлять только ответ NTLMv2. Отказаться от LM и NTLM), он отклоняет соединения NTLM v1.
Если мы редактировали реестр и перезагружали компьютер, этот параметр также перезаписывался при перезагрузке, поэтому только редактирование параметров контроллера домена могло привести к требуемому результату отказа в соединениях NTLMv1.