Поиск по сайту:

Как отключить аутентификацию 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, вы можете включить политики ведения журнала аудита на всех компьютерах с помощью объекта групповой политики. Откройте Политику контроллера домена по умолчанию, перейдите в раздел «Конфигурация компьютера» -> «Настройки Windows» -> «Настройки безопасности» -> «Локальные политики» -> «Параметры безопасности», найдите и включите параметр Сетевая безопасность: ограничить 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) использовался для аутентификации. Поэтому вам необходимо определить все серверы/приложения, использующие устаревший протокол.

Кроме того, если для аутентификации используется 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 в IIS», «Настройка различных браузеров для проверки подлинности Kerberos», «Создание файла Keytab с использованием проверки подлинности Kerberos»). По своему опыту вижу, что даже крупные коммерческие продукты до сих пор используют NTLM вместо Kerberos, некоторые продукты требуют обновлений или изменений конфигурации. Идея состоит в том, чтобы определить, какие приложения используют аутентификацию NTLM, и теперь у вас есть способ идентифицировать это программное обеспечение и устройства.

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

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

*

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

Настройка Active Directory для принудительного использования NTLMv2 через объект групповой политики

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

Вы можете установить предпочтительный тип аутентификации с помощью объекта групповой политики домена. Откройте редактор управления групповыми политиками (

gpmc.msc

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

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

  • Отправлять ответы LM и NTLM;

  • Отправлять ответы LM и NTLM — использовать сеансовую безопасность NTLMv2, если согласовано;

  • Отправлять только ответ NTLM;

  • Отправлять только ответ NTLMv2;

  • Отправлять только ответ NTLMv2. Отказаться от ЛМ;

  • Отправлять только ответ 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 при следующей смене пароля. Он включен по умолчанию, начиная с Windows Vista/Windows Server 2008, и предотвращает создание LM-хеша.

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

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

Если в вашей сети есть сервер шлюза удаленных рабочих столов, вам потребуется выполнить дополнительную настройку, чтобы запретить клиентам подключаться с использованием 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, дайджест-аутентификация или CredSSP не разрешены). Это позволяет вам убедиться, что проверка подлинности пользователя Kerberos работает правильно в различных приложениях.

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

У политики есть 5 вариантов:

  • Отключить: политика отключена (в домене разрешена проверка подлинности NTLM);

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

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

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

  • Запретить все. Контроллеры домена блокируют все запросы NTLM для всех серверов и учетных записей домена.

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

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

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

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

После включения аудита средство просмотра событий также будет отображать 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?

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

klist sessions

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

Если после отключения NTLM у вас возникает много событий блокировки учетной записи пользователя, внимательно посмотрите на события с идентификатором 4771 (

Kerberos pre-authentication failed

). Проверьте код неисправности в описании ошибки. Здесь будет указана причина и источник блокировки.

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

  • Защита учетных записей администраторов в Active Directory

  • Как отключить LLMNR и NetBIOS через TCP/IP?

Статьи по данной тематике