NTLM y Kerberos explicados con diagramas — por qué la autenticación «cae» a NTLM

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

Incluso en redes corporativas de las que se dice «aquí todo es Kerberos», si se revisan los registros de auditoría siempre aparece NTLM. Y lo que aparece suele ser, precisamente, la aplicación que se supone compatible con Kerberos.

La razón se entiende de un vistazo si se ponen una junto a la otra las dos preguntas que cada protocolo intenta responder: «¿qué se está demostrando?». Este artículo repasa con diagramas el funcionamiento de NTLM y Kerberos, y ordena, con el respaldo de la documentación oficial, en qué condiciones la autenticación cae a NTLM y por qué Microsoft está retirando NTLM.

El procedimiento para hacer el inventario del propio entorno (configuración de la directiva de auditoría, cómo seguir los eventos, en qué orden corregirlos) está recogido en el artículo complementario «¿Se detienen las aplicaciones de negocio al retirar NTLM?».

1. Empecemos por la conclusión

  • NTLM demuestra únicamente que se posee el hash de la contraseña. Las credenciales son un hash unidireccional del nombre de dominio, el nombre de usuario y la contraseña, 1 y en el NTLMv2 que usan las versiones actuales de Windows se calcula, con una clave derivada de ese hash, un HMAC sobre «el desafío del servidor + la hora + el desafío del lado del cliente + la información de destino», que es lo que se devuelve (apartado 2.2). 2
  • Kerberos demuestra «quién» se autentica «ante qué servicio». Emite el ticket usando como clave el nombre del servicio de destino (SPN), de modo que un ticket con un destino distinto no sirve. 3
  • Hay tres diferencias decisivas: si existe autenticación mutua, si el servidor necesita consultar al controlador de dominio (en la autenticación con cuentas de dominio) y si es posible la delegación. Microsoft deja las tres por escrito (capítulo 5). 4
  • La razón más frecuente por la que la autenticación cae a NTLM es «el nombre». Kerberos no puede empezar si no logra obtener el SPN a partir del nombre del destino. Los cuatro factores principales son: usar directamente una dirección IP, un SPN no registrado, un grupo de trabajo y una ruta que no llega al controlador de dominio (capítulo 6). 56
  • «Kerberos falla» y «la autenticación cae a NTLM» son fenómenos distintos. El primero es un estado en el que se elige Kerberos y este termina en error (por ejemplo, un desfase horario), y la autenticación se detiene por completo. El segundo es un estado en el que Kerberos ni siquiera llega a iniciarse y el sistema pasa silenciosamente a NTLM, de modo que el trabajo sigue funcionando. La clasificación de un incidente debe empezar por esta disyuntiva (apartado 6.5). 7
  • El ataque de retransmisión funciona porque NTLM no tiene ningún mecanismo que vincule «ante quién se está autenticando». Pass-the-Hash funciona porque lo único que hace falta para autenticarse es el propio hash (capítulo 7). 81
  • NTLMv1 ya está eliminado. Afecta a Windows 11 versión 24H2 y Windows Server 2025. NTLMv2 está en desuso, pero todavía funciona (capítulo 8). 9
  • Lo que debe usar una aplicación es 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. 1

2. Qué hace NTLM

NTLM (Windows Challenge/Response) es, tal como indica su nombre, un protocolo de autenticación basado en desafío/respuesta. Resumiendo la explicación de Microsoft: las credenciales se componen de un hash unidireccional del nombre de dominio, el nombre de usuario y la contraseña obtenidos durante el inicio de sesión interactivo, y, para autenticar sin enviar la contraseña por la red, la parte que solicita la autenticación realiza un cálculo que demuestra que «tiene acceso a las credenciales NTLM almacenadas de forma segura». 1

Lo importante aquí es que el material de la autenticación no es la contraseña en sí, sino el hash de la contraseña. Este único punto es, como se verá más adelante, la condición que hace posible Pass-the-Hash.

2.1. Con una cuenta de dominio intervienen tres partes

Cuando un usuario que ya inició sesión accede a un recurso de un servidor usando una cuenta de dominio (autenticación no interactiva), intervienen tres partes: el cliente, el servidor y el controlador de dominio. Lo característico aquí es que el propio servidor no realiza el cálculo de autenticación, sino que pide al controlador de dominio que lo haga por él. 1

Controlador de dominioServidorClienteControlador de dominioServidorClienteAl iniciar sesión calcula el hashde la contraseña y descarta la contraseñaCifra el desafíocon el hash de la contraseñaExtrae el hash de la SAMy repite el mismo cálculoNombre de usuario (texto claro)1Número aleatorio de 8 bytes (desafío)2Respuesta3Nombre de usuario / desafío / respuesta4Si coincide, autenticación correcta5Concede el acceso6

Figura 1: Autenticación no interactiva de NTLM (con cuenta de dominio)

El procedimiento que Microsoft describe a nivel conceptual es el siguiente (el cálculo real cambia con NTLMv2, como se ve más adelante, pero los actores y el reparto de funciones son los de este diagrama). 1

  1. (Solo en la autenticación interactiva) El usuario introduce el nombre de dominio, el nombre de usuario y la contraseña. El cliente calcula el hash criptográfico de la contraseña y descarta la contraseña real.
  2. El cliente envía el nombre de usuario en texto claro al servidor.
  3. El servidor genera un número aleatorio de 8 bytes (el desafío, o nonce) y lo envía al cliente.
  4. El cliente cifra ese desafío con el hash de la contraseña del usuario y devuelve el resultado (la respuesta).
  5. El servidor envía al controlador de dominio los tres datos: el nombre de usuario, el desafío enviado al cliente y la respuesta recibida.
  6. El controlador de dominio extrae de la base de datos SAM el hash de la contraseña correspondiente al nombre de usuario y cifra con él el desafío.
  7. Compara el resultado que acaba de calcular con la respuesta del cliente; si coinciden, la autenticación se considera correcta.

2.2. El cálculo real — NTLMv2 es un poco más complejo

Los siete pasos anteriores son el esquema básico que Microsoft explica en su página de introducción. El NTLMv2 que usan realmente las versiones actuales de Windows va un paso más allá de «cifrar el desafío con el hash de la contraseña». La especificación ([MS-NLMP]) lo define así: 2

  • La clave de respuesta es NTOWFv2 = HMAC_MD5( MD4(UNICODE(contraseña)), nombre de usuario en mayúsculas + nombre de dominio )
  • El cliente construye temp, la concatenación de la versión de la respuesta, la hora, un desafío de 8 bytes generado por el propio cliente y la información de destino (pares AV)
  • El núcleo de la respuesta, NTProofStr, se calcula como NTProofStr = HMAC_MD5( clave de respuesta, desafío del servidor + temp )

Si se aísla solo el flujo de materiales y procesamiento, queda en una sola imagen.

se usa como clavese usa como claveContraseñaMD4(UNICODE(contraseña))= hash NTNombre de usuario en mayúsculas+ nombre de dominioHMAC_MD5Clave de respuesta NTOWFv2Versión de la respuesta / hora /desafío de 8 bytes del cliente /información de destino (pares AV)tempDesafío del servidorHMAC_MD5NTProofStrNtChallengeResponse= NTProofStr + temp

Figura 2: Cómo se construye la respuesta de NTLMv2 (contraseña → hash NT → clave de respuesta → HMAC)

Es decir, en la práctica se calcula un HMAC que mezcla no solo el desafío del servidor, sino también el número aleatorio del cliente, la hora y la información de destino. La parte que verifica reproduce el mismo cálculo: si la cuenta está en Active Directory, envía el par desafío/respuesta al controlador de dominio para su verificación; si la cuenta es local al servidor, el propio servidor calcula el valor esperado usando el OWF que tiene almacenado. 2

Para el argumento de este artículo, lo importante es que, aunque el cálculo se haya complicado, estos dos puntos no cambian:

  1. El material de la clave sigue siendo el hash de la contraseña. El punto de partida de NTOWFv2 es MD4(UNICODE(contraseña)), es decir, el propio hash NT. 2 Por eso Pass-the-Hash sigue funcionando (apartado 7.2).
  2. El cliente no verifica si el servidor es auténtico. La explicación de Microsoft de que NTLM carece de autenticación mutua sigue siendo cierta en NTLMv2. 4

El resto del artículo se apoya en estos dos puntos.

2.3. Con una cuenta local todo se resuelve entre dos partes

Si la cuenta es local, el lado derecho de este diagrama desaparece. El servidor de recursos consulta al servicio de autenticación del controlador de dominio de esa cuenta cuando la cuenta es de dominio, pero consulta su base de datos de cuentas local cuando la cuenta es local. 10 Es decir, en un equipo de grupo de trabajo o al conectarse a un recurso compartido con una cuenta local de un servidor de archivos, el controlador de dominio no interviene en absoluto: se trata de un intercambio entre dos partes en el que el servidor consulta su propia SAM y decide por sí mismo.

Esta diferencia está directamente relacionada con el inventario de dependencias que se trata en el apartado 6.3: «no se puede usar Kerberos porque es una cuenta local». Esta ruta de NTLM no aparece aunque se revisen los registros de auditoría del controlador de dominio.

2.4. Tres consecuencias de este diseño

Si se observa la figura 1, se pueden leer directamente las propiedades que más adelante causarán problemas.

  • El servidor no demuestra nada al cliente. El intercambio es en un solo sentido y no hay en ningún momento un paso en el que el servidor demuestre «que es auténtico».
  • El servidor solo puede decidir cuando dispone él mismo del hash. El servidor de recursos necesita, cada vez que requiere un nuevo token de acceso, consultar al servicio de autenticación del controlador de dominio si la cuenta es de dominio, o consultar su base de datos de cuentas local si la cuenta es local. 10 Por eso la autenticación con cuentas de dominio depende del controlador de dominio.
  • La respuesta solo vale «para ese desafío», pero no vincula el destino. Como el desafío cambia cada vez, no se puede reutilizar la misma respuesta. Pero, como no existe ningún elemento que demuestre «para qué servidor es esta respuesta», si se desvía hacia otro servidor no hay forma de darse cuenta.

3. Por qué el servidor consulta al controlador de dominio

En la autenticación con cuentas de dominio, el único lugar donde se guarda el hash de la contraseña es la base de datos de cuentas del controlador de dominio. El servidor de recursos no conoce el hash de ese usuario, así que no puede verificarlo por sí mismo. Por eso necesita consultar al controlador de dominio en cada autenticación (autenticación de paso, pass-through). 101 (Si la cuenta es local, el servidor consulta su propia SAM y decide por sí mismo; lo que sigue sobre la dependencia del controlador de dominio se refiere al caso de las cuentas de dominio.)

Esto tiene un coste, tanto en seguridad como en operación. Microsoft explica que, antes de Kerberos, en la autenticación NTLM el servidor de aplicaciones necesitaba conectarse al controlador de dominio cada vez que autenticaba a un cliente o a un servicio, mientras que en Kerberos los tickets de sesión renovables sustituyen esa autenticación de paso, y el servidor no necesita ir al controlador de dominio salvo que deba validar el PAC (certificado de atributos de privilegio). 4

Es decir, la migración a Kerberos no es solo una cuestión de seguridad: también es una forma de reducir la dependencia del controlador de dominio.

4. Qué hace Kerberos

El planteamiento de Kerberos es claramente distinto del de NTLM. En lugar de repetir la verificación de identidad en cada autenticación, se verifica la identidad una sola vez al principio, se recibe un «ticket», y a partir de ahí basta con presentar ese ticket.

El KDC (centro de distribución de claves) se ejecuta en el controlador de dominio y usa la base de datos de Active Directory Domain Services como base de datos de cuentas de seguridad. 4

Servicio (identificado por SPN)KDC (controlador de dominio)ClienteServicio (identificado por SPN)KDC (controlador de dominio)ClienteIntercambio AS — verificación de identidad y obtención del TGTSi se puede descifrar con la clave a largo plazo, es la personaIntercambio TGS — obtención del ticket de servicioObtiene la cuenta de servicio a partir del SPNy cifra el ticket con su clave a largo plazoIntercambio AP — presentación al servicioSi puede descifrarlo con su propia clave a largo plazo,el ticket es para élKRB_AS_REQ(nombre de usuario + hora cifrada con la clave a largo plazo)1KRB_AS_REPTGT (cifrado con la clave de krbtgt) + clave de sesión2KRB_TGS_REQ(TGT + SPN del destino + autenticador)3KRB_TGS_REPticket de servicio + clave de sesión4KRB_AP_REQ(ticket de servicio + autenticador)5KRB_AP_REP (si se solicitó autenticación mutua)6

Figura 3: Los tres intercambios de Kerberos (AS / TGS / AP)

Leyenda — AS = Authentication Service (servicio de autenticación), TGS = Ticket Granting Service (servicio de concesión de tickets), AP = Application (aplicación). En los nombres de mensaje, _REQ es una solicitud y _REP es una respuesta. Por ejemplo, KRB_TGS_REQ significa «solicitud al servicio de concesión de tickets».

4.1. Intercambio AS — verificación de identidad, una sola vez

El cliente envía al KDC el nombre de usuario principal, el nombre de dominio de la cuenta y una marca de tiempo cifrada con su propia clave a largo plazo (la clave derivada de la contraseña). Esto es la autenticación previa (pre-authentication). Si el KDC puede descifrarlo con esa clave a largo plazo y, además, la marca de tiempo es válida, concluye que «es la persona». 3

El KDC devuelve el TGT (ticket de concesión de tickets). El TGT está cifrado con la propia clave a largo plazo del KDC (la clave de la cuenta krbtgt), así que el cliente no puede leer su contenido. Junto con él, se entrega la clave de sesión que se usará entre el cliente y el KDC, cifrada con la clave a largo plazo del cliente. 3

Conviene retener que la marca de tiempo forma parte de la autenticación. Por eso Kerberos es tan estricto con la sincronización horaria: el desfase permitido de forma predeterminada es de 5 minutos. 7 Si se sale de ese margen, la autenticación previa no se supera y la propia autenticación Kerberos falla con un error (la sincronización horaria de Windows se trata en la «Guía de sincronización horaria de Windows (w32time)»). Este «Kerberos falla» es algo distinto de «la autenticación cae a NTLM»; la distinción se trata en el apartado 6.5.

4.2. Intercambio TGS — declarar «a qué servicio me voy a conectar»

Aquí está el punto de divergencia decisivo respecto a NTLM. El cliente comunica al KDC el nombre del servicio al que quiere conectarse (el SPN) y solicita un ticket de servicio adjuntando el TGT y un autenticador. 3

El KDC busca la cuenta de servicio correspondiente a ese SPN y cifra el ticket de servicio con la clave a largo plazo de esa cuenta antes de devolverlo. 3 Por eso:

  • Si no se puede obtener el SPN, no se emite el ticket. Si la cuenta de servicio no tiene el SPN registrado, el KDC no puede identificar a la otra parte. Tampoco se intenta Kerberos, de forma predeterminada, cuando el destino se especifica mediante una dirección IP (apartado 6.1).
  • El ticket es «exclusivo de ese destino». Como no se puede descifrar con la clave a largo plazo de otro servicio, no se puede reutilizar cambiando el destino.

4.3. Intercambio AP — presentación al servicio y autenticación mutua

El cliente presenta al servicio el ticket de servicio y un autenticador. El servicio descifra el ticket con su propia clave a largo plazo y extrae de él la clave de sesión y la información de autorización. El propio hecho de poder descifrarlo ya demuestra que «este ticket es para mí». 3

Si el cliente había solicitado autenticación mutua, el servicio cifra con la clave de sesión la marca de tiempo recibida y la devuelve. Al verificarla, el cliente puede confirmar que la otra parte es el servicio auténtico. 3 Es un paso que no existe en NTLM.

5. Las diferencias decisivas

Aspecto NTLM Kerberos
Verificación de la otra parte Ni el cliente puede verificar al servidor, ni un servidor puede verificar a otro servidor. Se asume que el servidor es auténtico4 Ambos extremos de la conexión pueden verificar que la otra parte es quien dice ser4
Consulta al DC en cada autenticación Necesaria con cuentas de dominio: el servidor de recursos consulta al DC cada vez que necesita un nuevo token de acceso (con cuentas locales, consulta su propia base de datos de cuentas)10 No es necesaria (salvo que haya que validar el PAC). La sustituyen los tickets de sesión renovables4
Vinculación del destino No existe. La respuesta no demuestra «ante quién» se emite Sí existe. El ticket de servicio está cifrado con la clave a largo plazo del servicio de destino3
Delegación Proporciona la información de autorización necesaria para la suplantación local4 El servicio admite la delegación, conectándose a otros servicios en representación del cliente4
Sincronización horaria No depende de ella Depende de ella (el desfase permitido por defecto es de 5 minutos)7
Resolución de nombres No importa el nombre de la otra parte (funciona incluso con una dirección IP) Requiere poder obtener el SPN3
Uso fuera del dominio Sigue siendo necesario en configuraciones de grupo de trabajo o en el inicio de sesión local10 Requiere Active Directory4

La fila «Delegación» se ramifica todavía más en la práctica. Existen varios tipos de delegación —delegación sin restricciones, delegación restringida (constrained delegation) y delegación restringida basada en recursos (RBCD, resource-based constrained delegation)—, y en configuraciones como una aplicación web de frontend que se conecta a un SQL Server de backend con las credenciales del usuario, elegir entre ellas es una decisión de diseño. Este artículo no entra en ese detalle, pero conviene recordarlo como el siguiente término de búsqueda al investigar la delegación de Kerberos.

Las dos últimas filas de esta tabla son, directamente, «la razón por la que la autenticación cae a NTLM»: la fortaleza de Kerberos (vincular el destino, verificar a la otra parte) se sostiene sobre la base de que el nombre se pueda resolver correctamente.

6. Por qué la autenticación «cae» a NTLM

Aunque la aplicación no especifique NTLM directamente, NTLM se acaba usando. Esto ocurre porque así se comporta Negotiate. Según explica Microsoft, Negotiate elige entre Kerberos y NTLM, y opta por Kerberos salvo que alguno de los sistemas implicados en la autenticación no pueda usarlo. 1

Es decir, «se usó NTLM» es, en la gran mayoría de los casos, otra forma de decir «Kerberos no se pudo usar».

No(grupo de trabajo / cuenta local)No(se usa la dirección IP directamente)No(SPN no registrado / acceso con otro nombre)No(sede / VPN / firewall)Se inicia la autenticación con Negotiate¿Es una cuentade dominio?¿Se puede construir un SPNa partir del nombre de destino?¿Ese SPNestá registrado?¿Se llegaal KDC?Autenticación con KerberosSe recurre a NTLM

Figura 4: Las bifurcaciones por las que Negotiate cae a NTLM

A continuación se listan de antemano, en una tabla de tres columnas, los cuatro factores principales, con su condición, la razón y la forma de corregirlo. Los detalles se tratan a partir del apartado 6.1.

Condición (si se cumple, cae a NTLM) Por qué cae Cómo corregirlo
Se especifica el destino mediante una dirección IP (apartado 6.1) De forma predeterminada, Windows no intenta la autenticación Kerberos cuando el nombre de host es una dirección IP11 Cambiar la configuración del destino a un FQDN. Solo para los destinos en los que sea absolutamente imposible, poner TryIPSPN a 1 en el cliente y registrar manualmente el SPN de la dirección IP (último recurso)11
El SPN no está registrado o se accede mediante un alias de DNS (apartado 6.2) El KDC no puede obtener la cuenta de servicio a partir del SPN, así que no puede cifrar el ticket con la clave a largo plazo de esa cuenta3 Registrar, con el nombre que realmente se usa para acceder, el SPN de la clase de servicio requerida. Si se usa un CNAME, también hace falta el SPN de ese nombre5
Acceso desde un equipo de grupo de trabajo o con una cuenta local (apartado 6.3) Está fuera de Active Directory, así que de entrada no hay KDC10 Unir el equipo al dominio, o cambiar a un acceso con cuenta de dominio. El KDC local de la fase 2 solo cubre este hueco entre versiones de Windows compatibles6
No se puede llegar al controlador de dominio (apartado 6.4) No se puede hablar con el KDC, así que no se puede obtener el ticket6 Revisar la ruta y el firewall para que el tráfico que Kerberos necesita llegue hasta el KDC

6.1. Se conecta mediante una dirección IP

Es la causa más frecuente. Microsoft indica explícitamente que de forma predeterminada, 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. 11 La guía de auditoría también señala que, si el «servidor de destino» del evento 8001 no aparece ni en formato NetBIOS ni en formato FQDN, no se usa Kerberos. 5

Y también se indica el motivo por el que esto ocurre: aplicaciones que usan una dirección IP en lugar de un nombre DNS debido a errores de configuración o a la documentación del proveedor. 5 En la práctica es muy habitual encontrar configuraciones que en su día se cambiaron a IP porque «la resolución de nombres era inestable» y que se quedaron así.

Sin embargo, esto es un comportamiento predeterminado, no una limitación absoluta. A partir de Windows 10 versión 1507 y Windows Server 2016 existe un mecanismo que permite usar una dirección IP como nombre de host en el SPN. Si se pone a 1 el valor de registro TryIPSPN en el cliente y, además, se registra manualmente el SPN de la dirección IP con Setspn -s <clase de servicio>/<dirección IP> <cuenta>, Kerberos puede llegar a funcionar incluso contra un destino especificado por IP. La clase de servicio que hay que registrar es la que el cliente solicita realmente: para algo como una carpeta compartida, que se asigna a HOST, basta con host/192.168.1.1, pero para la Web hace falta HTTP/192.168.1.1, y para SQL Server, MSSQLSvc/192.168.1.1:1433, incluyendo el puerto, como un SPN distinto. Registrar solo host/ no sirve si no coincide con el SPN que se solicita; en ese caso Kerberos no se completa. Microsoft sitúa esta función precisamente como una forma de reducir el impacto de deshabilitar NTLM. 11

Aun así, no es la primera opción. La propia Microsoft indica que, como las direcciones IP son temporales y pueden provocar conflictos y fallos de autenticación al expirar y renovarse la concesión, normalmente no deben usarse en lugar de un nombre de host, y que el registro de SPN basado en IP es un trabajo manual que solo debe usarse cuando resulte imposible cambiar a un nombre de host basado en DNS. 11 Si en una auditoría se detecta el uso directo de direcciones IP, lo primero que hay que plantearse es corregirlo a un FQDN. TryIPSPN es el último recurso para los destinos en los que eso, definitivamente, no se puede hacer.

6.2. El SPN no está registrado

Es la segunda causa más frecuente. Microsoft cita, como uno de los tipos de aplicación que, aun siendo compatibles con Kerberos, terminan usando NTLM, las aplicaciones cuyo SPN no está configurado correctamente. 5

Como se vio en el intercambio TGS de la figura 3, el KDC obtiene la cuenta de servicio a partir del SPN y con ella cifra el ticket. Si no hay SPN, el KDC no puede identificar «la clave de ese servicio». Lo mismo ocurre cuando se accede mediante un alias de DNS (CNAME) o un nombre de host propio: si el SPN de ese nombre no está registrado, sucede exactamente lo mismo. La aplicación funciona correctamente, pero el nombre concreto sencillamente no figura en el registro.

6.3. Está fuera de Active Directory desde el principio

Los equipos en configuración de grupo de trabajo y el acceso a recursos compartidos con cuentas locales no están dentro del terreno de Kerberos. Microsoft también establece que en la autenticación de Windows de los sistemas configurados como miembros de un grupo de trabajo, y en el inicio de sesión local fuera de un controlador de dominio, se usa y se debe usar NTLM. 10

Este es el motivo por el que no se puede «simplemente prohibir» NTLM. El KDC local previsto para la fase 2 es precisamente la función pensada para cubrir este hueco. 6 Sin embargo, hay que tener en cuenta que solo se cubre cuando ambos extremos son versiones de Windows compatibles. La autenticación con cuentas locales frente a un Windows antiguo o frente a equipos de otros fabricantes, como un NAS o una impresora multifunción, no se convierte automáticamente en Kerberos solo porque llegue el KDC local. Esta clasificación se trata en los capítulos 5 y 6 del artículo práctico.

6.4. No llega al KDC

También se produce el mismo tipo de degradación cuando hay un problema de ruta: no se puede llegar al controlador de dominio desde una sede o a través de una VPN, o el firewall bloquea los puertos que Kerberos necesita. 6 Si no se puede hablar con el KDC, no hay forma de obtener un ticket, así que Negotiate elige la única opción que le queda: NTLM.

6.5. No confunda «el fallo de Kerberos» con «la caída a NTLM»

Por último, conviene separar dos cosas que se confunden fácilmente pero que son distintas. Todo lo visto en los apartados 6.1 a 6.4 son casos en los que no se pudo ni siquiera iniciar Kerberos. Como no se puede iniciar, Negotiate elige NTLM.

En cambio, cuando se elige Kerberos y, aun así, falla, la situación es otra. El ejemplo típico es el desfase horario. Si se puede obtener el SPN y también se llega al KDC, Negotiate elegirá primero Kerberos. Si después la hora supera el margen permitido (5 minutos por defecto), la autenticación previa no se supera y el proceso falla como un error de Kerberos. 7 El hecho de que el protocolo elegido falle no significa que Negotiate cambie automáticamente a NTLM y reintente (salvo que la propia aplicación reintente explícitamente con otro método).

En la práctica, el significado es sencillo. Un incidente de desfase horario no se encuentra por mucho que se busque el evento 8001. Los síntomas también son distintos.

Síntoma Qué sospechar Dónde mirar
Funciona, pero la autenticación es NTLM 6.1 a 6.4 (Kerberos no se pudo iniciar) Evento 8001 en NTLM/Operational
La propia autenticación falla con un error Desfase horario, SPN duplicado, discrepancia en el tipo de cifrado, etc. Eventos de Kerberos del registro del sistema, klist, w32tm /query /status

Separe primero si «la autenticación cayó a NTLM» o si «Kerberos está roto», y a partir de ahí investigue.

7. La diferencia vista desde los ataques — retransmisión y Pass-the-Hash

Microsoft indica explícitamente, en su documentación de configuración de políticas, que la autenticación NTLM y NTLMv2 es vulnerable a diversos ataques malintencionados, incluidos la retransmisión SMB, los ataques de intermediario y los ataques de fuerza bruta. 8 La razón se explica mirando la figura 1.

7.1. Ataques de retransmisión — la consecuencia de no vincular el destino

Servidor auténticoServidor del atacantePC de la víctimaServidor auténticoServidor del atacantePC de la víctimaSe atrae a la víctima hacia el servidor del atacanteNo puede distinguir si procededel servidor auténticoSi no se exige ni firmani channel bindingInicia la autenticación (nombre de usuario)1Inicia la autenticación con el mismo usuario2Desafío3Reenvía ese mismo desafío tal cual4Respuesta (calculada con la clave derivada del hash)5Reenvía esa misma respuesta tal cual6Autenticación correcta → conexión establecida como la víctima7

Figura 5: Cómo se completa una retransmisión NTLM (contra un destino sin firma ni vinculación de canal)

El atacante no necesita conocer ni la contraseña ni el hash. Se limita a hacer pasar el desafío y la respuesta de un lado a otro. Esto funciona porque el cliente no tiene forma de comprobar si esa respuesta llega realmente al destinatario que pretendía.

Sin embargo, la retransmisión no funciona contra cualquier destino. Que el intercambio retransmitido se convierta en una sesión utilizable depende de las defensas del destino.

  • No funciona contra un destino que exige firma SMB. Microsoft indica explícitamente que la firma que se añade a todos los mensajes SMB incluye el hash del mensaje completo y, al confirmar la identidad del emisor y del receptor, evita los ataques de retransmisión. 12 Cabe señalar que los controladores de dominio exigen firma SMB al origen de la conexión de forma predeterminada. 12
  • Tampoco funciona contra servicios que imponen Extended Protection for Authentication (vinculación de canal, channel binding). Al vincular la autenticación al canal TLS subyacente, una autenticación retransmitida a otro canal deja de ser válida.

Es decir, lo que describe la figura 5 es la ruta que funciona en condiciones concretas: un destino que acepta NTLM y no exige ni firma ni channel binding. Y esto, visto al revés, significa que hay una medida que se puede aplicar ya mismo en la práctica: conviene comprobar el estado de la exigencia de firma SMB en paralelo al inventario de NTLM.

En Kerberos, de entrada, no es posible este mismo tipo de intermediación. Como el ticket de servicio está cifrado con la clave a largo plazo del servicio de destino, no se puede descifrar aunque se lleve a otro servicio. 3 Además, mediante la autenticación mutua, el cliente puede confirmar si la otra parte es auténtica. 4

El motivo por el que Microsoft creó el bloqueo de NTLM en el lado del cliente SMB es precisamente este. Se explica que su objetivo es evitar el truco de hacer que se envíen solicitudes NTLM a un servidor malintencionado. 13 Además, entre las recomendaciones de Microsoft relacionadas con la firma SMB figuran usar Kerberos en lugar de NTLMv2, para que la clave de sesión empiece siendo fuerte, y no conectarse a los recursos compartidos mediante direcciones IP ni registros CNAME (porque eso hace que se use NTLM en lugar de Kerberos). 12 Es la misma cuestión que se vio en los apartados 6.1 y 6.2.

7.2. Pass-the-Hash — el hash equivale a la contraseña

hash unidireccionalderiva la clave de respuestay calcula el HMACContraseñaHash de la contraseñaRespuestaAutenticación correctaRobo del hashdesde el equipoNo hace faltala contraseña en texto claro

Figura 6: Lo que se necesita para autenticarse es el hash, no la contraseña en texto claro

Las credenciales de NTLM son un hash unidireccional de la contraseña. 1 En NTLMv2, ese MD4(UNICODE(contraseña)) se usa como clave para derivar la clave de respuesta, y con esa clave se calcula además un HMAC para construir la respuesta. 2 Aunque cambie la forma del cálculo, el punto de partida sigue siendo el hash. Es decir, lo que se necesita para autenticarse es el hash, no la contraseña en texto claro.

Esta consecuencia tiene un peso operativo considerable. Alargar y complicar la contraseña no cierra la vía por la que se puede robar el hash. Microsoft también menciona Pass-the-Hash, junto con la fuerza bruta y el descifrado (cracking), entre los ataques a los que se enfrenta el bloqueo de NTLM en SMB. 13

En Kerberos también existen claves a largo plazo, pero lo que circula en el día a día de la autenticación son tickets con caducidad y claves de sesión. 3 El alcance de lo que se puede hacer con lo robado es distinto.

8. NTLMv1, NTLMv2 y la «eliminación»

NTLM no es un único protocolo, sino un conjunto de protocolos de autenticación que incluye LAN Manager versión 1 y 2, y NTLM versión 1 y 2. 10

En la actualidad, la situación se divide así:

Versión Estado Significado
LANMAN / NTLMv1 / NTLMv2 Todas en desuso (junio de 2024)9 Quedan fuera del desarrollo activo de funciones. No obstante, seguirán funcionando en el próximo Windows Server y en la siguiente versión anual de Windows
NTLMv1 Ya eliminado (Windows 11 24H2 / Windows Server 2025)9 No se puede usar en estas versiones

Es decir, no vale «como es NTLMv2, se puede dejar así por ahora». Aun así, las prioridades están claras: los equipos o hosts que solo hablan NTLMv1 son la máxima prioridad. Si una auditoría registra NTLM V1 en un host, al actualizarlo directamente a una versión más reciente de Windows la autenticación dejará de funcionar. Cómo distinguir la versión (revisando el «Nombre de paquete (solo NTLM)» en el registro de seguridad) se trata en el apartado 4.4 del artículo práctico. 5

Cabe señalar que las políticas de auditoría y bloqueo que restringen NTLM tienen el mismo efecto sobre NTLMv1 y NTLMv2. 5 Al aplicar la restricción, el comportamiento no cambia según la versión.

9. Qué viene a partir de ahora

Microsoft indica tres direcciones.

La primera es que las aplicaciones usen Negotiate. El propio anuncio de la obsolescencia indica que las llamadas a NTLM deben sustituirse por llamadas a Negotiate. 9 También se especifica que las aplicaciones no deben acceder directamente al paquete de seguridad NTLM. 1

La segunda es reducir las situaciones en las que NTLM resulta necesario. A esto corresponden IAKerb y el KDC local previstos para la fase 2 (segunda mitad de 2026). 6 Es un intento de tapar, desde el propio protocolo, los dos huecos vistos en el apartado 6.3: «no se puede usar Kerberos porque es una cuenta local» y «no se puede usar Kerberos porque no se llega al controlador de dominio». Sin embargo, el alcance de lo que se cubre tiene límites. Lo que resuelve IAKerb es la accesibilidad al controlador de dominio, no la compatibilidad de la otra parte. El KDC local tampoco funciona salvo entre versiones de Windows compatibles entre sí. Si la otra parte es un NAS o una impresora multifunción de otro fabricante, esperar a la fase 2 no cambiará la situación, así que hay que elegir por cuenta propia entre renovar el equipo, unirlo al dominio, cambiar a otro protocolo o gestionarlo como excepción.

La tercera es cambiar el valor predeterminado. En la fase 3 está previsto que, en la próxima versión mayor, la autenticación NTLM de red quede deshabilitada de forma predeterminada. 6 Aunque también se indica la premisa de que se podrá volver a habilitar mediante una directiva.

Este orden tiene sentido: primero se elimina el motivo para usarlo, y después se cambia el valor predeterminado. Por eso conviene clasificar, entre las dependencias de NTLM que aún quedan en la propia organización, cuáles se pueden esperar que resuelva la fase 2 (la autenticación con cuentas locales entre versiones de Windows compatibles, y la accesibilidad al DC) y cuáles hay que corregir por cuenta propia (el uso directo de direcciones IP, los SPN sin registrar y, sobre todo, la autenticación con cuentas locales frente a un Windows antiguo o a equipos de otros fabricantes). Si se clasifica este último grupo como «a la espera de la fase 2», cuando llegue la deshabilitación por defecto aparecerá como un incidente. El procedimiento concreto para hacer esta clasificación está recogido en el artículo práctico.

10. Resumen

  • NTLM es un protocolo que demuestra, mediante desafío/respuesta, «que se posee el hash de la contraseña». La decisión la delega en el controlador de dominio si la cuenta es de dominio, y la toma el propio servidor consultando su SAM si la cuenta es local. 110
  • Kerberos demuestra «quién» se autentica «ante qué servicio». El ticket de servicio está cifrado con la clave a largo plazo del servicio de destino, así que no se puede reutilizar cambiando de destino. 3
  • Las diferencias decisivas son la existencia de autenticación mutua, la consulta al DC en cada autenticación y la posibilidad de delegación. 4
  • La autenticación cae a NTLM casi siempre cuando no se pudo ni siquiera iniciar Kerberos. Los cuatro factores principales son: usar directamente una dirección IP, un SPN no registrado, estar fuera de Active Directory y no llegar al KDC. 5611
  • En cambio, un problema como el desfase horario, en el que Kerberos se elige y después falla, se manifiesta como un error de autenticación, no como una caída a NTLM. No se encuentra buscando el evento 8001. 7
  • El ataque de retransmisión funciona porque la respuesta de NTLM no vincula el destino. Pass-the-Hash funciona porque lo único que se necesita para autenticarse es el propio hash. 8113
  • NTLMv1 ya está eliminado (Windows 11 24H2 / Windows Server 2025), y todas las versiones, incluida NTLMv2, están en desuso. 9
  • Lo que debe usar una aplicación es Negotiate. A partir de ahí, unificar los nombres de destino en FQDN y registrar los SPN es, en la práctica, lo que hace posible que Kerberos funcione. 15

Artículos relacionados

Áreas de consultoría relacionadas

KomuraSoft LLC se ocupa de la modernización de aplicaciones de negocio de Windows con motivo de revisiones del método de autenticación, así como de la investigación de las causas de problemas de autenticación relacionados con Kerberos y NTLM.

Referencias

  1. Microsoft Learn, Microsoft NTLM. Sobre que NTLM es un protocolo de autenticación llamado Windows Challenge/Response, que es un paquete de seguridad que proporciona autenticación, integridad y confidencialidad a las aplicaciones; que las credenciales NTLM se componen de un hash unidireccional del nombre de dominio, el nombre de usuario y la contraseña obtenidos durante el inicio de sesión interactivo; que mediante un desafío/respuesta cifrado se autentica sin enviar la contraseña por la red, y que la parte que solicita la autenticación realiza un cálculo que demuestra que tiene acceso a las credenciales NTLM almacenadas de forma segura; que la autenticación no interactiva se realiza entre tres partes (cliente, servidor y controlador de dominio), con su procedimiento concreto (el cliente calcula el hash de la contraseña y descarta la contraseña en texto claro, envía el nombre de usuario en texto claro, el servidor genera un número aleatorio de 8 bytes —el desafío— y lo envía, el cliente cifra el desafío con el hash y devuelve la respuesta, el servidor envía el nombre de usuario, el desafío y la respuesta al controlador de dominio, y el controlador de dominio repite el mismo cálculo con el hash de la base de datos SAM y los compara); y que las aplicaciones no deben acceder directamente al paquete de seguridad NTLM, sino usar el paquete de seguridad Negotiate, el cual elige entre Kerberos y NTLM y opta por Kerberos salvo que alguno de los sistemas implicados en la autenticación no pueda usar Kerberos.  2 3 4 5 6 7 8 9 10 11 12 13

  2. Microsoft Learn, [MS-NLMP]: NTLM v2 Authentication. Sobre que la versión de autenticación de NTLM no se negocia dentro del protocolo, sino que debe configurarse de antemano tanto en el cliente como en el servidor antes de la autenticación; que la clave de respuesta de NTLM v2 se define como NTOWFv2(Passwd, User, UserDom) = HMAC_MD5( MD4(UNICODE(Passwd)), UNICODE(User en mayúsculas + UserDom) ); que el cliente genera un desafío de 8 bytes; que temp es la concatenación de la versión de la respuesta, una hora GMT de 8 bytes, el desafío del cliente y ServerName (la estructura AvPairs incluida en NTLMv2_CLIENT_CHALLENGE del AUTHENTICATE_MESSAGE); que NTProofStr = HMAC_MD5( ResponseKeyNT, desafío del servidor + temp ) se calcula así, y que NtChallengeResponse es la concatenación de NTProofStr y temp; que SessionBaseKey = HMAC_MD5(ResponseKeyNT, NTProofStr); y, en cuanto a la parte que verifica, que si la cuenta de usuario que se autentica está alojada en Active Directory, el par desafío/respuesta se envía al controlador de dominio para su verificación, y el DC calcula el valor esperado usando NTOWFv2 / LMOWFv2 y lo compara; que si el DC devuelve STATUS_NTLM_BLOCKED, el servidor devuelve STATUS_NOT_SUPPORTED; y que si la cuenta está alojada localmente en el servidor, el propio servidor calcula el valor esperado a partir del OWF que tiene almacenado localmente y lo compara.  2 3 4 5

  3. Microsoft Learn, How the Kerberos Version 5 Authentication Protocol Works. Sobre el intercambio AS, en el que el cliente envía al KDC el nombre principal de usuario, el nombre de dominio de la cuenta y datos de autenticación previa cifrados con la clave a largo plazo del usuario (la clave derivada de la contraseña), incluida una marca de tiempo; el KDC descifra con esa clave a largo plazo, lo verifica y devuelve un TGT cifrado con su propia clave a largo plazo (la clave de la cuenta krbtgt) junto con una clave de sesión cifrada con la clave a largo plazo del usuario; y que el TGT incluye la clave de sesión, los datos de autorización (el SID del usuario y los SID de sus grupos) y el periodo de validez con las marcas correspondientes. Sobre el intercambio TGS, en el que el cliente envía al KDC el nombre del servidor de destino (SPN), el TGT y un autenticador cifrado con la clave de sesión (que incluye una marca de tiempo y una suma de comprobación); el KDC descifra el TGT con su propia clave a largo plazo, extrae la clave de sesión, verifica que la marca de tiempo del autenticador está dentro del rango definido por la directiva y devuelve un ticket de servicio cifrado con la clave a largo plazo del servicio de destino, junto con una nueva clave de sesión cifrada con la clave de sesión del TGS. Sobre el intercambio cliente/servidor (intercambio AP), en el que el cliente presenta el ticket de servicio y un autenticador al servicio; el servicio descifra el ticket con su propia clave a largo plazo y extrae la clave de sesión y los datos de autorización, y, si se ha solicitado autenticación mutua, cifra la marca de tiempo del cliente con la clave de sesión y la devuelve, demostrando así su propia identidad. Y sobre la diferencia entre la clave a largo plazo y la clave de sesión (la clave a largo plazo se deriva de la contraseña o de la cuenta de servicio y persiste entre sesiones, mientras que la clave de sesión es efímera y se descarta cuando caduca el ticket).  2 3 4 5 6 7 8 9 10 11 12 13

  4. Microsoft Learn, Kerberos authentication overview in Windows Server. Sobre que Windows Server implementa el protocolo de autenticación Kerberos versión 5, junto con extensiones para la autenticación con clave pública, el transporte de datos de autorización y la delegación; que el cliente Kerberos se implementa como un SSP (proveedor de compatibilidad de seguridad) y se accede a él a través de SSPI; que el KDC está integrado con los demás servicios de seguridad del controlador 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 por el que un servicio de frontend se conecta a un servicio de backend en otro equipo con la identidad del cliente), mientras que tanto NTLM como Kerberos proporcionan la información de autorización que un servicio necesita para suplantar localmente al cliente; que antes de Kerberos, en la autenticación NTLM el servidor de aplicaciones necesitaba conectarse al controlador de dominio cada vez que autenticaba a un cliente o a un servicio, mientras que en Kerberos los tickets de sesión renovables sustituyen esa autenticación de paso, y el servidor no necesita ir al controlador de dominio salvo que deba validar el PAC; y, sobre la autenticación mutua, que en Kerberos ambos extremos de una conexión de red pueden verificar que la otra parte es quien dice ser, mientras que NTLM no permite ni que el cliente verifique la identidad del servidor ni que un servidor verifique la de otro servidor, ya que está diseñado para entornos de red en los que se puede asumir que el servidor es auténtico, una suposición que Kerberos no hace.  2 3 4 5 6 7 8 9 10 11 12

  5. Microsoft Learn, Viewing events for assessing NTLM usage. Sobre que la información de auditoría de NTLM en el registro de eventos permite distinguir si se trata de NTLM v1 o v2, buscando en el registro de seguridad el evento de inicio de sesión, el campo «Paquete de autenticación» y, dentro de la «Información de autenticación detallada», el «Nombre de paquete (solo NTLM)»; que las políticas de auditoría y bloqueo que restringen NTLM tienen el mismo efecto sobre las dos versiones de NTLM; sobre los cuatro tipos de aplicación que, en teoría, siendo compatibles con Kerberos, terminan usando NTLM (aplicaciones que pueden elegir entre varias configuraciones o proveedores de seguridad, aplicaciones cuyo SPN no está configurado correctamente, aplicaciones que usan una dirección IP en lugar de un nombre DNS por errores de configuración o por la documentación del proveedor, y aplicaciones con código heredado que contiene partes exclusivas de NTLM); sobre el procedimiento de investigación que va del evento 8004 del controlador de dominio, al evento 8003 del servidor miembro y al evento 8001 del cliente, con el detalle de cada evento; sobre que si el «servidor de destino» del evento 8001 no aparece ni en formato NetBIOS ni en formato FQDN, no se usa Kerberos; y sobre que, en las comunicaciones por SMB, el PID siempre aparece como 4 (SYSTEM), por lo que hace falta usar Process Monitor para identificar el proceso que realiza la llamada.  2 3 4 5 6 7 8 9

  6. Microsoft Japan Windows Technology Support Blog, Sobre la respuesta a la retirada de NTLM. Sobre que la retirada de NTLM avanza en tres fases (fase 1: visibilidad del uso y auditoría; fase 2: funciones previstas para la segunda mitad de 2026 destinadas a los escenarios que dependen de NTLM; fase 3: deshabilitación por defecto de la autenticación NTLM de red en la próxima versión mayor); que en la fase 2 está prevista la incorporación de IAKERB (un protocolo compatible con funciones de proxy) y de un KDC local (una función que admite la autenticación local); que las aplicaciones deben usar Negotiate; y sobre las causas típicas por las que se usa NTLM: el acceso al servidor mediante una dirección IP, la restricción por firewall de los puertos que necesita Kerberos, la falta de registro del SPN, la autenticación contra una parte con relación de confianza y la autenticación en un entorno de grupo de trabajo.  2 3 4 5 6 7 8

  7. Microsoft Learn, Registry entries about Kerberos protocol and Key Distribution Center (KDC) configuration. Sobre las distintas configuraciones bajo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters, y en particular sobre que el valor predeterminado de SkewTime es de 5 minutos, que es el desfase horario máximo permitido entre el cliente y el servidor o KDC que acepta la autenticación Kerberos, un valor que también se usa para decidir si un ticket puede reutilizarse; y sobre que el tiempo de expiración de la caché de SPN (SpnCacheTimeout, 15 minutos por defecto) se usa en el cliente y en los servidores miembro para depurar las entradas de caché negativas de «no se encontró el SPN», mientras que en los controladores de dominio la caché de SPN está deshabilitada.  2 3 4 5

  8. Microsoft Learn, Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers. Sobre que los valores posibles son «Permitir todo», «Auditar todo», «Denegar todo» y «No definido»; que el procedimiento recomendado es elegir primero «Auditar todo», revisar los registros de operación y después construir una lista de excepciones; que los eventos de auditoría y bloqueo se registran en «Registros de aplicaciones y servicios\Microsoft\Windows\NTLM»; y que la autenticación NTLM y NTLMv2 es vulnerable a diversos ataques malintencionados, incluidos la retransmisión SMB, los ataques de intermediario y los ataques de fuerza bruta, de modo que reducir y eliminar la autenticación NTLM del entorno permite que Windows utilice protocolos más seguros, como Kerberos versión 5, u otros mecanismos de autenticación, como las tarjetas inteligentes; y que estos ataques solo pueden completarse cuando un servidor o un controlador de dominio procesa realmente una solicitud NTLM.  2 3

  9. 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 consideran obsoletas (el anuncio es de junio de 2024); que el uso de NTLM seguirá funcionando en el próximo Windows Server y 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; y que, como actualización de noviembre de 2024, NTLMv1 se eliminó a partir de Windows 11 versión 24H2 y Windows Server 2025. Incluye también la distinción entre «obsoleto» (deprecated) y «eliminado» (removed): las funciones de esta lista no se desarrollan activamente y podrían eliminarse en una actualización futura.  2 3 4 5

  10. Microsoft Learn, NTLM overview in Windows Server. Sobre que la autenticación NTLM es un conjunto de protocolos de autenticación incluidos en Msv1_0.dll, que abarca LAN Manager versión 1 y 2 y NTLM versión 1 y 2; que es un mecanismo de desafío/respuesta con el que se demuestra al servidor o al controlador de dominio que se conoce la contraseña de la cuenta; que el servidor de recursos, cada vez que necesita un nuevo token de acceso, debe consultar al servicio de autenticación del controlador de dominio de la cuenta si esta es de dominio, o consultar su base de datos de cuentas local si es local; que en la autenticación de Windows de los sistemas configurados como miembros de un grupo de trabajo, y en el inicio de sesión local fuera de un controlador de dominio, se sigue usando y se debe usar NTLM; que en un entorno de Active Directory el método de autenticación recomendado es Kerberos versión 5, pero que tanto aplicaciones de Microsoft como de terceros pueden usar NTLM; y que reducir el uso de NTLM requiere tanto comprender los requisitos de las aplicaciones ya desplegadas como configurarlas para que usen otros protocolos.  2 3 4 5 6 7 8 9

  11. 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 dentro del SPN; que, de forma predeterminada, 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 codifican directamente direcciones IP provocan esta degradación 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 una dirección IP como nombre de host del SPN, la cual se habilita poniendo a 1 el valor de registro TryIPSPN (REG_DWORD, que no existe por defecto) en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters del lado del cliente, y que hay que configurar en cada cliente que necesite acceder mediante una dirección IP a un recurso protegido por Kerberos; que el SPN tiene el formato service/hostname[:port]; y que, como las direcciones IP son temporales y pueden provocar conflictos y fallos de autenticación al expirar y renovarse la concesión, normalmente no deben usarse en lugar de un nombre de host, de modo que el registro de SPN basado en IP es un trabajo manual que solo debe usarse cuando resulte imposible cambiar a un nombre de host basado en DNS; que el registro se realiza con Setspn -s <service>/<ip.address> <domain-user-account>, y que, como un SPN solo puede registrarse en una cuenta a la vez dentro de Active Directory, se recomienda reservar la dirección IP de forma estática cuando se usa DHCP.  2 3 4 5 6

  12. Microsoft Learn, Overview of Server Message Block signing in Windows. Sobre que la firma SMB añade a todos los mensajes SMB una firma generada con la clave de sesión y AES, y que la firma incluye el hash del mensaje completo además de la identidad del emisor original y del receptor previsto; que, si el mensaje se altera durante el transporte, deja de coincidir con la firma, lo cual protege frente a ataques de retransmisión y de suplantación; que la seguridad de la firma y el cifrado de SMB 2/3 depende de la clave de sesión, y que la firma confirma la identidad del emisor y del receptor, evitando así los ataques de retransmisión; que, como la clave de sesión se deriva de la contraseña, es recomendable usar contraseñas largas, complejas y que no aparezcan en un diccionario; que se recomienda usar Kerberos en lugar de NTLMv2 para que la clave de sesión empiece siendo fuerte; que conectarse a los recursos compartidos mediante una dirección IP o un registro CNAME hace que se use NTLM en lugar de Kerberos, por lo que debe evitarse; que los controladores de dominio exigen firma SMB de forma predeterminada al origen de la conexión para SYSVOL y NETLOGON, y que el UNC Hardening del lado del cliente exige además Kerberos para esos dos recursos compartidos; que la firma también forma parte de la integridad de la autenticación previa y ayuda a prevenir ataques de degradación (downgrade); sobre la ubicación de la directiva y el valor de registro (RequireSecuritySignature); y sobre que, a partir de Windows 11 versión 24H2, se puede usar una auditoría para detectar destinos que no admiten firma ni cifrado (por ejemplo, Set-SmbClientConfiguration -AuditServerDoesNotSupportSigning, los eventos 31998 y 31999 de SMBClient/Audit, y los eventos 3021 y 3022 de SMBServer/Audit).  2 3

  13. 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 equipos remotos; que esto evita el truco de hacer que se envíen solicitudes NTLM a un servidor malintencionado, y ayuda a contrarrestar los ataques de fuerza bruta, de descifrado (cracking) y Pass-the-Hash; que Kerberos es más seguro que NTLM porque puede verificar la identidad del servidor mediante tickets, y que el bloqueo de NTLM es necesario para que la organización migre su protocolo de autenticación a Kerberos; que, aun así, se puede habilitar solo esta capa de protección sin deshabilitar NTLM por completo; sobre los requisitos previos (Windows Server 2025 o posterior, o un cliente SMB de Windows 11 versión 24H2 o posterior, junto con un servidor SMB que admita Kerberos); y sobre que se trata de una función del lado del cliente SMB.  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.

En definitiva, ¿en qué se diferencian NTLM y Kerberos?
La diferencia más importante es si se puede verificar a la otra parte o no. Microsoft indica explícitamente que en NTLM el cliente no puede verificar la identidad del servidor, ni un servidor puede verificar la identidad de otro servidor. NTLM está diseñado para entornos donde se puede asumir que «el servidor es auténtico», mientras que Kerberos no parte de esa suposición. La segunda diferencia es si el servidor necesita consultar al controlador de dominio. En NTLM, cuando la autenticación se hace con una cuenta de dominio, el servidor de aplicaciones se conecta al controlador de dominio cada vez que autentica a un cliente (si la cuenta es local al servidor, el propio servidor consulta su base de datos de cuentas y decide por sí mismo, sin que intervenga el controlador de dominio). En Kerberos, los tickets de sesión renovables sustituyen esta autenticación de paso, de modo que el servidor no necesita ir al controlador de dominio salvo que deba validar el PAC. La tercera diferencia es que Kerberos admite la delegación por parte de un servicio (el mecanismo por el que un servicio se conecta a otros servicios en representación del cliente).
Se supone que la aplicación admite Kerberos, entonces ¿por qué termina usando NTLM?
Kerberos emite tickets usando como clave el «nombre del destino», así que si ese nombre no se puede resolver, el mecanismo no funciona. El cliente presenta al KDC el SPN (nombre principal de servicio) del destino para solicitar un ticket de servicio, pero, de forma predeterminada, Windows no intenta la autenticación Kerberos cuando el nombre de host es una dirección IP, y el KDC no puede emitir un ticket si la cuenta de servicio no tiene el SPN registrado. La guía de auditoría de Microsoft también indica que, si el «servidor de destino» del evento 8001 no aparece ni en formato NetBIOS ni en formato FQDN, no se usa Kerberos (en el caso de las direcciones IP, se puede lograr que Kerberos funcione de forma excepcional configurando TryIPSPN en el cliente y registrando manualmente el SPN de la dirección IP, pero se considera el último recurso cuando no es posible cambiar a un nombre DNS). Además, la autenticación en equipos de grupo de trabajo o con cuentas locales (que de entrada está fuera de Active Directory), las sedes que no pueden llegar al controlador de dominio y la autenticación contra partes sin relación de confianza son también condiciones en las que Kerberos no puede completarse. Como Negotiate elige NTLM cuando no puede usar Kerberos, en estos casos la autenticación «cae» a NTLM.
¿Qué es un ataque de retransmisión (relay) de NTLM? ¿Por qué funciona?
Es un ataque en el que el atacante atrae a la víctima hacia su propio servidor y retransmite tal cual, hacia el servidor auténtico, el intercambio de autenticación NTLM que llega allí, para suplantar a la víctima. Funciona porque el desafío/respuesta de NTLM no tiene ningún mecanismo que vincule «ante quién se está autenticando». El cliente se limita a calcular una respuesta a partir del desafío que envió el servidor y a devolverla, y no dispone de ninguna forma de comprobar, desde su lado, si esa respuesta va destinada al servidor auténtico o si un atacante la está retransmitiendo. La propia Microsoft indica explícitamente, en su documentación de configuración de políticas, que la autenticación NTLM y NTLMv2 es vulnerable a diversos ataques malintencionados, incluidos la retransmisión SMB, los ataques de intermediario (man-in-the-middle) y los ataques de fuerza bruta. Sin embargo, la retransmisión no funciona contra cualquier destino. Si el destino exige la firma SMB, la retransmisión no se completa porque la firma verifica la identidad del emisor y del receptor, y ocurre lo mismo con los servicios que imponen Extended Protection for Authentication (vinculación de canal, channel binding). Dicho de otro modo, los objetivos son aquellos que aceptan NTLM sin exigir ni firma ni channel binding. En Kerberos, como el ticket de servicio está cifrado con la clave a largo plazo de ese servicio concreto, un ticket destinado a otro servicio no puede descifrarse aunque se presente en un servicio distinto.
¿Pass-the-Hash significa que se puede suplantar a alguien sin descifrar su contraseña?
Así es. Las credenciales de NTLM se componen de un hash unidireccional del nombre de dominio, el nombre de usuario y la contraseña. En el NTLMv2 que usan las versiones actuales de Windows, la clave de respuesta se deriva como un HMAC que usa como clave el hash MD4 de la contraseña (el hash NT), y con esa clave se calcula un HMAC sobre el conjunto formado por el desafío del servidor, la hora, el desafío generado por el cliente y la información de destino. No es un simple cifrado del desafío, pero el punto de partida sigue siendo el hash de la contraseña. Es decir, lo que se necesita para autenticarse es el hash, no la contraseña en texto claro. Por lo tanto, un atacante que logre extraer el hash, por ejemplo de la memoria de un equipo, puede autenticarse como ese usuario sin necesidad de descifrar la contraseña. Alargar y complicar la contraseña no cierra esta vía. Una de las razones por las que Microsoft creó la función de bloqueo de NTLM en el lado del cliente SMB es precisamente contrarrestar los ataques Pass-the-Hash.
¿Usar NTLMv2 no es seguro por ahora?
NTLMv2 es más robusto que NTLMv1, pero eso no lo excluye de la lista de funciones en desuso. El listado de funciones obsoletas de Microsoft indica que todas las versiones de NTLM, incluidas LANMAN, NTLMv1 y NTLMv2, quedan fuera del desarrollo activo de funciones y se consideran obsoletas (deprecated). El comportamiento de las políticas de restricción es el mismo: se explica que las políticas de auditoría y bloqueo tienen el mismo efecto sobre las dos versiones. NTLMv1, en cambio, recibe un trato distinto: no se ha quedado solo en obsoleto, sino que ha entrado en la fase de eliminación, y ya se ha eliminado a partir de Windows 11 versión 24H2 y Windows Server 2025. Por lo tanto, la conclusión no es «como es NTLMv2, se puede dejar así por ahora», sino más bien: «NTLMv1 tiene ya un plazo vencido; para NTLMv2 hay que avanzar en el inventario de cara a su deshabilitación por defecto».

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