Búsqueda de sitios web

Cómo deshabilitar la autenticación NTLM en el dominio de Windows


NTLM (NT LAN Manager) es un protocolo de autenticación heredado de Microsoft que se remonta a Windows NT. Aunque Microsoft introdujo el protocolo de autenticación Kerberos más seguro en Windows 2000, NTLM (principalmente NTLMv2) todavía se usa ampliamente para la autenticación en redes de dominio de Windows. En este artículo, veremos cómo deshabilitar los protocolos NTLMv1 y NTLMv2 y cambiar a Kerberos en un dominio de Active Directory.

Los problemas clave de NTLMv1:

  • cifrado débil;

  • almacenar el hash de la contraseña en la memoria del servicio LSA, que se puede extraer de la memoria de Windows en texto sin formato usando varias herramientas (como Mimikatz) y se puede usar para futuros ataques usando scripts pass-the-has;

  • la falta de autenticación mutua entre un servidor y un cliente, lo que lleva a la interceptación de datos y al acceso no autorizado a los recursos (algunas herramientas como Responder pueden capturar datos NTLM enviados a través de la red y usarlos para acceder a los recursos de la red);

  • y otras vulnerabilidades.

Algunos de estos han estado en la próxima versión NTLMv2 que utiliza algoritmos de cifrado más seguros y permite prevenir ataques NTLM comunes. Los protocolos de autenticación NTLMv1 y LM están deshabilitados de forma predeterminada a partir de Windows 7 y Windows Server 2008 R2.

¿Cómo habilitar el registro de auditoría de autenticación NTLM?

Antes de deshabilitar por completo NTLM en un dominio y cambiar a Kerberos, es una buena idea asegurarse de que no haya aplicaciones en el dominio que requieran y usen la autenticación NTLM. Es posible que haya dispositivos o servicios heredados en su red que aún usen la autenticación NTLMv1 en lugar de NTLMv2 (o Kerberos).

Para rastrear cuentas o aplicaciones que usan autenticación NTLM, puede habilitar políticas de registro de auditoría en todas las computadoras que usan GPO. Abra la Política de controlador de dominio predeterminada, vaya a Configuración del equipo -> Configuración de Windows -> Configuración de seguridad -> Políticas locales -> sección Opciones de seguridad, busque y habilite la política Seguridad de red: restringir NTLM: auditar la autenticación NTLM en este dominio y establezca su valor en Habilitar todo.

De la misma manera, habilite las siguientes políticas en la Política de dominio predeterminada:

  • Seguridad de la red: restringir NTLM: auditar el tráfico NTLM entrante: establezca su valor en Habilitar auditoría para cuentas de dominio

  • Seguridad de la red: restringir NTLM: tráfico NTLM saliente a servidores remotos: configurar auditar todo

Una vez que estas políticas estén habilitadas, los eventos relacionados con el uso de la autenticación NTLM aparecerán en la sección Registros de aplicaciones y servicios-> Microsoft -> Windows -> NTLM del Visor de eventos.

Puede analizar los eventos en cada servidor o recopilarlos en el Recopilador de registros de eventos de Windows central.

Debe buscar los eventos de la fuente Microsoft-Windows-Security-Auditing con el ID de evento 4624 - “

An Account was successfully logged on

“. Tenga en cuenta la información en la sección "Información de autenticación detallada". Si hay NTLM en el valor del paquete de autenticación, entonces se usó el protocolo NTLM para autenticar a este usuario.

Mire el valor de Nombre del paquete (solo NTLM). Esta línea muestra qué protocolo (LM, NTLMv1 o NTLMv2) se usó para la autenticación. Por lo tanto, debe identificar cualquier servidor/aplicación que utilice el protocolo heredado.

Además, si se usa NTLM para la autenticación en lugar de Kerberos, el ID de evento 4776 aparecerá en el registro:

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

Por ejemplo, para buscar todos los eventos de autenticación NTLMv1 en todos los controladores de dominio, puede usar el siguiente script de 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)}

Una vez que haya identificado los usuarios y las aplicaciones que usan NTLM en su dominio, intente cambiarlos para que usen Kerberos (posiblemente usando SPN). Para usar la autenticación Kerberos, algunas aplicaciones deben reconfigurarse ligeramente (Autenticación Kerberos en IIS, Configurar diferentes navegadores para la autenticación Kerberos, Crear un archivo Keytab usando la autenticación Kerberos). Desde mi propia experiencia, veo que incluso los productos comerciales grandes todavía usan NTLM en lugar de Kerberos, algunos productos requieren actualizaciones o cambios de configuración. La idea es identificar qué aplicaciones usan la autenticación NTLM, y ahora tiene una forma de identificar ese software y dispositivos.

Es probable que los productos pequeños de código abierto, los modelos antiguos de varios escáneres de red (que almacenan los escaneos en carpetas de red compartidas), algunos dispositivos NAS y otro hardware antiguo, software heredado y sistemas operativos tengan problemas de autenticación cuando se deshabilita NTLMv1.

Aquellas aplicaciones que no pueden usar Kerberos se pueden agregar a las excepciones. Esto les permite usar la autenticación NTLM incluso si está deshabilitada a nivel de dominio. Para ello, se utiliza la política Seguridad de red: Restringir NTLM: agregar excepciones de servidor para la autenticación NTLM en este dominio. Agregue también a la lista de excepciones los nombres de los servidores (nombres NetBIOS, direcciones IP o FQDN), en los que se puede usar la autenticación NTLM. Idealmente, esta lista de excepciones debería estar vacía. Puede utilizar el carácter comodín

*

Para usar la autenticación Kerberos en una aplicación, debe especificar el nombre DNS del servidor, en lugar de su dirección IP. Si especifica una dirección IP al conectarse a sus recursos, se utilizará la autenticación NTLM.

Configuración de Active Directory para forzar NTLMv2 a través de GPO

Antes de deshabilitar por completo NTLM en un dominio de AD, se recomienda que primero deshabilite su versión más vulnerable, NTLMv1. El administrador del dominio debe asegurarse de que su red no permita el uso de NTLM o LM para la autenticación, ya que en algunos casos un atacante puede usar solicitudes especiales para obtener una respuesta a una solicitud NTLM/LM.

Puede establecer el tipo de autenticación preferido mediante el GPO del dominio. Abra el Editor de administración de directivas de grupo (

gpmc.msc

) y edite la Política de controladores de dominio predeterminados. Vaya a la sección GPO Configuraciones del equipo -> Políticas -> Configuración de Windows -> Configuración de seguridad -> Políticas locales -> Opciones de seguridad y busque la política Seguridad de red: nivel de autenticación de LAN Manager.

Hay 6 opciones para elegir en la configuración de la política:

  • Enviar respuestas LM y NTLM;

  • Envíe respuestas LM y NTLM: utilice la seguridad de sesión NTLMv2 si se negocia;

  • Enviar solo respuesta NTLM;

  • Enviar solo respuesta NTLMv2;

  • Enviar solo respuesta NTLMv2. Rechazar LM;

  • Enviar solo respuesta NTLMv2. Rechazar LM y NTLM.

Las opciones de autenticación NTLM se enumeran en orden de mejora de seguridad. De forma predeterminada, los sistemas operativos Windows 7 y posteriores utilizan la opción Enviar solo respuesta NTLMv2. Si esta opción está habilitada, los equipos cliente usan la autenticación NTLMv2, pero los controladores de dominio AD aceptan solicitudes LM, NTLM y NTLMv2.

NTLMv2 se puede usar donde el protocolo Kerberos ha fallado y para algunas operaciones (por ejemplo, administrar cuentas y grupos locales en las computadoras unidas al dominio) o en grupos de trabajo.

Puede cambiar el valor de la política a la opción más segura 6: “Enviar solo respuesta NTLMv2. Rechazar LM & NTLM”. Esta política hace que los controladores de dominio rechacen también las solicitudes LM y NTLM.

También puede deshabilitar NTLMv1 a través del registro. Para ello, cree un parámetro DWORD con el nombre LmCompatibilityLevel con un valor entre 0 y 5 bajo la clave de registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. El valor 5 corresponde a la opción de política “Enviar solo respuesta NTLMv2. Rechazar LM NTLM”.

Asegúrese de que la política Seguridad de la red: no almacenar el valor hash de LAN Manager en el próximo cambio de contraseña esté habilitada en la misma sección de GPO. Está habilitado de forma predeterminada a partir de Windows Vista/Windows Server 2008 y evita la creación de un hash LM.

Una vez que se haya asegurado de que no está utilizando NTLMv1, puede continuar e intentar desactivar NTLMv2. NTLMv2 es un protocolo de autenticación más seguro, pero pierde significativamente frente a Kerberos en términos de seguridad (aunque hay menos vulnerabilidades en NTLMv2 que en NTLMv1, pero aún existe la posibilidad de capturar y reutilizar datos, además de que no es compatible con la autenticación mutua).

El principal riesgo de deshabilitar NTLM es el uso potencial de aplicaciones heredadas o mal configuradas que aún pueden estar usando la autenticación NTLM. Si este es el caso, deberán actualizarse o configurarse especialmente para cambiar a Kerberos.

Si tiene un servidor de puerta de enlace de escritorio remoto en su red, deberá realizar una configuración adicional para evitar que los clientes se conecten mediante NTLMv1. Crear una entrada de registro:

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

Restrinja NTLM completamente y use la autenticación Kerberos en un AD

Para verificar cómo funciona la autenticación en diferentes aplicaciones en un dominio sin usar NTLM, puede agregar las cuentas de los usuarios requeridos al grupo de dominio Usuarios protegidos (está disponible desde el lanzamiento de Windows Server 2012 R2). Los miembros de este grupo de seguridad solo pueden autenticarse mediante Kerberos (no se permiten NTLM, autenticación Digest o CredSSP). Esto le permite verificar que la autenticación de usuario de Kerberos funciona correctamente en diferentes aplicaciones.

Luego, puede deshabilitar completamente NTLM en el dominio de Active Directory mediante la política Seguridad de red: restringir NTLM: autenticación NTLM en este dominio.

La póliza tiene 5 opciones:

  • Deshabilitar: la política está deshabilitada (la autenticación NTLM está permitida en el dominio);

  • Denegar cuentas de dominio a servidores de dominio: los controladores de dominio rechazan los intentos de autenticación NTLM para todos los servidores bajo las cuentas de dominio y aparece el mensaje de error "NTLM está bloqueado";

  • Denegar para cuentas de dominio: los controladores de dominio impiden los intentos de autenticación NTLM para todas las cuentas de dominio y aparece el error "NTLM está bloqueado";

  • Denegar para servidores de dominio: las solicitudes de autenticación NTLM se deniegan para todos los servidores a menos que el nombre del servidor esté en la lista de excepciones en la política "Seguridad de la red: restringir NTLM: agregar excepciones de servidor para la autenticación NTLM en este dominio";

  • Denegar todo: los controladores de dominio bloquean todas las solicitudes NTLM para todos los servidores y cuentas de dominio.

Aunque NTLM ahora está deshabilitado en el dominio, todavía se usa para procesar inicios de sesión locales en computadoras (NTLM siempre se usa para inicios de sesión de usuarios locales).

También puede deshabilitar el tráfico NTLM entrante y saliente en las computadoras del dominio usando opciones separadas de Política de dominio predeterminada:

  • Seguridad de la red: restringir NTLM: tráfico NTLM entrante=denegar todas las cuentas

  • Seguridad de la red: Restringir NTLM: Tráfico NTLM saliente a servidores remotos=Denegar todo

Después de habilitar la auditoría, el Visor de eventos también mostrará el ID de evento 6038 de la fuente LsaSRV cuando use NTLM para la autenticación:

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?

Puede comprobar que Kerberos se utiliza para la autenticación de usuarios con el comando:

klist sessions

Este comando muestra que todos los usuarios están autenticados por Kerberos (excepto el administrador local integrado, que siempre se autentica mediante NTLM).

Si está experimentando muchos eventos de bloqueo de cuentas de usuario después de deshabilitar NTLM, observe de cerca los eventos con ID 4771 (

Kerberos pre-authentication failed

). Verifique el código de falla en la descripción del error. Esto indicará el motivo y el origen del bloqueo.

Para mejorar aún más la seguridad de Active Directory, recomiendo leer estos artículos:

  • Protección de cuentas de administrador en Active Directory

  • ¿Cómo deshabilitar LLMNR y NetBIOS sobre TCP/IP?

Artículos relacionados