Как отключить NTLM-аутентификацию в домене Windows

NTLM (NT LAN Manager) — это устаревший протокол аутентификации Microsoft, который появился еще в Windows NT. Хотя Microsoft представила более безопасный Kerberos протокол аутентификации еще в Windows 2000, NTLM (в основном NTLMv2) все еще широко используется для аутентификации в доменных сетях Windows. В этой статье мы рассмотрим, как отключить протоколы NTLMv1 и NTLMv2 и переключиться на Kerberos в домене Active Directory.

Ключ NTLMv1 проблемы:

  • слабое шифрование;
  • хранение хэша пароля в памяти службы LSA, который может быть извлечен из памяти Windows в виде открытого текста с помощью различных инструментов (например, Mimikatz) и использован для дальнейших атак с помощью скриптов pass-the-has;
  • отсутствие взаимной аутентификации между сервером и клиентом, что приводит к перехвату данных и несанкционированному доступу к ресурсам (некоторые инструменты, такие как Responder, могут перехватывать NTLM-данные, передаваемые по сети, и использовать их для доступа к сетевым ресурсам);
  • и другие уязвимости.

Некоторые из них были внесены в следующую версию NTLMv2 , который использует более безопасные алгоритмы шифрования и позволяет предотвратить распространенные NTLM-атаки. Протоколы аутентификации NTLMv1 и LM отключены по умолчанию, начиная с Windows 7 и Windows Server 2008 R2.

Как включить ведение журнала аудита аутентификации NTLM?

Прежде чем полностью отключать NTLM в домене и переходить на Kerberos, следует убедиться, что в домене нет приложений, требующих и использующих NTLM-аутентификацию. В вашей сети могут быть устаревшие устройства или службы, которые все еще используют аутентификацию NTLMv1 вместо NTLMv2 (или Kerberos).

Чтобы отследить учетные записи или приложения, использующие аутентификацию NTLM, можно включить политики ведения журналов аудита на всех компьютерах с помощью GPO. Откройте Политика контроллера домена по умолчанию, перейдите в раздел Конфигурация компьютера -> Параметры Windows -> Параметры безопасности -> Локальные политики -> Параметры безопасности, найдите и включите опцию Сетевая безопасность: Ограничить NTLM: аудит проверки подлинности NTLM в этом домене политику и установите ее значение на Включить все.

Сетевая безопасность: Ограничить NTLM: Аудит аутентификации NTLM в этом доменеСетевая безопасность: Ограничить NTLM: Аудит NTLM-аутентификации в этом домене

Таким же образом включите следующие политики в политике домена по умолчанию:

  • Сетевая безопасность: Ограничение NTLM: Аудит входящего NTLM-трафика — установите его значение на Включить аудит для учетных записей домена
  • Сетевая безопасность: Ограничение NTLM: исходящий трафик NTLM на удаленных серверах: набор Аудит все

Сетевая безопасность: Ограничение NTLM: аудит входящего NTLM-трафикаСетевая безопасность: Ограничение NTLM: аудит входящего NTLM-трафика

После включения этих политик события, связанные с использованием аутентификации NTLM, будут появляться в окне Журналы приложений и служб -> Microsoft -> Windows -> NTLM раздел Просмотрщик событий.

Вы можете анализировать события на каждом сервере или собирать их с центрального коллектора журнала событий Windows.

Вам необходимо найти события из источника Microsoft-Windows-Security-Auditing с идентификатором события 4624 — «An Account was successfully logged on«. Обратите внимание на информацию в разделе «Подробная информация об аутентификации» раздел. Если есть NTLM в Пакет аутентификации значение, то для аутентификации этого пользователя был использован протокол NTLM.

Посмотрите на значение параметра Имя пакета (только NTLM). Эта строка показывает, какой протокол (LM, NTLMv1 или NTLMv2) был использован для аутентификации. Поэтому вам нужно определить все серверы/приложения, использующие устаревший протокол.

eventid 4624 source Microsoft-Windows-Security-Auditing ntlm usageeventid 4624 source Microsoft-Windows-Security-Auditing ntlm usage

Также, если для аутентификации используется NTLM вместо Kerberos, идентификатор события 4776 появится в журнале:

The computer attempted to validate the credentials for an account
Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0

Например, для поиска всех событий аутентификации NTLMv1 на всех контроллерах домена можно использовать следующий сценарий PowerShell:

$ADDCs = Get-ADDomainController -filter
$Now = Get-Date
$Yesterday = $Now.AddDays(-1)
$NewOutputFile = "c:\Events\$($Yesterday.ToString('yyyyddMM'))_AD_NTLMv1_events.log"
function GetEvents($DC){
Write-Host "Searching log on " $DC.HostName
$Events = Get-EventLog "Security" -After $Yesterday.Date -Before $Now.Date -ComputerName $DC.HostName -Message "*NTLM V1*" -instanceid 4624
foreach($Event in $Events){
Write-Host $DC.HostName $Event.EventID $Event.TimeGenerated
Out-File -FilePath $NewOutputFile -InputObject "$($Event.EventID), $($Event.MachineName), $($Event.TimeGenerated), $($Event.ReplacementStrings),($Event.message)" -Append
}
}
foreach($DC in $ADDCs){GetEvents($DC)}

После того как вы определили пользователей и приложения, использующие NTLM в вашем домене, попробуйте переключить их на использование Kerberos (возможно, с помощью SPN). Чтобы использовать аутентификацию Kerberos, некоторые приложения нужно немного переконфигурировать (Kerberos Authentication in IIS, Configure different browsers for Kerberos authentication, Create a Keytab File Using Kerberos Auth). Из собственного опыта я вижу, что даже крупные коммерческие продукты все еще используют NTLM вместо Kerberos, некоторые продукты требуют обновления или изменения конфигурации. Идея заключается в том, чтобы определить, какие приложения используют аутентификацию NTLM, и теперь у вас есть способ идентифицировать это программное обеспечение и устройства.

Небольшие продукты с открытым исходным кодом, старые модели различных сетевых сканеров (которые хранят сканы в общих сетевых папках), некоторые устройства NAS и другое старое оборудование, устаревшее программное обеспечение и операционные системы, скорее всего, будут испытывать проблемы с аутентификацией, когда NTLMv1 отключен.

Те приложения, которые не могут использовать Kerberos, можно добавить в исключения. Это позволит им использовать аутентификацию NTLM, даже если она отключена на уровне домена. Для этого необходимо Сетевая безопасность: Ограничение NTLM: добавление исключений сервера для аутентификации NTLM в этом домене используется политика. Добавьте имена серверов (имена NetBIOS, IP-адреса или FQDN), на которых может использоваться аутентификация NTLM, в список исключений. В идеале этот список исключений должен быть пустым. Вы можете использовать символ подстановки *.

GPO: Сетевая безопасность: Ограничение NTLM: Добавьте исключения сервера для аутентификации NTLM в этом домене GPO: Сетевая безопасность: Ограничение NTLM: Добавьте исключения сервера для аутентификации NTLM в этом домене

Чтобы использовать аутентификацию Kerberos в приложении, вы должны указать DNS-имя сервера, а не его IP-адрес. Если вы укажете IP-адрес при подключении к ресурсам, будет использоваться аутентификация NTLM.

Настройка Active Directory на принудительное использование NTLMv2 с помощью GPO

Прежде чем полностью отключать NTLM в домене AD, рекомендуется сначала отключить его более уязвимую версию, NTLMv1. Администратор домена должен убедиться, что его сеть не разрешает использовать NTLM или LM для аутентификации, поскольку в некоторых случаях злоумышленник может использовать специальные запросы, чтобы получить ответ на запрос NTLM/LM.

Вы можете установить предпочтительный тип аутентификации с помощью GPO домена. Откройте редактор управления групповой политикой (gpmc.msc) и отредактируйте политику Контроллеры домена по умолчанию. Перейдите в раздел GPO Конфигурации компьютера -> Политики -> Параметры Windows -> Параметры безопасности -> Локальные политики -> Параметры безопасности и найдите политику Сетевая безопасность: Уровень аутентификации LAN Manager.

Сетевая безопасность: Уровень аутентификации LAN Manager - отключение ntlm v1 и lmСетевая безопасность: Уровень аутентификации LAN Manager - отключение ntlm v1 и lm

В настройках политики можно выбрать 6 вариантов::

  • Отправлять ответы LM & NTLM;
  • Отправлять LM & NTLM ответы — использовать безопасность сеанса NTLMv2, если это согласовано;
  • Отправлять только NTLM-ответы;
  • Отправлять только ответ NTLMv2;
  • Отправить только ответ NTLMv2. Отказаться от LM;
  • Отправлять только ответ NTLMv2. Отказаться от LM& NTLM.

Опции аутентификации NTLM перечислены в порядке повышения их безопасности. По умолчанию в Windows 7 и более поздних операционных системах используется опция Отправлять только ответ NTLMv2. Если этот параметр включен, клиентские компьютеры используют аутентификацию NTLMv2, но контроллеры домена AD принимают запросы LM, NTLM и NTLMv2.

NTLMv2 можно использовать в тех случаях, когда протокол Kerberos не работает, а также для некоторых операций (например, для аутентификации локальных групп и учетных записей на компьютерах, подключенных к домену) или в рабочих группах.

Вы можете изменить значение политики на наиболее безопасный вариант 6 : «Отправлять только ответ NTLMv2. Отказ от LM & NTLM«. Эта политика заставляет контроллеры домена отклонять запросы LM и NTLM.

Вы также можете отключить NTLMv1 через реестр. Для этого создайте параметр DWORD с именем LmCompatibilityLevel со значением от 0 до 5 в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. Значение 5 соответствует параметру политики «Отправлять только ответ NTLMv2. Отказаться от LM NTLM».

Убедитесь, что параметр Сетевая безопасность: Не сохраняйте хэш-значение LAN Manager при следующей смене пароля Политика включена в том же разделе GPO. Она включена по умолчанию, начиная с Windows Vista / Windows Server 2008, и предотвращает создание хэша LM.

Сетевая безопасность: Не сохранять хэш-значение LAN Manager при следующей смене пароляСетевая безопасность: Не сохранять хэш-значение LAN Manager при следующей смене пароля

Убедившись, что вы не используете NTLMv1, вы можете пойти дальше и попытаться отключить NTLMv2. NTLMv2 является более безопасным протоколом аутентификации, но значительно проигрывает Kerberos по уровню безопасности (хотя уязвимостей в NTLMv2 меньше, чем в NTLMv1, но все же существует вероятность перехвата и повторного использования данных, а также не поддерживается взаимная аутентификация).

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

Если в вашей сети есть сервер Remote Desktop Gateway, вам потребуется дополнительная настройка, чтобы запретить клиентам подключаться с использованием NTLMv1. Создайте запись в реестре:

REG add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\TerminalServerGateway\Config\Core" /v EnforceChannelBinding /t REG_DWORD /d 1 /f

Полное ограничение NTLM и использование аутентификации Kerberos в AD

Чтобы проверить, как работает аутентификация в различных приложениях домена без использования NTLM, вы можете добавить учетные записи необходимых пользователей в Защищенные пользователи доменная группа (она доступна с момента выпуска Windows Server 2012 R2). Члены этой группы безопасности могут проходить аутентификацию только с помощью Kerberos (NTLM, Digest Authentication или CredSSP не разрешены). Это позволяет проверить правильность работы аутентификации Kerberos в различных приложениях.

Затем вы можете полностью отключить NTLM в домене Active Directory с помощью команды Network Security: Ограничить NTLM: аутентификация NTLM в этом домене политика.

Политика имеет 5 вариантов:

  • Отключить: политика отключена (аутентификация NTLM разрешена в домене);
  • Запрет для доменных учетных записей на серверах домена: контроллеры домена отклоняют попытки аутентификации NTLM для всех серверов под учетными записями домена, и отображается сообщение об ошибке «NTLM заблокирован»;
  • Запретить для учетных записей домена: контроллеры домена предотвращают попытки аутентификации NTLM для всех учетных записей домена, и появляется ошибка «NTLM заблокирован»;
  • Запретить для серверов домена: Запросы на аутентификацию NTLM отклоняются для всех серверов, если имя сервера не находится в списке исключений в политике «Сетевая безопасность: Ограничить NTLM: Добавить исключения серверов для аутентификации NTLM в этом домене»;
  • Запретить все: контроллеры домена блокируют все запросы NTLM для всех серверов и учетных записей домена.

GPO: Сетевая безопасность: Ограничение NTLM: аутентификация NTLM в этом домене GPO: Безопасность сети: Ограничение NTLM: аутентификация NTLM в этом домене

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

Вы также можете отключить входящий и исходящий трафик NTLM на компьютерах домена, используя отдельные Политика домена по умолчанию опции:

  • Сетевая безопасность: Ограничение NTLM: Входящий трафик NTLM = Запретить все учетные записи
  • Сетевая безопасность: Ограничение NTLM: Исходящий трафик NTLM на удаленные серверы = Запретить все

После включения аудита Event Viewer также будет отображать EventID 6038 из источника LsaSRV при использовании NTLM для аутентификации:

Microsoft Windows Server has detected that NTLM authentication is presently being used between clients and this server. This event occurs once per boot of the server on the first time a client uses NTLM with this server.
NTLM is a weaker authentication mechanism. Please check:
Which applications are using NTLM authentication?
Are there configuration issues preventing the use of stronger authentication such as Kerberos authentication?
If NTLM must be supported, is Extended Protection configured?

eventid 6038 из источника lsasrv: В настоящее время между клиентами и этим сервером используется аутентификация NTLMeventid 6038 from lsasrv source: В настоящее время используется аутентификация NTLM между клиентами и этим сервером

Проверить, используется ли Kerberos для аутентификации пользователей, можно с помощью команды:

klist sessions

klist session - check authentication protocol usedklist session - check authentication protocol used

Эта команда показывает, что все пользователи аутентифицированы по протоколу Kerberos (кроме встроенного локального администратора, который всегда аутентифицируется по протоколу NTLM).

Если после отключения NTLM у вас происходит много событий блокировки учетных записей пользователей, внимательно посмотрите на события с ID 4771 (Kerberos pre-authentication failed). Проверьте код отказа в описании ошибки. Это укажет на причину и источник блокировки.

Для дальнейшего повышения безопасности Active Directory я рекомендую прочитать эти статьи:

  • Защита учетных записей администраторов в Active Directory
  • Как отключить LLMNR и NetBIOS через TCP/IP?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *