¿Se detendrán las aplicaciones empresariales por la baja de NTLM? — Cómo recopilar el registro de auditoría y el orden para eliminar las dependencias

· Actualizado el: · · NTLM, Kerberos, Windows, Active Directory, Seguridad, Sistemas de información, PowerShell

«Dicen que NTLM se va a dar de baja. ¿Nos afecta?» Desde que Microsoft anunció en junio de 2024 que todas las versiones de NTLM quedaban marcadas como obsoletas (deprecated), esta pregunta se ha vuelto cada vez más frecuente. La respuesta es: si nos afecta o no se puede averiguar, y si lo averiguamos ahora, llegamos a tiempo.

La baja de NTLM no es el tipo de cambio en el que “un día se instala un parche y toda la empresa se detiene”. Es un cambio que se va cerrando poco a poco con cada actualización del sistema operativo, y además solo ahora, mientras NTLM todavía funciona, se puede elaborar con seguridad un listado de “en qué puntos depende nuestra empresa de NTLM”. Detenerlo todo primero y buscar después qué se rompió es el peor orden posible.

Este artículo se centra en el procedimiento práctico para elaborar ese listado y eliminar las dependencias una por una. El funcionamiento del protocolo en sí (por qué NTLM es peligroso, por qué la autenticación “cae” a NTLM en lugar de usar Kerberos) queda para el artículo complementario “Cómo funcionan NTLM y Kerberos explicados con diagramas — por qué la autenticación “cae” a NTLM”.

1. Conclusión principal

  • NTLM quedó marcado como obsoleto en junio de 2024. Esto afecta a todas las versiones, incluidas LANMAN, NTLMv1 y NTLMv2, y es una declaración de que “ya no habrá más desarrollo activo de funciones”. Al mismo tiempo se indicó que “el uso de NTLM seguirá funcionando tanto en el próximo Windows Server como en la siguiente versión anual de Windows”.1
  • Ya hay partes eliminadas. NTLMv1 se eliminó en Windows 11 versión 24H2 y en Windows Server 2025.1
  • La baja avanza en 3 fases. La fase 1 es la visualización y auditoría del uso; la fase 2 (segunda mitad de 2026) son las funciones para eliminar los escenarios donde no queda más remedio que depender de NTLM (IAKerb, KDC local); la fase 3 es la deshabilitación por defecto de la autenticación NTLM en red en la próxima versión principal.2
  • Lo único que hay que hacer ahora mismo es una cosa. Ejecutar el modo de auditoría para elaborar un listado de “qué aplicación, en qué equipo, usa NTLM contra qué servidor” (capítulo 4).
  • La investigación de las cuentas de dominio empieza en el controlador de dominio. Siguiendo el orden evento 8004 → 8003 del servidor miembro → 8001 del cliente, se llega finalmente hasta el nombre de la aplicación (sección 4.2). Sin embargo, la autenticación con cuentas locales no pasa por el controlador de dominio, así que el evento 8004 no se genera. Esta ruta hay que recogerla a partir del 8003 del lado servidor y el 8001 del lado cliente.3
  • La mayoría de las causas son “de nombres”. Las direcciones IP escritas a mano y los SPN sin registrar son los dos factores principales, y ambos se pueden corregir sin reescribir la aplicación (capítulo 5).32
  • Existe una forma de probarlo con seguridad en un solo equipo. En Windows 11 24H2 / Windows Server 2025, con NET USE \\servidor\recurso /BLOCKNTLM se puede comprobar si la conexión funciona sin NTLM sin cambiar ninguna directiva (capítulo 7).4
  • En las aplicaciones propias, hay que cambiar a Negotiate los puntos donde se menciona NTLM de forma explícita. La propia Microsoft escribe que “no hay que acceder directamente al paquete de seguridad NTLM” (capítulo 8).5

2. Qué significa “obsoleto”

Antes de nada, conviene aclarar la terminología. Si esto se explica de forma ambigua dentro de la empresa, circularán a la vez el mensaje de “parece que ya no se puede usar” y el de “parece que todavía queda tranquilo durante años”, y la conversación se confundirá.

La descripción de NTLM en la lista de funciones obsoletas de Microsoft se resume en estos tres puntos.1

  1. Todas las versiones de NTLM, incluidas LANMAN, NTLMv1 y NTLMv2, quedan fuera del desarrollo activo de funciones y se marcan como obsoletas.
  2. El uso de NTLM seguirá funcionando tanto en el próximo Windows Server como en la siguiente versión anual de Windows.
  3. Las llamadas a NTLM deben sustituirse por llamadas a Negotiate. Negotiate intenta autenticar con Kerberos y solo recurre a NTLM cuando es necesario.

Y como información de actualización se añade que NTLMv1 se eliminó en Windows 11 versión 24H2 y en Windows Server 2025.1

Es decir, la situación actual es “obsoleto (deprecated)”, no “eliminado (removed)”. Aunque solo NTLMv1 ha superado la fase de obsolescencia y ya ha entrado en la fase de eliminación. Si una copiadora multifunción o un NAS antiguos solo pueden autenticarse con NTLMv1, la actualización a Windows 11 24H2 se convierte directamente en un fallo. Esto no es una cuestión futura: ya está ocurriendo ahora.

Otro punto que conviene tener presente es que a NTLM le queda un uso para el que “no existe alternativa”. Microsoft indica explícitamente que la autenticación de Windows en sistemas configurados como miembros de un grupo de trabajo, así como el inicio de sesión local fuera de los controladores de dominio, siguen usando NTLM y deben seguir usándolo.6 El KDC local previsto para la fase 2 es precisamente la función pensada para tapar este hueco de “NTLM es necesario para las cuentas locales”.2

2.1. La situación actual de las 3 fases

La hoja de ruta de la baja consta de 3 fases. Es información que depende del momento, así que la organizamos indicando la fecha de referencia (la tabla siguiente refleja la situación a julio de 2026).

Fase Contenido Estado a julio de 2026 Qué hacer en la empresa
Fase 1 Visualización y auditoría del uso Se puede realizar ya mismo. Tanto la directiva de auditoría necesaria como el registro Microsoft-Windows-NTLM/Operational ya están presentes en las versiones actuales de Windows27 Ejecutar la auditoría del capítulo 4 y elaborar el listado
Fase 2 Funciones para eliminar los escenarios donde no queda más remedio que depender de NTLM (IAKerb, KDC local) Prevista para la segunda mitad de 2026, según lo anunciado2 Comprobar en las notas de la versión si ya está disponible de forma general o todavía en vista previa para la versión de destino de la empresa antes de incluirlo en el plan. No dejar el asunto en espera diciendo “esto lo resuelve la fase 2” sin haberlo comprobado antes
Fase 3 Deshabilitación por defecto de la autenticación NTLM en red en la próxima versión principal Fecha concreta sin anunciar. Aunque se deshabilite por defecto, se podrá volver a habilitar mediante directiva21 Terminar antes las fases 1 y 2. El objetivo es no empezar a investigar cuando llegue esta fase

Lo que hay que confirmar en esta tabla es que lo único que se puede mover con las propias manos ahora mismo es la fase 1. Hay puntos en la tabla de decisión del capítulo 6 donde se dice que las funciones de la fase 2 “pueden ser la solución”, pero en todos los casos se parte de comprobar la disponibilidad. La fecha de disponibilidad puede cambiar, así que revise siempre el contenido de esta tabla en el momento en que su empresa vaya a tomar la decisión.

3. Por qué desaparece — en 3 minutos

Aquí solo cubrimos el mínimo necesario como base para decidir la migración. El diagrama detallado queda para el artículo complementario.

Microsoft afirma con claridad, en la documentación de configuración de directivas, que la autenticación NTLM y NTLMv2 es vulnerable a diversos ataques maliciosos, incluidos los ataques de retransmisión SMB, los ataques de intermediario (man-in-the-middle) y los ataques de fuerza bruta.7 En el fondo están las siguientes propiedades, que suelen describirse en comparación con Kerberos.8

  • No hay autenticación mutua. Con NTLM, el cliente no puede verificar la identidad del servidor, ni un servidor puede verificar la identidad de otro servidor. NTLM fue diseñado para entornos de red donde se puede asumir que “el servidor es auténtico”. Kerberos no parte de esa suposición. Esta diferencia es precisamente la condición que hace posible los ataques de retransmisión, que hacen que las credenciales se envíen a un servidor falso.
  • El servidor consulta al controlador de dominio en cada ocasión (en el caso de cuentas de dominio). Con NTLM, el servidor de aplicaciones necesita conectarse al controlador de dominio cada vez que autentica a un cliente con cuenta de dominio (si la cuenta es local al servidor, el propio servidor consulta su base de datos de cuentas local para decidir).6 Con Kerberos, los tickets de sesión renovables sustituyen esta autenticación de paso, y el servidor no necesita acudir al controlador de dominio salvo que se requiera validar el PAC (certificado de atributos de privilegio).
  • El material de autenticación es directamente el hash de la contraseña. Las credenciales NTLM se componen de un hash unidireccional del nombre de dominio, el nombre de usuario y la contraseña, y el cliente cifra el desafío con ese hash para devolver la respuesta.5 De aquí se deriva la propiedad de que, si se roba el hash, se puede suplantar a la víctima sin conocer la contraseña en claro.

El significado práctico de “no hay autenticación mutua” es que con solo intentar conectarse a un recurso compartido SMB, se pueden llegar a entregar credenciales a un servidor falso. La razón por la que Microsoft creó la función de bloqueo de NTLM en el lado cliente de SMB también se explica como “impedir la técnica de hacer que se envíen solicitudes NTLM a un servidor malicioso”.4

4. Auditoría — elaborar un listado de dónde se usa NTLM

Este es el tema central. La propia guía de Microsoft indica explícitamente que, antes de implementar una directiva de restricción, es necesario descubrir y auditar el estado actual del tráfico de autenticación NTLM.9

4.1. Activar el modo de auditoría

Hay que configurar 3 directivas. Todas se encuentran en Configuración del equipo\Configuración de Windows\Configuración de seguridad\Directivas locales\Opciones de seguridad, y no requieren reiniciar. Tanto si se guarda localmente como si se distribuye por directiva de grupo, se activa en cuanto se aplica la configuración.7

Ahora bien, “no requiere reiniciar” y “surte efecto de inmediato en todos los equipos” son cosas distintas. Cuando se distribuye mediante un GPO de dominio, en el momento de guardar el GPO solo se actualiza la directiva almacenada en AD/SYSVOL; cada equipo no empieza realmente a auditar hasta la siguiente actualización en segundo plano o hasta ejecutar gpupdate /force. Cuente el inicio del periodo de auditoría a partir de “la fecha y hora en que la aplicación llegó a los equipos de destino”, no de “la fecha y hora en que se guardó el GPO”. Si se confunde este punto, el primer recuento saldrá distorsionado, con menos equipos de los que en realidad hay.

Directiva Se aplica a Valor de configuración
Seguridad de red: Restringir NTLM: Auditar la autenticación NTLM en este dominio Controladores de dominio Habilitar todo
Seguridad de red: Restringir NTLM: Auditar el tráfico NTLM entrante Todos los servidores y clientes Habilitar la auditoría para todas las cuentas
Seguridad de red: Restringir NTLM: Tráfico NTLM saliente hacia servidores remotos Todos los servidores y clientes Auditar todo

La tercera, “Tráfico NTLM saliente hacia servidores remotos”, tiene cuatro valores posibles: permitir todo / auditar todo / denegar todo / no definido, y “no definido” se trata igual que “permitir todo”. La recomendación de Microsoft también es clara: no elegir directamente “denegar todo”; primero poner “auditar todo”, revisar el registro de operación, comprobar qué servidores reciben solicitudes de autenticación y solo entonces elaborar la lista de excepciones.7

El destino del registro es Visor de eventos > Registros de aplicaciones y servicios > Microsoft > Windows > NTLM (Microsoft-Windows-NTLM/Operational). Para esta auditoría no existe una directiva de eventos de auditoría de seguridad correspondiente, así que hay que consultar este canal en lugar del registro de seguridad.7

Lo que más se confunde en la práctica es la correspondencia entre “a qué máquina, qué directiva aplicar, y qué evento consultar”. Tomando las 3 directivas de la tabla anterior como ①②③, se puede resumir en una lista de comprobación.

Tipo de máquina Directivas a habilitar Evento a consultar Qué se averigua ahí
Controlador de dominio (exclusivo de DC)
además configurar ②③ también, porque el propio DC se comunica como servidor y como cliente
8004 En la autenticación de cuentas de dominio, qué usuario se autenticó con NTLM contra qué servidor (nombre de canal seguro)
Servidor miembro
(servidor de archivos, servidor de negocio)
②③ 8003 (entrante)
8001 (saliente del propio servidor)
Desde qué cliente se recibió. Si el PID es 4 (SYSTEM), es vía SMB (sección 4.5)
Equipo cliente ②③ 8001 (saliente) Servidor de destino y nombre del proceso cliente. Aquí se confirma la causa
Equipo de grupo de trabajo o acceso a recursos compartidos con cuenta local ②③ (si el otro extremo es Windows, en ambos) Solo 8003 y 8001 Como no pasa por el DC, no se genera el 8004. Esta ruta solo se ve en los registros del servidor y del cliente3

El registro es siempre el mismo Microsoft-Windows-NTLM/Operational, sea cual sea la máquina. ① solo surte efecto en el controlador de dominio, y un equipo al que se le olvidó configurar ②③ no es “un equipo que no usa NTLM”, sino “un equipo que no lo está registrando”. Esta diferencia es la principal causa de que el recuento salga distorsionado.

Aviso: el modo de auditoría solo registra, no bloquea nada. Por otro lado, en entornos con muchos equipos el volumen de registro crece de golpe. Si no se usa recopilación de eventos (WEF), revise antes el tamaño máximo del registro y el periodo de retención, y solo entonces habilite la auditoría. La propia guía de Microsoft indica que, según la complejidad del entorno, el análisis puede llevar varios meses.3

4.2. El seguimiento va “del controlador de dominio hacia abajo”

Existe un orden fijo para leer los eventos que se van recopilando. La ruta de seguimiento que indica la guía de Microsoft es la siguiente.3

Orden de seguimiento de los eventos de auditoría NTLMDiagrama que muestra cómo seguir el rastro desde el evento 8004 del controlador de dominio, pasando por el evento 8003 del servidor miembro, hasta el evento 8001 del cliente, para llegar finalmente a la aplicación responsable; también indica que si el PID en el servidor miembro es 4 (SYSTEM), la vía es SMBNombre de canal seguro =servidor a investigarNombre de estación de trabajo =cliente a investigarNombre del proceso clienteSi el PID es 4 (SYSTEM),vía SMBControlador de dominioevento 8004Servidor miembroevento 8003Clienteevento 8001Aplicación responsable

Figura 1: Orden de seguimiento de los eventos de auditoría NTLM

Los elementos que hay que consultar en cada evento son los siguientes.3

Evento Dónde se registra Campos principales Cómo interpretarlo
8004 Controlador de dominio Fecha y hora / Nombre de canal seguro / Nombre de usuario / Nombre de dominio / Nombre de estación de trabajo El “nombre de canal seguro” es el servidor miembro al que se conectó el cliente. A continuación hay que revisar el 8003 de ese servidor
8003 Servidor miembro Fecha y hora / Nombre de usuario / Nombre de dominio / Nombre de estación de trabajo / PID Si el PID es 4 (SYSTEM), es vía modo kernel (=SMB). Hay que revisar el 8001 en el cliente indicado por el “nombre de estación de trabajo”
8001 Cliente Fecha y hora / Servidor de destino / Usuario especificado / Dominio especificado / Nombre del proceso cliente / Id. de usuario del proceso cliente Aquí se confirma la causa. Si el “servidor de destino” no tiene formato NetBIOS ni FQDN (= es una dirección IP), con la configuración predeterminada no se usa Kerberos

En esta ruta, lo que tiene especial valor son el “servidor de destino” y el “nombre del proceso cliente” del evento 8001. El primero indica directamente “por qué no se usó Kerberos”, y el segundo, “quién es el responsable”. La propia guía de Microsoft explica que, con esta información, se puede determinar que el usuario se está conectando a la dirección IP de un servidor web en lugar de usar el nombre NetBIOS o el FQDN con el que sí podría haberse usado Kerberos.3

Además, hay casos en los que el controlador de dominio no genera el evento 8004. Si la conexión al servidor de archivos se hace con una cuenta de usuario local, esa autenticación no pasa por el controlador de dominio.3 No se puede concluir “no hay problema” solo porque el registro del DC muestre pocos casos.

4.3. Recuento con PowerShell

Revisar miles de entradas en la interfaz gráfica del Visor de eventos no es realista, así que se resume con Get-WinEvent. Primero se confirma cuántos eventos hay y de qué tipo en esa máquina.

# Contar los eventos de NTLM/Operational por Id (ejecutar como administrador)
Get-WinEvent -FilterHashtable @{
    LogName   = 'Microsoft-Windows-NTLM/Operational'
    StartTime = (Get-Date).AddDays(-7)
} -ErrorAction SilentlyContinue |
    Group-Object Id |
    Sort-Object Count -Descending |
    Select-Object Count, @{ N = 'EventId'; E = { $_.Name } }

Una vez confirmado que hay eventos, se agrupan los 8001 del lado cliente por “servidor de destino × proceso que originó la llamada”. La estructura de los campos varía según el Id. de evento, así que lo más seguro es abrir primero un solo registro con Format-List para comprobar su estructura antes de decidir los índices.

# Comprobar primero el contenido de un solo evento
$sample = Get-WinEvent -FilterHashtable @{
    LogName = 'Microsoft-Windows-NTLM/Operational'
    Id      = 8001
} -MaxEvents 1

$sample | Format-List TimeCreated, Id, Message
# Para ver los campos estructurados
([xml]$sample.ToXml()).Event.EventData.Data |
    Select-Object Name, '#text'

Una vez conocida la estructura, se extraen los campos por el atributo Name del XML y se agrupan. Como el nombre de los atributos varía según la versión del sistema operativo, buscar por nombre resulta más resistente que hacerlo por posición.

# Agrupar los 8001 de los últimos 7 días por "destino × proceso que originó la llamada"
$events = Get-WinEvent -FilterHashtable @{
    LogName   = 'Microsoft-Windows-NTLM/Operational'
    Id        = 8001
    StartTime = (Get-Date).AddDays(-7)
} -ErrorAction SilentlyContinue

$rows = foreach ($e in $events) {
    $data = @{}
    foreach ($d in ([xml]$e.ToXml()).Event.EventData.Data) {
        $data[$d.Name] = $d.'#text'
    }
    [pscustomobject]@{
        Time    = $e.TimeCreated
        # Recoger, con orden de prioridad, solo los nombres de campo que realmente existan
        Target  = @('TargetName', 'TargetServer', 'ServerName') |
                  Where-Object { $data.ContainsKey($_) } |
                  ForEach-Object { $data[$_] } | Select-Object -First 1
        Process = @('ClientProcessName', 'ProcessName', 'ApplicationName') |
                  Where-Object { $data.ContainsKey($_) } |
                  ForEach-Object { $data[$_] } | Select-Object -First 1
    }
}

$rows | Group-Object Target, Process |
    Sort-Object Count -Descending |
    Select-Object Count, Name

El recuento final se devuelve en dos columnas: Count (número de casos) y Name (destino, proceso que originó la llamada unidos por una coma). Es decir, la salida tiene esta forma (los valores son un ejemplo ilustrativo).

Count Name
----- ----
  412 192.168.1.10, System
  118 fileserver.corp.example.com, System
   57 192.168.1.24, MyBizApp.exe
    9 legacy-nas, System

Lo que hay que mirar es la primera mitad de Name, es decir, el destino. Así se interpreta cada fila.

Forma de Name Significado Qué hacer a continuación
La primera mitad es una dirección IP (p. ej., 192.168.1.10, ...) El patrón más peligroso. Por defecto, cuando el nombre de host es una dirección IP no se intenta la autenticación Kerberos, así que esta fila estructuralmente no puede llegar a usar Kerberos10 Cambiar el destino a FQDN (capítulo 6). Eliminando primero las filas con más casos, el total baja de golpe
La primera mitad es un nombre NetBIOS o un FQDN El nombre en sí es correcto. Si aun así cae a NTLM, el problema es un SPN sin registrar, un alias, o la ruta de conexión Clasificar la causa con la tabla del capítulo 5
La segunda mitad es un proceso del sistema como System Es probable que sea vía SMB (PID 4). Hasta aquí no se puede saber cuál es la aplicación que originó la llamada Confirmar en el 8003 del lado servidor si el PID es 4, y desplegar ProcMon solo en ese equipo (sección 4.5)
La segunda mitad es el nombre de un ejecutable (p. ej., MyBizApp.exe) Ya está identificada la aplicación responsable. Es la más fácil de corregir Revisar la configuración de destino de esa aplicación (sección 8.2)
La segunda mitad de Name está vacía, o lo está en todas las filas El nombre de campo usado en el recuento no coincide con el esquema real Añadir a la lista de candidatos los nombres confirmados en el paso anterior

El valor absoluto del número de casos no dice gran cosa por sí solo. Fíjese en estos dos puntos: si las filas con dirección IP aparecen entre las primeras, y cuántas filas tienen ya identificado el nombre del ejecutable. El primero es una dependencia que, al corregirla, disminuye con seguridad; el segundo es una dependencia a la que ya se le puede asignar un responsable.

Como el nombre de los campos varía según la versión del sistema operativo, aquí se ordenan los candidatos en un arreglo con prioridad y solo se toman los que realmente existan. Si en este punto se usa una coincidencia parcial como -match 'Process', se puede terminar capturando también campos de PID como ClientProcessId, con lo que se agruparía por un PID que cambia en cada ejecución en lugar de por el nombre del ejecutable (como el orden de las claves de una tabla hash no está garantizado, tampoco es estable cuál de los dos se obtiene). Si la columna Process sale vacía en todas las filas, es señal de que los nombres candidatos no coinciden con el esquema real, así que añada al arreglo los nombres confirmados en el paso anterior.

Si va a recopilar datos de varios equipos, lo más rápido es ejecutarlo en paralelo con PowerShell Remoting (véase “Introducción a PowerShell Remoting (WinRM)”). El tiempo que tarda Get-WinEvent puede variar en un orden de magnitud según se use o no -FilterHashtable para filtrar; ese punto clave está reunido en “Cómo investigar el registro de eventos con Get-WinEvent en la práctica”.

4.4. Verlo desde el registro de seguridad — comprobar si todavía se usa NTLMv1

Además de NTLM/Operational, existe también la forma de confirmar la versión de NTLM a partir de los eventos de inicio de sesión del registro de seguridad. El procedimiento consiste en buscar “Paquete de autenticación” en el registro de seguridad y revisar la “Información de autenticación detallada” de cada evento.3

Información de autenticación detallada:
    Proceso de inicio de sesión:      NtLmSsp
    Paquete de autenticación:         NTLM
    Servicio migrado:                 -
    Nombre de paquete (solo NTLM):    NTLM V1
    Longitud de clave:                128

Este “Nombre de paquete (solo NTLM)” indica qué subprotocolo del conjunto NTLM se utilizó.3 Los hosts en los que aparece NTLM V1 son candidatos a dejar de autenticarse en cuanto se actualicen a Windows 11 24H2 / Windows Server 2025, porque NTLMv1 está eliminado en esas versiones.1 Al ejecutar la auditoría, dé prioridad específicamente a recoger este dato.

4.5. Cuando el PID es siempre 4 (SYSTEM) y no se puede avanzar

Al empezar la auditoría, casi siempre se choca con este muro. En aplicaciones que se comunican a través de un redirector, como sucede con SMB (carpetas compartidas), el sujeto que solicita la autenticación es el redirector en modo kernel, así que el PID que queda en el evento es siempre 4 (SYSTEM).3

La solución que indica la guía de Microsoft es la siguiente.3

  1. Instalar una herramienta de monitorización de procesos en el cliente que envía las credenciales NTLM (el “equipo” del evento 8001).
  2. Filtrar la ruta por el nombre de equipo y la dirección IP del servidor de destino, ambos a la vez. Si se necesita una captura prolongada, ejecutarla en modo segundo plano.
  3. Cruzar el resultado obtenido con la marca de tiempo del evento 8003 del lado servidor. Como coinciden el usuario, la ruta y el identificador de autenticación, a partir de ahí se puede identificar la aplicación que originó la llamada.

La herramienta es Process Monitor (ProcMon). Cómo aplicar los filtros y cómo interpretarlos está reunido en “Guía práctica de Process Monitor (ProcMon)”.

Un consejo práctico adicional: es abrumadoramente más rápido acotar primero “qué equipo es” usando solo el registro de eventos, hasta este punto, y solo entonces desplegar ProcMon en ese único equipo. Desplegar ProcMon en todos los equipos no es realista.

5. Patrones típicos que caen a NTLM

Una vez identificados los puntos mediante la auditoría, el siguiente paso es clasificar las causas. La guía de Microsoft menciona los siguientes cuatro tipos de aplicaciones que, en teoría, admiten Kerberos, pero terminan usando NTLM.3

  • Aplicaciones que permiten elegir distintas configuraciones o proveedores de seguridad
  • Aplicaciones cuyo SPN (nombre principal de servicio) no está configurado correctamente
  • Aplicaciones que, por errores de configuración o por la documentación del proveedor, usan direcciones IP en lugar de nombres DNS
  • Aplicaciones con una base de código heredada que aún conserva partes exclusivas de NTLM

El blog de soporte de tecnología Windows de Microsoft Japón menciona, como causas representativas del uso de NTLM, el acceso a servidores por dirección IP, la restricción por firewall de los puertos necesarios para Kerberos, los SPN sin registrar, la autenticación contra dominios de confianza y la autenticación en entornos de grupo de trabajo.2

Organizando todo esto en la forma en que se encuentra en la práctica, se obtiene la siguiente tabla. Las dos columnas de la derecha son criterios para asignar prioridad. “Alcance del impacto” indica la amplitud del problema si se detiene; “facilidad de corrección” indica si se puede resolver solo con las decisiones de la propia empresa. Con estas dos columnas ya se obtiene directamente el orden de un plan de trabajo.

Síntoma o configuración Por qué cae a NTLM Cómo confirmarlo Clasificación Alcance del impacto Facilidad de corrección
Se conecta a una carpeta compartida por dirección IP, como \\192.168.1.10\recurso Por defecto, cuando el nombre de host es una dirección IP no se intenta la autenticación Kerberos10 El “servidor de destino” del evento 8001 es una dirección IP Se corrige de inmediato Grande (muchos casos) Alta (se resuelve internamente)
La configuración de destino de la aplicación de negocio es una dirección IP Igual que arriba. Es frecuente que el manual del proveedor indique usar la IP Identificar la aplicación por el “nombre del proceso cliente” del evento 8001 Se corrige de inmediato Media a grande Alta (solo cambio de configuración)
Se accede mediante un alias DNS (CNAME) o un nombre propio en el archivo hosts No hay un SPN registrado para ese nombre Revisar la lista de SPN de la cuenta de servicio correspondiente Se corrige registrando el SPN Media Media (trabajo y coordinación en AD)
Un servicio o sitio de IIS de desarrollo propio se ejecuta con una cuenta dedicada La cuenta de servicio no tiene el SPN registrado Igual que arriba Se corrige registrando el SPN Media Media (hay que comprobar registros duplicados)
No se puede llegar al controlador de dominio desde una sede o a través de VPN La comunicación necesaria para Kerberos no pasa, y se produce un retroceso a NTLM Reglas de firewall y alcance del DC Problema de la ruta Grande (toda la sede) Baja (cambio de configuración de red)
El destino de envío SMB de un NAS, copiadora o escáner es un recurso compartido de Windows El equipo no admite Kerberos, o se autentica con una cuenta local Configuración de autenticación del equipo, y el 8003 del lado servidor Depende del equipo Media (se identifica el proceso de negocio) Baja (depende de la respuesta del proveedor o de renovar el equipo)
Acceso a un recurso compartido con equipos de grupo de trabajo o cuentas locales (ambos extremos con Windows reciente) No es una cuenta de dominio, así que directamente no entra en el terreno de Kerberos No se genera el 8004 en el controlador de dominio Puede resolverse en la fase 2 Media Baja (a la espera de que se ofrezca la función; sección 2.1)
Igual que arriba, pero el otro extremo es Windows antiguo u otro equipo de otro fabricante Igual que arriba. Pero el KDC local solo funciona entre versiones de Windows compatibles entre sí Comprobar la versión del sistema operativo o el modelo del otro extremo Hay que actuar por cuenta propia (unión al dominio, renovación, otro protocolo, excepción) Media Baja (implica presupuesto y calendario de renovación)
Autenticación contra otro dominio o un extremo sin relación de confianza No se puede emitir un ticket Kerberos “Dominio especificado” del evento 8001 Requiere una decisión de diseño Pequeña a media Baja (coordinación con la otra parte)
Productos antiguos que permiten elegir el método de autenticación La configuración está fijada en NTLM Pantalla de configuración de autenticación del producto Cambio de configuración o consulta al proveedor Media Media (alta si basta con la configuración)

El orden de trabajo se decide de forma mecánica a partir de estas dos columnas.

  1. La máxima prioridad, sin importar el alcance del impacto, son los equipos que solo hablan NTLMv1 y los hosts donde se ha registrado NTLM V1 (sección 4.4). Aquí “el plazo ya venció”, así que se coloca fuera del cálculo de prioridad.1
  2. Le sigue alcance del impacto = grande y facilidad de corrección = alta, es decir, las direcciones IP escritas a mano. Tienen muchos casos y se pueden corregir solo con decisiones de la propia empresa. Concentre aquí el primer mes.
  3. A continuación, lo relacionado con SPN, con facilidad de corrección = media. Se avanza junto con la unificación de nombres.
  4. Los casos con facilidad de corrección = baja (dependientes de equipo, de la ruta, o a la espera de la fase 2) no son que se retrase su inicio, sino que tienen un plazo de entrega largo, así que solo la consulta al proveedor y la obtención de presupuesto conviene iniciarlas en paralelo con los puntos 1 a 3.

Los clasificados como “se corrige de inmediato” y “se corrige registrando el SPN” deberían representar la mayor parte del resultado de la auditoría. Al eliminar solo estos, las excepciones restantes se reducen considerablemente.

6. Tabla de decisión para corregir cada caso

Clasificación Qué hacer Puntos de atención
Dirección IP escrita a mano Cambiar el destino a FQDN. Revisar accesos directos de carpetas compartidas, unidades de red mapeadas, archivos de configuración de aplicaciones, scripts por lotes y hasta los argumentos del Programador de tareas Confirmar antes que la resolución de nombres funciona con seguridad. Los inconvenientes de las unidades de red y las rutas UNC están reunidos en otro artículo
Dirección IP escrita a mano, pero de verdad no se puede cambiar a un nombre Configurar TryIPSPN en el cliente y registrar manualmente el SPN de la dirección IP con Setspn -s <clase de servicio>/<dirección IP> <cuenta> Último recurso. Lo que hay que registrar es la clase de servicio que el cliente realmente solicita. Para servicios que se asignan a HOST, como las carpetas compartidas, basta con host/192.168.1.1, pero para la web hace falta HTTP/192.168.1.1, y para SQL Server un SPN distinto que incluya el puerto, como MSSQLSvc/192.168.1.1:1433; si solo se registra host/ no habrá coincidencia y caerá a NTLM. La propia Microsoft indica que, como las direcciones IP son algo temporal, normalmente no se usan en los SPN, y que es un trabajo manual que solo debe emplearse cuando no se pueda cambiar a un nombre DNS. Con DHCP, se da por hecho que la dirección está reservada de forma estática. La configuración es necesaria en cada cliente que acceda10
SPN sin registrar Registrar en la cuenta que ejecuta el servicio el SPN correspondiente al nombre con el que se accede Un SPN duplicado rompe la propia autenticación Kerberos. Antes de registrar, comprobar siempre que no exista ya un duplicado
Acceso mediante un alias (CNAME) Registrar también el SPN para el alias, o unificar el acceso al FQDN La causa es el desajuste entre “el nombre original” y “el nombre realmente usado”, así que hay que decidir primero hacia cuál de los dos alinearse
Sede sin acceso al DC Habilitar la comunicación necesaria para Kerberos. Si la configuración no puede tener acceso de forma permanente, IAKerb de la fase 2 puede ser la solución IAKerb y el KDC local están previstos para la segunda mitad de 2026. Confirme en las notas de la versión si de verdad están disponibles para la versión de destino de su empresa2
Operación con cuentas locales Primero, clasificar según quién es el otro extremo. Si ambos son Windows compatibles, el KDC local de la fase 2 puede ser la solución, pero el Windows antiguo o los equipos de otros fabricantes (NAS, copiadoras, etc.) no entran en ese supuesto. Para estos últimos, hay que elegir entre unirse al dominio, renovar el equipo, cambiar a otro protocolo o incluirlo en la lista de excepciones No lo deje en espera de forma general diciendo “es una cuenta local, así que a esperar la fase 2”. Lo que resuelve IAKerb es el acceso al DC, no si son compatibles las cuentas locales o los equipos de otros fabricantes. Para el inicio de sesión local y las configuraciones de grupo de trabajo, NTLM seguirá siendo necesario a partir de ahora62
NAS, copiadoras multifunción Consultar al fabricante el estado de compatibilidad del firmware. Si no es viable la compatibilidad con Kerberos, cambiar a una vía de envío distinta de SMB (SMTP, FTPS, carpeta dedicada) o renovar el equipo Los equipos que solo hablan NTLMv1 tienen la máxima prioridad. Ya está eliminado en Windows 11 24H2 / Server 20251
Productos que permiten elegir el método de autenticación Elegir Negotiate/Kerberos en la configuración. Si no se puede elegir, consultar la hoja de ruta al proveedor Una respuesta de “sin planes de compatibilidad” sirve como argumento para el plan de renovación
Aplicaciones de desarrollo propio Sustituir la mención explícita a NTLM por Negotiate (capítulo 8) No solo hay que corregir el código, sino también la forma de escribir el destino
Lo que a pesar de todo persiste Registrarlo en la lista de excepciones del servidor y contar ese número cada año La excepción es “un plazo hasta eliminarlo”, no una solución. Use como indicador si el número está disminuyendo7

7. Bloqueo de NTLM en SMB — la ruta más corta para una comprobación real

El registro de auditoría indica “que se está usando”, pero no indica “qué pasaría si se detuviera”. Aquí es donde resulta útil el bloqueo de NTLM en el lado cliente de SMB, añadido en Windows Server 2025 y Windows 11 versión 24H2.4

Esta función impide que el cliente SMB use autenticación NTLM en las conexiones salientes hacia un destino remoto. Microsoft indica que esto impide la técnica de hacer que se envíen solicitudes NTLM a un servidor malicioso, y ayuda a contrarrestar ataques de fuerza bruta, de descifrado y de Pass-the-Hash, y además señala que el bloqueo de NTLM es necesario para migrar el protocolo de autenticación de la organización a Kerberos. Al mismo tiempo, aclara que se puede habilitar solo esta capa de protección sin deshabilitar NTLM por completo.4

Los requisitos previos son estos dos.4

  • Que el cliente SMB sea Windows Server 2025 o posterior, o Windows 11 versión 24H2 o posterior
  • Que el servidor SMB de destino pueda usar Kerberos (el sistema operativo del servidor SMB puede ser cualquiera que admita PKU2U o Kerberos)

7.1. Probarlo primero con un solo equipo y una sola conexión

En lugar de distribuir directamente una directiva, se aprovecha que el bloqueo se puede especificar por conexión. Esta es la ruta más corta para una comprobación real.

# Prohibir NTLM solo en esa conexión y probar a conectarse
# (si conecta, ese recurso compartido funciona sin necesitar NTLM)
NET USE \\fileserver.corp.example.com\share /BLOCKNTLM

# Lo mismo se puede hacer con el mapeo de PowerShell
New-SmbMapping -RemotePath \\fileserver.corp.example.com\share -BlockNTLM $true

Si conecta, significa que esa ruta funciona sin necesitar NTLM. Si falla, ese es un punto de dependencia de NTLM. Se puede comprobar, conexión por conexión y sin cambiar ninguna directiva, si algo se detendría en producción, lo que resulta muy adecuado para verificar el registro de auditoría.

Hay tres lugares donde comprobar el resultado. (1) Si la conexión tuvo éxito o no se ve en el propio resultado del comando: si tiene éxito, se crea el mapeo y aparece en la lista de net use y en Get-SmbConnection -ServerName <nombre del servidor>; si falla, termina con un error y no queda ningún mapeo. (2) Si de verdad se debe a NTLM se determina comparándolo con el paso 3 más abajo (conectar sin la marca). Si también falla sin la marca, es otro problema distinto. (3) Con qué se autenticó, si se quiere confirmar con certeza, se determina con el método descrito al final de esta sección (klist y el registro de seguridad del lado servidor). No dé por sentado que depende de NTLM solo por el texto del mensaje de error.

Ahora bien, esta comprobación requiere seguir un procedimiento. Si se ejecuta sin más, se obtienen falsos resultados en ambas direcciones.

$server = 'fileserver.corp.example.com'

# 1. Quitar "todas y cada una" de las asignaciones a ese servidor
#    Si queda aunque sea un recurso compartido conectado, la sesión a nivel de servidor sigue viva
net use | Select-String $server              # primero ver qué hay conectado
net use \\$server\share  /delete
net use \\$server\other  /delete             # también todos los demás recursos del mismo servidor

# 2. Confirmar que la sesión realmente desapareció (no avanzar hasta que quede vacío)
Get-SmbConnection -ServerName $server

# 3. Primero confirmar que conecta sin la marca (si falla aquí, es un problema distinto de NTLM)
net use \\$server\share
net use \\$server\share /delete
Get-SmbConnection -ServerName $server        # volver a dejarlo vacío también aquí

# 4. Ahora sí, probar con /BLOCKNTLM
net use \\$server\share /BLOCKNTLM
  • Por qué hacen falta los pasos 1 y 2: las sesiones SMB son por servidor, no por recurso compartido. Si queda una sesión ya autenticada contra ese servidor, el redirector la reutiliza sin volver a autenticarse. /BLOCKNTLM solo afecta a la autenticación que se realiza para ese mapeo concreto, y no revalida retroactivamente una sesión ya establecida (que pudo haberse creado con NTLM). Es decir, no basta con hacer /delete solo del recurso compartido que se está probando. Si queda conectado otro recurso compartido del mismo servidor, la prueba tendría éxito aunque exista dependencia de NTLM. Hay que llegar hasta el estado en el que Get-SmbConnection no devuelve nada. Además de las propias asignaciones, puede haber aplicaciones residentes o trabajos de copia de seguridad reteniendo sesiones. Para hacerlo con total seguridad, lo más rápido es probar desde un equipo que nunca se haya conectado a ese servidor.
  • Por qué hace falta el paso 3: un fallo en la resolución de nombres, unas credenciales incorrectas o la falta de permisos sobre el propio recurso compartido también hacen fallar la ejecución con /BLOCKNTLM. Si también falla sin la marca, no es una dependencia de NTLM, sino otro problema.

Aquí solo se puede afirmar que “no hizo falta NTLM”, no que “se autenticó con Kerberos”; tenga presente esta distinción. El requisito previo de esta función es “un servidor SMB que pueda usar Kerberos”, pero el destino también puede ser un sistema operativo que admita PKU2U. Es decir, queda la posibilidad de que el éxito se deba a PKU2U y no a Kerberos. Cuando el otro extremo es un servidor de archivos unido al dominio, en la práctica esto casi nunca supone un problema, pero si de verdad se quiere confirmar con qué se autenticó, ejecute klist en el cliente tras la conexión para ver si se obtuvo un ticket cifs/ para ese servidor, o revise en el registro de seguridad del lado servidor el paquete de autenticación del evento de inicio de sesión (sección 4.4).

7.2. Habilitarlo por equipo

Una vez confirmado el resultado, se pasa a bloquear el equipo por completo en equipos piloto.4

# Bloquear NTLM en todo el cliente SMB (requiere permisos de administrador)
Set-SmbClientConfiguration -BlockNTLM $true

Con directiva de grupo, se habilita “Bloquear NTLM (LM, NTLM, NTLMv2)” en Configuración del equipo > Plantillas administrativas > Red > Estación de trabajo Lanman.4

7.3. Para los casos que a pesar de todo persisten, usar la lista de excepciones

Los servidores SMB que no están unidos al dominio y cualquier otro extremo que de verdad necesite NTLM se pueden dejar como excepción. Habilite la directiva de grupo Estación de trabajo Lanman > Bloquear la lista de excepciones de servidor NTLM y enumere la dirección IP, el nombre NetBIOS o el FQDN de los destinos permitidos.4

No existe un cmdlet de PowerShell para crear la propia lista de excepciones, así que la primera vez es necesario configurarla desde el Editor de directivas de grupo; una vez creada, sí se pueden añadir entradas individuales mediante la clave del registro.4

# Añadir una entrada a la lista de excepciones existente
$params = @{
  Path = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation"
  Name = "BlockNTLMServerExceptionList"
}
$Entries = "192.168.10.10", "corp.contoso.com", "CORP"

$CurrentValue = (Get-ItemProperty @params -ErrorAction SilentlyContinue).BlockNTLMServerExceptionList
$params["Value"] = if ($null -eq $CurrentValue) { $Entries }
                   else { $CurrentValue + $Entries }
Set-ItemProperty @params

Aviso: el ejemplo que aparece en la documentación de Microsoft, para el caso en el que el valor todavía no existe, se limita a asignar @(""), con lo que las entradas que se querían añadir se descartan directamente.4 Esto provoca que en la primera ejecución no entre ninguna excepción, y que solo se registren correctamente en la segunda ejecución; por eso el código anterior escribe directamente las entradas a añadir también en el caso de que aún no exista el valor. Aun así, este valor de registro sigue siendo, en principio, un área gestionada por la directiva de grupo. Gestione las excepciones permanentes desde la directiva de grupo, y use esta operación solo como medida temporal de emergencia. Se sobrescribirá en la siguiente aplicación de la directiva.

Aviso: esta función es una característica del lado cliente de SMB.4 NTLM en rutas que no son SMB (comunicación HTTP de aplicaciones propias, conexiones a SQL Server, WinRM, etc.) no queda detenido por esto. Esas rutas hay que eliminarlas individualmente siguiendo la clasificación del capítulo 5.

8. NTLM desde el punto de vista del desarrollador — usar Negotiate

Si su empresa desarrolla sus propias aplicaciones de Windows, los puntos que hay que corregir están bien delimitados. Microsoft lo indica de forma explícita.5

Las aplicaciones no deberían acceder directamente al paquete de seguridad NTLM. En su lugar, deberían usar el paquete de seguridad Negotiate. Negotiate permite utilizar protocolos de seguridad más avanzados si los sistemas implicados en la autenticación los admiten. Actualmente, el paquete de seguridad Negotiate elige entre Kerberos y NTLM. Negotiate elige Kerberos salvo que alguno de los sistemas implicados en la autenticación no pueda usarlo.

Es decir, el principio es cambiar por “Negotiate” los puntos donde aparece escrito “NTLM”. La lista de funciones obsoletas dice lo mismo: las llamadas a NTLM deben sustituirse por llamadas a Negotiate.1

8.1. La mención explícita a “NTLM” habitual en .NET

// Mal ejemplo: se menciona explícitamente NTLM como tipo de autenticación
var credential = new NetworkCredential(user, password, domain);
var cache = new CredentialCache();
cache.Add(new Uri("http://intra.example.local/"), "NTLM", credential);

var handler = new HttpClientHandler { Credentials = cache };
// Buen ejemplo: lo único que cambia es el tipo de autenticación. Las credenciales se pasan igual
var credential = new NetworkCredential(user, password, domain);
var cache = new CredentialCache();
cache.Add(new Uri("http://intra.example.local/"), "Negotiate", credential);

var handler = new HttpClientHandler { Credentials = cache };

Aquí lo único que cambia es la cadena del tipo de autenticación. Si en lugar de eso se sustituye credential por CredentialCache.DefaultNetworkCredentials, no solo cambia el protocolo de autenticación, sino también quién se autentica. En vez de autenticarse con la cuenta especificada, se autenticará con la cuenta que ejecuta ese proceso (una cuenta de servicio o el usuario que tenga la sesión iniciada), y según los permisos configurados en el destino puede dejar de funcionar. Mantenga separados el cambio de protocolo y la revisión de las credenciales; son dos cambios distintos.

Por otro lado, si lo que se busca directamente es autenticarse con las credenciales del usuario que tiene la sesión iniciada (autenticación integrada de Windows), se puede escribir de forma más sencilla. Esta es la forma de escribirlo cuando se quiere cambiar de manera intencionada “con quién” se autentica.

// Autenticación integrada de Windows (se autentica con el usuario que ha iniciado sesión actualmente)
var handler = new HttpClientHandler
{
    UseDefaultCredentials = true,
};

El manejo de HttpClient en sí (no envolverlo en using, el patrón de creación, el diseño de tiempos de espera) está reunido en “No envuelva HttpClient en un using”.

Si es necesario manejar SSPI directamente, System.Net.Security.NegotiateAuthentication, añadido en .NET 7, permite gestionar la autenticación a través de Negotiate desde código administrado. También aquí el punto clave es no especificar NTLM como nombre de paquete.

8.2. Lo que hay que revisar antes que el código: “cómo se escribe el destino”

Aunque se corrija el código, si el destino sigue siendo una dirección IP, al final se seguirá cayendo a NTLM. Por defecto, cuando el nombre de host es una dirección IP, Windows no intenta la autenticación Kerberos contra ese host y recurre a otro protocolo válido, como NTLM.10 En concreto, revise lo siguiente.

  • Nombres de servidor escritos en archivos de configuración (appsettings.json, App.config, archivos ini)
  • La indicación del servidor en la cadena de conexión de SQL Server (Data Source)
  • Los puntos donde se construye una ruta UNC. Si hay alguna dirección IP escrita directamente
  • Los valores por defecto del instalador o del procedimiento de preparación de equipos (kitting)
  • Puntos donde, en una respuesta a una incidencia anterior, se cambió a IP “porque la resolución de nombres era inestable” y nunca se revirtió

Este último punto se encuentra con muchísima frecuencia. La dirección IP escrita a mano fue, en su momento, una solución de emergencia correcta, pero hoy es deuda técnica.

8.3. Si desarrolla el lado del servicio

Si quiere que un servicio de Windows o una aplicación de IIS de desarrollo propio se reciba por Kerberos, es necesario registrar en la cuenta que descifra el ticket el SPN correspondiente al nombre que usa el cliente para acceder. Como se mencionó, la propia Microsoft cita, como ejemplo representativo, que las aplicaciones sin SPN registrado caen a NTLM aunque digan admitir Kerberos.3

Si se piensa de forma simplista que el destino del registro es “la cuenta que ejecuta el servicio”, se tropieza con IIS. La autenticación de Windows de IIS tiene habilitada por defecto la autenticación en modo kernel, y en ese caso quien descifra el ticket Kerberos no es la identidad del grupo de aplicaciones, sino la cuenta de equipo que usa HTTP.sys. Aunque se ejecute el grupo de aplicaciones con una cuenta de dominio dedicada, si se registra el SPN HTTP del sitio en esa cuenta, se produce un desajuste entre el titular del SPN y la cuenta que realmente descifra, y no solo cae a NTLM, sino que la propia autenticación falla directamente con KRB_AP_ERR_MODIFIED.

El punto clave es hacer que coincidan el destino del registro del SPN y la identidad que descifra el ticket. Hay dos formas de lograrlo.

  • Descifrar con la cuenta de equipo (comportamiento por defecto): si el sitio se publica con un nombre de host, registrar el SPN HTTP de ese nombre de host en la cuenta de equipo.
  • Descifrar con la identidad del grupo de aplicaciones: habilitar useAppPoolCredentials y registrar el SPN HTTP en la cuenta del grupo de aplicaciones.

Cuál elegir depende de si se comparte la misma cuenta de servicio entre varios servidores (si se comparte, alinearse con la identidad del grupo resulta más manejable). Tenga en cuenta que un SPN solo se puede registrar en una cuenta, así que al cambiar de una a otra no olvide eliminar el registro anterior. Un registro duplicado rompe la propia autenticación Kerberos.

Si su diseño se hace pasar por el cliente para acceder a otros servidores (delegación), el tratamiento cambia entre NTLM y Kerberos. Kerberos admite un mecanismo de delegación mediante el cual un servicio se conecta a otro servicio en representación del cliente, mientras que lo que ofrece NTLM llega solo hasta la información de autorización necesaria para la suplantación local.8 La implementación relativa a la suplantación se trata en “Suplantación (Impersonation) y tokens en Windows”.

9. Hoja de ruta para ir cerrando el acceso por etapas

En resumen, el avance sigue este orden. En cada etapa debe poder “revertirse”.

Etapa Qué hacer Cómo determinar que está completa
0. Preparación Revisar el tamaño del registro de eventos y el periodo de retención. Si existe un mecanismo de recopilación (WEF, etc.), confirmar la ruta Al habilitar la auditoría, el registro no se pierde por sobrescritura
1. Visualización Habilitar las 3 directivas de auditoría y recopilar hasta que el negocio complete un ciclo (como mínimo, que pase un cierre mensual) Se obtiene un listado de “equipo × destino × proceso” y también han terminado de ejecutarse los procesos de baja frecuencia
2. Clasificación Clasificar las causas con la tabla del capítulo 5. Los hosts donde aparece NTLMv1 van en un grupo aparte con máxima prioridad Todas las filas tienen asignado un responsable y una clasificación
3. Corregir los nombres Pasar las direcciones IP escritas a mano a FQDN. Registrar los SPN El evento 8001 correspondiente deja de aparecer
4. Verificación (SMB) Confirmar conexión por conexión con NET USE /BLOCKNTLM (siguiendo el procedimiento de la sección 7.1) Los recursos compartidos principales conectan sin necesitar NTLM
5. Piloto (SMB) En unos pocos equipos, como los de sistemas, ejecutar Set-SmbClientConfiguration -BlockNTLM $true Pasa un ciclo de cierre completo sin impacto en el negocio
6. Despliegue (SMB) Distribuir el bloqueo de NTLM en SMB mediante directiva de grupo. Crear la lista de excepciones con el mínimo posible El número de excepciones en la lista es manejable
6b. Fuera de SMB Cerrar lo que queda de HTTP, SQL Server, WinRM y aplicaciones propias, siguiendo el orden auditar → registrar excepciones → denegar en “Tráfico NTLM saliente hacia servidores remotos”. Para todo el dominio, avanzar en el mismo orden con “Autenticación NTLM en este dominio” El evento 8001 correspondiente a lo que no es SMB también deja de aparecer
7. Continuidad Contar de forma periódica el número de entradas tanto en la lista de excepciones de SMB como en la lista de excepciones de servidor de Restringir NTLM. Seguir de cerca la disponibilidad de las funciones de la fase 2 Las excepciones disminuyen cada año

9.1. Bloquear SMB es solo la mitad de la medida contra NTLM

Lo que cubren las etapas 4 a 6 es únicamente SMB. Como se mencionó en el capítulo 7, el bloqueo de NTLM del cliente SMB es una función del lado cliente de SMB4 y no surte efecto en otras rutas. Lo que en la etapa 2 se clasificó como “se autentica por HTTP”, “SQL Server usa NTLM” o “WinRM usa NTLM” sigue sin tocarse aunque se llegue hasta la etapa 6. Y como tampoco aparece en la lista de excepciones de SMB, ni siquiera se ve al contar los números.

Cerrar eso es lo que hace la etapa 6b. Se usan las mismas 3 directivas que se pusieron en modo auditoría en el capítulo 4. El procedimiento sigue la misma forma.11

  1. Manteniendo “Tráfico NTLM saliente hacia servidores remotos” en auditar todo, identificar los destinos de conexión que aún quedan
  2. Registrar en “Agregar excepciones de servidor remoto” a los destinos que de verdad sean imprescindibles
  3. En equipos piloto, cambiar a denegar todo y esperar a que el negocio complete un ciclo
  4. Si no hay problemas, desplegarlo

Para todo el dominio, se avanza con “Autenticación NTLM en este dominio”, también en el orden auditar → excepciones (registrar en “Agregar excepciones de servidor de este dominio”) → denegar.12 Microsoft también indica que, antes de elegir la opción de denegar, hay que configurar la directiva de auditoría correspondiente con la misma opción para evaluar el impacto.12

No dé por completada la medida contra NTLM solo por haber bloqueado SMB. Si necesita un indicador de finalización, cuente ambas listas: la de excepciones de SMB y la de excepciones de servidor de Restringir NTLM.

9.2. El periodo de auditoría se decide por “un ciclo del negocio”, no por “días”

En la etapa 1, el error más frecuente es cómo decidir el periodo. Si se da por completado diciendo “ya llevamos dos semanas recopilando”, los procesos que no se ejecutaron durante esas dos semanas no aparecerán en el listado. Y lo que no aparece se romperá recién cuando se distribuya el bloqueo en la etapa 6.

En concreto, lo que más se suele pasar por alto es esto:

  • Procesos de cierre mensual o trimestral. Un caso típico es un proceso por lotes de fin de mes que se conecta por dirección IP a una carpeta compartida o a una base de datos.
  • Procesos anuales. Inventarios, cambio de ejercicio fiscal, procesos ligados al cierre contable.
  • Rutas que solo se activan en caso de incidencia. Procedimientos de recuperación desde copia de seguridad, cambio a un servidor alterno, simulacros de recuperación ante desastres (DR).
  • Equipos que permanecen fuera de línea durante mucho tiempo. Portátiles que se llevan fuera, equipos de personas de vacaciones prolongadas, equipos de repuesto que normalmente están apagados.
  • Aplicaciones de negocio que se usan solo unas pocas veces al año.

La propia guía de Microsoft indica que, según la complejidad del despliegue, el análisis puede llevar varios meses.3 Hay dos líneas realistas a seguir:

  1. Mantener la auditoría activa hasta que el negocio complete un ciclo. Como mínimo, un cierre mensual; si es posible, que abarque un trimestre.
  2. Identificar de antemano los procesos de baja frecuencia y ejecutarlos de forma intencionada. Si no se puede esperar el periodo, ejecutar los procesos de cierre o los procedimientos de DR en un entorno de pruebas y añadir el resultado al listado. El punto clave es enumerar de antemano, mediante entrevistas con los responsables, los procesos que “no aparecen simplemente porque no se han ejecutado”.

En ambos casos, avance a la siguiente etapa solo después de estar en condiciones de distinguir entre “no apareció ningún evento” y “todavía no se ha ejecutado”.

9.3. No pasar de golpe a denegar

Aquí el punto clave es no pasar de golpe a “denegar todo” en el tráfico NTLM saliente. Microsoft también indica que, si esta directiva se configura en denegar, numerosas solicitudes de autenticación NTLM fallarán y puede reducirse la productividad, por lo que antes de implementarla hay que confirmar el registro con “auditar todo”, analizar los servidores y elaborar una lista de excepciones a excluir.7 Existe una advertencia similar para la directiva “Autenticación NTLM en este dominio”, que se aplica a todo el dominio.12

10. Resumen

  • NTLM quedó marcado como obsoleto en todas sus versiones en junio de 2024. No es un cambio que se detenga de inmediato: se indica que seguirá funcionando tanto en el próximo Windows Server como en la siguiente versión anual de Windows.1
  • Por otro lado, NTLMv1 ya está eliminado (Windows 11 24H2 / Windows Server 2025). Los equipos que solo hablan NTLMv1 y los hosts donde queda registrado NTLM V1 son el plazo más cercano.1
  • La baja avanza en 3 fases: la fase 1 es auditoría, la fase 2 (segunda mitad de 2026) es IAKerb y el KDC local, la fase 3 es la deshabilitación por defecto.2
  • La auditoría consiste en poner en modo auditoría las 3 directivas y recopilar Microsoft-Windows-NTLM/Operational. Para las cuentas de dominio, se sigue el orden 8004 del DC → 8003 del servidor miembro → 8001 del cliente, y al final se llega hasta el nombre de la aplicación. La autenticación con cuentas locales no genera el 8004, así que se recoge a partir de los eventos de servidor y de cliente.37
  • La vía SMB siempre muestra el PID como 4 (SYSTEM). Acote primero el equipo con el registro de eventos y luego persiga solo ese equipo con ProcMon.3
  • La mayoría de las causas son “de nombres”. Eliminando solo las direcciones IP escritas a mano y los SPN sin registrar, las excepciones restantes se reducen enormemente.32
  • NET USE \\servidor\recurso /BLOCKNTLM es el medio de verificación más seguro: permite confirmarlo con una sola conexión, sin cambiar ninguna directiva.4
  • En las aplicaciones propias, sustituya la mención explícita a NTLM por Negotiate y unifique la forma de escribir el destino usando FQDN.5
  • La lista de excepciones no es una solución, sino un plazo concedido. Use como indicador si el número disminuye cada año.

Artículos relacionados

Áreas de consultoría relacionadas

KomuraSoft LLC se ocupa del inventario de dependencias de NTLM, de la modificación de aplicaciones de negocio como parte de la migración hacia un supuesto basado en Kerberos, y de la investigación de incidencias relacionadas con la autenticación.

Referencias

  1. Microsoft Learn, Deprecated features in the Windows client. Sobre que todas las versiones de NTLM, incluidas LANMAN, NTLMv1 y NTLMv2, quedan fuera del desarrollo activo de funciones y se marcan como obsoletas; que el uso de NTLM seguirá funcionando tanto en el próximo Windows Server como en la siguiente versión anual de Windows; que las llamadas a NTLM deben sustituirse por llamadas a Negotiate, que intenta la autenticación con Kerberos y solo recurre a NTLM cuando es necesario; que el anuncio de obsolescencia es de junio de 2024; y que, como actualización de noviembre de 2024, NTLMv1 se eliminó de Windows 11 versión 24H2 y de Windows Server 2025. También trata la distinción entre obsoleto (deprecated) y eliminado (removed) como fases diferentes, en la que una función marcada como obsoleta no recibe desarrollo activo y puede eliminarse en una actualización futura.  2 3 4 5 6 7 8 9 10 11

  2. Microsoft Japan Windows Technology Support Blog, NTLM の廃止に向けた対応について. Sobre que la baja de NTLM avanza en tres fases (fase 1 = visualización y auditoría del uso, fase 2 = funciones de respuesta a los escenarios dependientes de NTLM previstas para la segunda mitad de 2026, fase 3 = deshabilitación por defecto de la autenticación NTLM en red en la próxima versión principal); las tres directivas de grupo que se configuran para la auditoría (auditar la autenticación NTLM dentro de este dominio, auditar el tráfico NTLM entrante, tráfico NTLM saliente hacia servidores remotos = auditar todo) y la confirmación mediante el registro NTLM/Operational; que al migrar a Kerberos conviene considerar el uso de IAKERB y el KDC local, y que la disponibilidad del KDC local está prevista para la segunda mitad de 2026; que las aplicaciones deben usar Negotiate; y que, como causas representativas del uso de NTLM, se mencionan el acceso a servidores por dirección IP, la restricción por firewall de los puertos necesarios para Kerberos, los SPN sin registrar, la autenticación contra dominios de confianza y la autenticación en entornos de grupo de trabajo.  2 3 4 5 6 7 8 9 10 11

  3. Microsoft Learn, Viewing events for assessing NTLM usage. Sobre cómo buscar “Paquete de autenticación” en los eventos de inicio de sesión del registro de seguridad y determinar, a partir del “Nombre de paquete (solo NTLM)” de la “Información de autenticación detallada”, si se usó NTLM V1 o V2; que el análisis puede llevar varios meses según la complejidad del despliegue; los cuatro tipos de aplicaciones que, en teoría, admiten Kerberos pero terminan usando NTLM (las que permiten elegir configuración o proveedor de seguridad, las que tienen un SPN mal configurado, las que usan direcciones IP en lugar de nombres DNS por errores de configuración o documentación del proveedor, y las que tienen una base de código heredada con partes exclusivas de NTLM); las tres directivas usadas para la auditoría y los Id. de evento correspondientes; el procedimiento de seguimiento desde el evento 8004 del controlador de dominio (fecha y hora, nombre de canal seguro, nombre de usuario, nombre de dominio, nombre de estación de trabajo), pasando por el evento 8003 del servidor miembro (fecha y hora, nombre de usuario, nombre de dominio, nombre de estación de trabajo, PID), hasta el evento 8001 del cliente (fecha y hora, servidor de destino, usuario especificado, dominio especificado, nombre del proceso cliente, Id. de usuario del proceso cliente); que si el servidor de destino no tiene formato NetBIOS ni FQDN, no se usa Kerberos; que la conexión al servidor de archivos con una cuenta de usuario local puede no generar el evento 8004 del controlador de dominio; y que en aplicaciones que se comunican a través de un redirector, como SMB, el PID siempre es 4 (SYSTEM), por lo que es necesario identificar el proceso que originó la llamada del lado cliente con Process Monitor.  2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

  4. Microsoft Learn, Block NTLM connections on SMB in Windows Server 2025. Sobre que el cliente SMB puede bloquear la autenticación NTLM en las conexiones salientes hacia un destino remoto; que esto impide la técnica de hacer que se envíen solicitudes NTLM a un servidor malicioso y ayuda a contrarrestar ataques de fuerza bruta, de descifrado y de Pass-the-Hash; que el bloqueo de NTLM es necesario para migrar el protocolo de autenticación de la organización a Kerberos, y que, por otro lado, se puede habilitar solo esta capa de protección sin deshabilitar NTLM por completo; que los requisitos previos son un cliente SMB con Windows Server 2025 o posterior, o Windows 11 versión 24H2 o posterior, y un servidor SMB que pueda usar Kerberos; que el bloqueo de NTLM es una función del lado cliente de SMB y que el servidor SMB de destino puede tener cualquier sistema operativo que admita PKU2U o Kerberos; que con directiva de grupo se habilita “Bloquear NTLM (LM, NTLM, NTLMv2)” en “Configuración del equipo > Plantillas administrativas > Red > Estación de trabajo Lanman”; que con PowerShell se usa Set-SmbClientConfiguration -BlockNTLM $true; que la directiva de excepciones “Bloquear la lista de excepciones de servidor NTLM” admite enumerar direcciones IP, nombres NetBIOS y FQDN, que no existe un cmdlet de PowerShell correspondiente por lo que la primera vez hace falta configurarlo desde el Editor de directivas de grupo y después se pueden añadir excepciones individuales mediante el valor de registro BlockNTLMServerExceptionList; y que NET USE \\servidor\recurso /BLOCKNTLM y New-SmbMapping -RemotePath \\servidor\recurso -BlockNTLM $true permiten bloquear NTLM por unidad de mapeo.  2 3 4 5 6 7 8 9 10 11 12 13

  5. Microsoft Learn, Microsoft NTLM. Sobre que las credenciales NTLM se componen de un hash unidireccional del nombre de dominio, el nombre de usuario y la contraseña obtenidos en el inicio de sesión interactivo; que la autenticación se realiza mediante un desafío/respuesta cifrado, sin enviar la contraseña por la red; el procedimiento de autenticación no interactiva (el cliente envía el nombre de usuario en texto claro, el servidor genera y envía un número aleatorio de 8 bytes -el desafío-, el cliente cifra el desafío con el hash de la contraseña y devuelve la respuesta, el servidor envía al controlador de dominio los tres datos -nombre de usuario, desafío y respuesta-, y el controlador de dominio realiza el mismo cálculo con el hash extraído de la base de datos SAM y los compara); y que las aplicaciones no deberían acceder directamente al paquete de seguridad NTLM, sino usar el paquete de seguridad Negotiate, que elige entre Kerberos y NTLM y opta por Kerberos salvo que alguno de los sistemas implicados en la autenticación no pueda usarlo.  2 3 4

  6. Microsoft Learn, NTLM overview in Windows Server. Sobre que la autenticación NTLM es el conjunto de protocolos de autenticación (LAN Manager versiones 1 y 2, NTLM versiones 1 y 2) incluido en Msv1_0.dll; que autentica usuarios y equipos mediante un mecanismo de desafío/respuesta; que cada vez que un servidor de recursos necesita un nuevo token de acceso, consulta al servicio de autenticación del controlador de dominio si se trata de una cuenta de dominio, o a su base de datos de cuentas local si es una cuenta local; que la autenticación de Windows en sistemas configurados como miembros de un grupo de trabajo, así como el inicio de sesión local fuera de los controladores de dominio, siguen usando NTLM y deben seguir usándolo; que en entornos de Active Directory, Kerberos versión 5 es el método de autenticación recomendado; y que reducir el uso de NTLM requiere tanto conocer los requisitos de las aplicaciones ya desplegadas como los pasos de configuración necesarios para usar otros protocolos.  2 3

  7. Microsoft Learn, Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers. Sobre los cuatro valores de configuración -permitir todo, auditar todo, denegar todo, no definido-, siendo “no definido” equivalente a “permitir todo”; el procedimiento recomendado de elegir primero “auditar todo”, revisar el registro de operación y solo después elaborar la lista de excepciones de servidor; la ubicación de la configuración en “Configuración del equipo\Configuración de Windows\Configuración de seguridad\Directivas locales\Opciones de seguridad”; que no requiere reiniciar y se activa al guardarse, tanto si se guarda localmente como si se distribuye por directiva de grupo; que los eventos de auditoría y de bloqueo se registran en el registro de operación “Registros de aplicaciones y servicios\Microsoft\Windows\NTLM”, para el que no existe una directiva de eventos de auditoría de seguridad; que la autenticación NTLM y NTLMv2 es vulnerable a ataques maliciosos, incluidos los de retransmisión SMB, los de intermediario y los de fuerza bruta; y que configurarlo en denegar hace fallar numerosas solicitudes de autenticación NTLM y puede reducir la productividad, por lo que antes hay que evaluar el impacto con auditoría y elaborar una lista de excepciones.  2 3 4 5 6 7 8

  8. Microsoft Learn, Kerberos authentication overview in Windows Server. Sobre que el KDC se ejecuta en los controladores de dominio y usa la base de datos de Active Directory Domain Services como base de datos de cuentas de seguridad; que Kerberos admite la delegación por parte de un servicio (el mecanismo mediante el cual un servicio se conecta a otro en representación del cliente), mientras que lo que ofrecen tanto NTLM como Kerberos es la información de autorización necesaria para que un servicio suplante al cliente de forma local; que con la autenticación NTLM anterior a Kerberos, el servidor de aplicaciones necesitaba conectarse al controlador de dominio cada vez que autenticaba a un cliente o servicio, mientras que con Kerberos los tickets de sesión renovables sustituyen esa autenticación de paso y el servidor no necesita acudir al controlador de dominio salvo que se requiera validar el PAC; y que con Kerberos ambos extremos de la conexión pueden verificar la identidad del otro, mientras que NTLM no permite que el cliente verifique al servidor ni que un servidor verifique a otro, ya que fue diseñado para entornos donde se puede asumir que el servidor es auténtico.  2

  9. Microsoft Learn, Assessing NTLM usage. Sobre la necesidad de descubrir y auditar el estado actual del tráfico de autenticación NTLM antes de implementar directivas y procedimientos para usar un protocolo de autenticación mejorado como Kerberos; los tres puntos donde debe capturarse el uso de NTLM (tráfico saliente desde los controladores de dominio del dominio, tráfico entrante hacia servidores remotos, y tráfico entrante desde clientes hacia servidores remotos de destino); y que comprender el entorno es un trabajo iterativo. 

  10. Microsoft Learn, Configuring Kerberos for IP Address. Sobre que, a partir de Windows 10 versión 1507 y Windows Server 2016, el cliente Kerberos puede admitir nombres de host IPv4/IPv6 en el SPN; que por defecto, cuando el nombre de host es una dirección IP, Windows no intenta la autenticación Kerberos contra ese host y recurre a otro protocolo de autenticación válido, como NTLM; que las aplicaciones que tienen la dirección IP escrita a mano recurren a NTLM y pueden causar problemas de compatibilidad en entornos que van deshabilitando NTLM; que para reducir ese impacto se introdujo la función que permite usar direcciones IP como nombre de host en el SPN, que se habilita poniendo en 1 el valor de registro del lado cliente TryIPSPN (REG_DWORD, no presente por defecto) en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters, y que hace falta configurarlo en cada cliente que necesite acceder por dirección IP a un recurso protegido por Kerberos; y que, como las direcciones IP son algo temporal y pueden generar conflictos o fallos de autenticación al vencer y renovarse la concesión, normalmente no se usan en lugar del nombre de host, por lo que el registro de SPN basado en IP es un trabajo manual que solo debe usarse cuando sea imposible cambiar a un nombre de host basado en DNS; que el registro se hace con Setspn -s <servicio>/<dirección.ip> <cuenta-de-usuario-de-dominio>; y que, como un SPN solo se puede registrar en una cuenta a la vez dentro de Active Directory, se recomienda reservar la dirección IP de forma estática si se usa DHCP.  2 3 4

  11. Microsoft Learn, Restricting NTLM usage. Sobre la necesidad de descubrir y auditar el estado actual del tráfico de autenticación NTLM antes de implementar la directiva de seguridad “Restringir NTLM”; los tres puntos donde se restringe el tráfico NTLM (tráfico NTLM desde los controladores de dominio del dominio, tráfico NTLM saliente desde servidores remotos, y tráfico NTLM desde clientes hacia el servidor remoto de destino); y la configuración de excepciones de servidor para permitir la autenticación NTLM en los servidores que se consideren aceptables. 

  12. Microsoft Learn, Network security: Restrict NTLM: NTLM authentication in this domain. Sobre los valores de configuración -deshabilitar, denegar de cuentas de dominio a servidores de dominio, denegar cuentas de dominio, denegar servidores de dominio, denegar todo, no definido-; que esta directiva solo se aplica a los controladores de dominio y no afecta al inicio de sesión interactivo en ellos; que las solicitudes denegadas reciben un error de bloqueo de NTLM, salvo los servidores incluidos en la lista de excepciones de la directiva “Agregar excepciones de servidor de este dominio”; y que antes de elegir la opción de denegar hay que configurar la directiva de auditoría correspondiente con la misma opción y evaluar el impacto mediante el registro de operación.  2 3

Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.

Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.

El artículo está directamente relacionado con los siguientes servicios.

Preguntas frecuentes

Preguntas habituales en las consultas sobre el tema del artículo.

Si NTLM se da de baja, ¿desde cuándo se detendrá la operación de mi empresa?
El simple anuncio de "obsoleto (deprecated)" no detiene nada por sí solo. Microsoft marcó todas las versiones de NTLM como obsoletas en junio de 2024, pero el propio aviso indicaba que "el uso de NTLM seguirá funcionando tanto en el próximo Windows Server como en la siguiente versión anual de Windows". El cambio concreto que ya ha dejado de funcionar es la eliminación de NTLMv1 en Windows 11 versión 24H2 y en Windows Server 2025. Se ha anunciado un plan para deshabilitar por defecto NTLM en red en una futura versión, pero incluso entonces se podrá volver a habilitar mediante directiva. Es decir, no se trata del tipo de cambio en el que "un día, toda la empresa se detiene de golpe", sino de un cambio que se va cerrando poco a poco con cada actualización del sistema operativo. Precisamente por eso, la única medida realista es identificar los puntos de dependencia mediante los registros de auditoría mientras NTLM todavía funciona, en lugar de investigar después de que algo se detenga.
¿Cómo puedo obtener un listado de los lugares donde se usa NTLM?
Active en modo de auditoría las directivas del tipo "Seguridad de red: Restringir NTLM" de la directiva de grupo y recopile el registro NTLM/Operational. Si configura "Auditar la autenticación NTLM en este dominio" en los controladores de dominio, y "Auditar el tráfico NTLM entrante" junto con "Tráfico NTLM saliente hacia servidores remotos = Auditar todo" en servidores y clientes, los eventos quedarán registrados en el Visor de eventos, en "Registros de aplicaciones y servicios > Microsoft > Windows > NTLM". Para la autenticación con cuentas de dominio, el orden de seguimiento es: identificar en el controlador de dominio el usuario y el servidor de conexión (nombre de canal seguro) con el evento 8004, ver el identificador de proceso (PID) en el evento 8003 de ese servidor, y finalmente confirmar en el evento 8001 del cliente "qué aplicación, con qué nombre de servidor" hizo la solicitud. El evento 8001 incluye el nombre del servidor de destino y el nombre del proceso cliente, así que al llegar hasta aquí ya se identifica la aplicación responsable. Sin embargo, la autenticación con cuentas locales no pasa por el controlador de dominio, por lo que el evento 8004 no se genera. Las rutas de conexión a recursos compartidos mediante cuentas locales en equipos de grupo de trabajo o en servidores de archivos deben recogerse a partir del evento 8003 del lado servidor y del evento 8001 del lado cliente. No concluya que "tenemos pocos casos" basándose únicamente en el registro del controlador de dominio.
Al auditar, el PID de los eventos es casi siempre 4 (SYSTEM) y no sé qué aplicación es.
Es porque la comunicación pasa por SMB (carpetas compartidas). La autenticación de SMB la realiza el redirector en modo kernel, así que la aplicación que originó la solicitud queda oculta detrás del paquete SMB y el PID que queda registrado en el evento siempre es 4 (SYSTEM). La propia guía de Microsoft documenta este caso explícitamente, y como solución recomienda ejecutar Process Monitor (ProcMon) en el cliente donde aparece el evento, filtrar la ruta por el nombre de equipo y la dirección IP del servidor de destino, y cruzar el resultado con la marca de tiempo del evento 8003 del lado servidor para identificar el proceso que originó la llamada. En la práctica, lo más rápido es primero acotar "qué equipo" mediante el registro de eventos y después perseguir solo ese equipo con ProcMon.
¿Por qué una aplicación que en teoría admite Kerberos termina cayendo a NTLM?
En la mayoría de los casos es un problema de nombres. La guía de Microsoft menciona cuatro tipos de aplicaciones que, aunque en teoría admiten Kerberos, terminan usando NTLM: aplicaciones que permiten elegir la configuración o el proveedor de seguridad, aplicaciones cuyo SPN (nombre principal de servicio) no está registrado correctamente, aplicaciones que se conectan por dirección IP en lugar de por nombre DNS debido a errores de configuración o a instrucciones del proveedor, y aplicaciones con código heredado que aún conserva partes exclusivas de NTLM. Si el "servidor de destino" del evento 8001 no tiene formato NetBIOS ni FQDN (es decir, es una dirección IP), con la configuración predeterminada no se usará Kerberos. Las dos primeras medidas son sustituir la dirección IP escrita a mano por un FQDN y, si se accede con un alias, registrar el SPN con ese nombre. Para los casos en los que de verdad no se puede pasar a un nombre, existe también la opción de configurar TryIPSPN en el cliente y registrar manualmente el SPN de la dirección IP, pero la propia Microsoft indica que debe reservarse para cuando sea imposible cambiar a un nombre DNS, así que es en verdad el último recurso.
Si desarrollamos nuestras propias aplicaciones de Windows, ¿qué debemos corregir?
Sustituir los puntos donde el paquete de autenticación menciona NTLM de forma explícita por Negotiate. Microsoft indica claramente que "las aplicaciones no deberían acceder directamente al paquete de seguridad NTLM, sino usar el paquete Negotiate". Negotiate elige entre Kerberos y NTLM, y opta por Kerberos salvo que alguno de los sistemas implicados en la autenticación no pueda usarlo. En .NET, la corrección típica es cambiar el tipo de autenticación que se pasa a CredentialCache.Add de "NTLM" a "Negotiate" (el tipo de autenticación se especifica en CredentialCache.Add, no en el constructor de NetworkCredential). Además, hay que especificar el destino con el FQDN en lugar de una dirección IP o un alias definido en el archivo hosts, y si el servicio propio se va a recibir por Kerberos, también hay que registrar el SPN en la cuenta de servicio correspondiente.

Perfil del autor

Página de presentación del autor del artículo.

Go Komura

Representante de KomuraSoft LLC

Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.

Volver al blog