Enlace de canal LDAP, controlador de dominio, relay NTLM, LDAPS — los cuatro términos pertenecen a la misma frase, porque el enlace de canal es el único ajuste del controlador de dominio que detiene un relay NTLM que aterriza dentro de una sesión LDAPS en el puerto 636. La mayoría de los equipos de Active Directory leyeron la guía de fortalecimiento de 2020 de Microsoft como un solo elemento, cerraron la mitad correspondiente a la firma LDAP y siguieron adelante. La mitad del enlace de canal es un valor de registro independiente que, en Windows Server 2022 y versiones anteriores, no existe hasta que un administrador lo crea — y Windows Server 2025 solo cambió eso para implementaciones completamente nuevas.
Enlace de Canal LDAP, Controlador de Dominio, Relay NTLM, LDAPS: Cómo Encajan las Piezas
El enlace de canal LDAP utiliza un token de enlace de canal (Channel Binding Token, CBT) para vincular la autenticación que ocurre dentro de una sesión TLS con el canal TLS que la transporta. Microsoft lo describe como el uso de CBT «para vincular criptográficamente la seguridad de la capa de aplicación (como una sesión SSL/TLS) con la conexión de red subyacente», de modo que un atacante que intercepte la sesión cifrada no pueda secuestrarla ni degradarla.
El token solo existe en un lugar. La referencia de directiva de Windows para Domain controller: LDAP server channel binding token requirements es explícita: «CBT o EPA se utiliza con sesiones TLS cuando se emplea un método de autenticación SASL para autenticar al usuario. SASL significa que se usa NTLM o Kerberos para la autenticación del usuario. La vinculación simple de LDAP (LDAP Simple Bind) sobre TLS no ofrece protección mediante token de enlace de canal y, por lo tanto, no se recomienda».
Aquí importan dos puertos. El LDAP simple escucha en el 389 — el puerto donde viven problemas de enumeración no autenticada como el acceso LDAP anónimo mediante dsHeuristics. LDAPS usa el puerto 636 y establece SSL/TLS en cuanto un cliente se conecta. El enlace de canal es un control para el segundo.
La capacidad en sí no es nueva. Según KB4520412, «la compatibilidad con el enlace de canal LDAP se añadió mediante CVE-2017-8563 en Windows Server 2008 y versiones posteriores», y los tokens de enlace de canal son compatibles a partir de Windows 10 versión 1709. Lo que CVE-2017-8563 entregó fue compatibilidad con Protección Extendida para Autenticación (Extended Protection for Authentication, EPA) más una entrada de registro que un administrador debe crear — no un cambio del valor predeterminado.
ℹ️ Nota: EPA y el enlace de canal son la misma idea con dos nombres distintos. La documentación de Microsoft usa ambos términos, a veces en el mismo párrafo.
Por Qué la Firma LDAP No Cubre Tu Tráfico LDAPS
Esta es la parte que se suele saltar, y el propio texto de vulnerabilidad de Microsoft lo dice sin rodeos. La descripción de MSRC para CVE-2017-8563 dice:
Existe una vulnerabilidad de elevación de privilegios en Microsoft Windows cuando un atacante de tipo intermediario (man-in-the-middle) logra reenviar con éxito una solicitud de autenticación a un servidor LDAP de Windows, como un sistema que ejecuta Active Directory Domain Services (AD DS) o Active Directory Lightweight Directory Services (AD LDS), que ha sido configurado para requerir firma o sellado en las conexiones entrantes.
Lee esa última cláusula dos veces. El controlador de dominio de esa frase ya exige firma. Aun así, sigue siendo susceptible de relay. La corrección que Microsoft entregó fue EPA, y las preguntas frecuentes del mismo aviso indican a los administradores que instalar la actualización no es suficiente — también deben crear la configuración de registro LdapEnforceChannelBinding.
El alcance del control de firma explica por qué. Cuando la firma LDAP está exigida, un controlador de dominio «rechaza las vinculaciones simples de LDAP sobre conexiones que no son SSL/TLS y las vinculaciones SASL que no solicitan firma». Las dos mitades de esa regla se refieren a tráfico que no está ya dentro de TLS. Una vinculación simple transportada sobre LDAPS no es lo que rechaza el control de firma, y según la referencia de directiva anterior tampoco recibe protección mediante token de enlace de canal: el CBT se aplica cuando un método SASL — NTLM o Kerberos — realiza la autenticación, razón por la cual Microsoft marca la vinculación simple de LDAP sobre TLS como «no recomendada» en lugar de algo que el enlace de canal solucione.
Si todavía estás trabajando en el lado de la firma, ese control se trata por separado en Firma LDAP Deshabilitada: Cómo las Vinculaciones Sin Firmar Exponen Active Directory. Este artículo es el otro valor, en el otro puerto.
El Valor Predeterminado que Nunca Cambió
El aviso ADV190023 de Microsoft, Microsoft Guidance for Enabling LDAP Channel Binding and LDAP Signing, es inusualmente directo sobre el punto de partida: «Existe un conjunto de configuraciones predeterminadas inseguras para el enlace de canal LDAP y la firma LDAP en los controladores de dominio de Active Directory, que permiten que los clientes LDAP se comuniquen con ellos sin exigir el enlace de canal LDAP ni la firma LDAP».
Las actualizaciones del 10 de marzo de 2020 que todo el mundo recuerda añadieron la configuración de Group Policy y los ID de evento. No cambiaron nada. KB4520412 repite la advertencia cuatro veces — en su introducción y una vez en cada sección de actualización: «Las actualizaciones del 10 de marzo de 2020, y las actualizaciones en el futuro previsible, no cambiarán las directivas predeterminadas de firma LDAP ni de enlace de canal LDAP, ni su equivalente en el registro, en los controladores de dominio de Active Directory nuevos o existentes». Las actualizaciones de auditoría del 8 de agosto de 2023 y del 10 de octubre de 2023 repiten lo mismo, cada una para su propia versión.
En el lado del registro, KB4034879 es igual de directo: «De forma predeterminada, esta configuración está deshabilitada» y «la entrada de registro LdapEnforceChannelBindings debe crearse explícitamente».
Windows Server 2025 es donde la historia finalmente cambia — parcialmente.
| Controlador de dominio | Valor predeterminado efectivo del enlace de canal |
|---|---|
| Windows Server 2019 y versiones anteriores | Never |
| Windows Server 2022 | Never |
| Windows Server 2025, implementación nueva de AD | When supported |
| Windows Server 2025, actualizado desde una versión anterior | Se conserva la directiva existente |
La documentación de Microsoft indica que Windows Server 2025 y versiones posteriores configuran el enlace de canal en «When supported» de forma predeterminada, con la auditoría de enlace de canal habilitada por defecto, y que estos valores predeterminados más estrictos se aplican a las implementaciones nuevas de Active Directory — mientras que «las instalaciones actualizadas mantienen su configuración de seguridad LDAP actual para evitar interrupciones». Así que un controlador de dominio Server 2025 que se une a un dominio que construiste en 2016 no es automáticamente el endurecido del que habla el titular de marketing. Si ya tienes previsto renovar un controlador de dominio, esa distinción importa: consulta Windows Server 2016: Fin de Soporte y Actualización de Controladores de Dominio de Active Directory.
⚠️ Advertencia: Aquí el editor de Group Policy induce activamente a error. La referencia de directiva de Microsoft señala que «en versiones más recientes de Windows, la página de propiedades de la directiva muestra 'When supported'», mientras que la tabla de valores predeterminados efectivos reales indica Never para Windows Server 2022 y versiones anteriores. Un administrador que abre la directiva, lee «When supported» en la página de propiedades y la cierra no ha verificado nada.
Y «When supported» tampoco es la meta final. Según la propia definición de Microsoft, en ese nivel «solo se bloquearán los enlaces de canal incorrectos, y los clientes que no admiten el enlace de canal pueden seguir conectándose mediante LDAP sobre TLS». La práctica recomendada documentada es Always.
La Cadena de Ataque
Paso 1 - Obtener una autenticación para reenviar
El atacante necesita que una máquina o cuenta de usuario de Windows se autentique hacia un host bajo su control. La mecánica de ese paso — coerción, envenenamiento de resolución de nombres, una ruta de recurso compartido maliciosa — es la misma que se trata en Ataques de Relay NTLM: Secuestro de Autenticación en AD, y no cambia por nada configurado en el controlador de dominio.
Paso 2 - Reenviarla hacia LDAPS en el puerto 636
En lugar de terminar la autenticación, el atacante abre su propia sesión TLS hacia un controlador de dominio en el puerto 636 y reenvía dentro de ella los mensajes de autenticación de la víctima. Este es exactamente el escenario que describe ADV190023: «un atacante de tipo intermediario (man-in-the-middle) que reenvía con éxito una solicitud de autenticación a un servidor LDAP de Windows ... que no ha sido configurado para requerir enlace de canal, ni firma o sellado en las conexiones entrantes».
Paso 3 - Vincularse y actuar como el principal reenviado
Con LdapEnforceChannelBinding ausente o establecido en 0, el controlador de dominio no tiene forma de notar que la autenticación se generó para un canal TLS distinto de aquel por el que llegó, y la vinculación se realiza con éxito. El atacante ahora dispone de una sesión LDAP autenticada que porta los derechos de directorio de la cuenta reenviada — lo cual, si el principal reenviado es una cuenta de equipo de un controlador de dominio o un usuario privilegiado, es un camino muy corto hacia el resto del dominio. Una sesión LDAP autenticada es también el lugar donde se escriben los objetos de directorio, y valores predeterminados como la cuota de cuentas de equipo determinan cuánto puede seguir haciendo incluso una cuenta con pocos privilegios.
Con la exigencia de CBT establecida en Always, esa misma autenticación reenviada no porta un enlace válido para el canal del atacante y el controlador de dominio la rechaza.
Detección
Empieza por lo que cada controlador de dominio hace actualmente, no por lo que afirma el editor de GPO.
$dcs = (Get-ADDomainController -Filter *).HostName
Invoke-Command -ComputerName $dcs -ScriptBlock {
$params = 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters'
$diag = 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics'
[pscustomobject]@{
DC = $env:COMPUTERNAME
OS = (Get-CimInstance Win32_OperatingSystem).Caption
CBT = (Get-ItemProperty $params -Name LdapEnforceChannelBinding -ErrorAction SilentlyContinue).LdapEnforceChannelBinding
Signing = (Get-ItemProperty $params -Name LDAPServerIntegrity -ErrorAction SilentlyContinue).LDAPServerIntegrity
LdapLogging = (Get-ItemProperty $diag -Name '16 LDAP Interface Events' -ErrorAction SilentlyContinue).'16 LDAP Interface Events'
}
} | Format-Table -AutoSize
Una columna CBT vacía significa que el valor nunca se creó. En Windows Server 2022 y versiones anteriores, eso equivale a 0 — Never.
Ambas configuraciones residen bajo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters, y KB4520412 las asigna a los nombres de directiva de la siguiente manera.
| Directiva | Valor de registro | Valores |
|---|---|---|
| Domain controller: LDAP server signing requirements | LDAPServerIntegrity | 1 = None, 2 = Require Signing |
| Domain controller: LDAP server channel binding token requirements | LdapEnforceChannelBinding | 0 = Never, 1 = When Supported, 2 = Always |
A continuación, los eventos. Todos ellos se registran en el registro Directory Service con el origen Microsoft-Windows-ActiveDirectory_DomainService.
| Evento | Significado | Se activa cuando | Nivel mínimo de registro |
|---|---|---|---|
| 3041 | El servidor debería configurarse para exigir la validación de tokens de enlace de canal | Cada 24 h, al iniciar o al arrancar el servicio, cuando la directiva de CBT es Never | 0 |
| 3040 | Recuento de vinculaciones LDAPS no protegidas en las 24 horas anteriores | Cada 24 h cuando la directiva de CBT es Never y se completó al menos una vinculación no protegida | 0 |
| 3074 | Un cliente se vinculó mediante SSL/TLS y habría fallado la validación de CBT | Un cliente presenta un CBT con formato incorrecto | 2 |
| 3075 | Un cliente se vinculó mediante SSL/TLS y no proporcionó información de enlace de canal | Un cliente compatible con CBT no envía ningún token | 2 |
| 3039 | Un cliente se vinculó mediante SSL/TLS y falló la validación de CBT | La exigencia está activa y el token falta o es incorrecto | 2 |
🚨 Peligro: Esa tabla esconde una trampa. KB4520412 indica que «los eventos 3039, 3074 y 3075 solo pueden generarse cuando el enlace de canal está establecido en When Supported o Always». Por lo tanto, un controlador de dominio que permanece en el valor predeterminado produce cero inventario de clientes — los eventos de auditoría que te dicen qué clientes se romperían no existen hasta que ya te hayas movido fuera de Never. El instinto habitual de «auditar primero, luego habilitar» aquí está invertido: pasar a 1 es el paso de auditoría.
Los eventos 3040 y 3041 son la excepción, y son tu oráculo de referencia. Se activan con el nivel de registro 0, sin ninguna configuración adicional, y solo cuando la directiva es Never. Si un controlador de dominio está registrando el evento 3041, el enlace de canal está desactivado en ese controlador de dominio — sin importar lo que dijera la página de propiedades.
Get-WinEvent -FilterHashtable @{
LogName = 'Directory Service'
Id = 3039, 3040, 3041, 3074, 3075
StartTime = (Get-Date).AddDays(-7)
} -ErrorAction SilentlyContinue |
Group-Object Id |
Select-Object Name, Count |
Sort-Object Name
Para recopilar el detalle de los clientes, sube el nivel de diagnóstico de LDAP. KB4520412 proporciona el comando textualmente:
Reg Add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics /v "16 LDAP Interface Events" /t REG_DWORD /d 2
En el nivel 2, los eventos 3074 y 3075 incluyen los campos necesarios para rastrear a un cliente: la dirección IP y el puerto del cliente, la identidad con la que el cliente intentó autenticarse, si el cliente admite el enlace de canal, si se le permitió el acceso en modo when-supported, y un valor de indicador de resultado de auditoría.
Get-WinEvent -FilterHashtable @{ LogName = 'Directory Service'; Id = 3074, 3075 } -ErrorAction SilentlyContinue |
ForEach-Object {
if ($_.Message -match 'Client IP address:\s*(\d{1,3}(?:\.\d{1,3}){3}):\d+') { $Matches[1] }
} |
Group-Object |
Sort-Object Count -Descending |
Select-Object Count, Name
Ajusta el patrón si alguno de tus clientes llega al controlador de dominio mediante IPv6.
Los indicadores de resultado de auditoría se interpretan de la siguiente manera, según KB4520412.
| Indicador | Valor | Significado |
|---|---|---|
| SEC_CHANNEL_BINDINGS_RESULT_CLIENT_SUPPORT | 0x01 | El paquete de autenticación indica que las versiones del cliente deberían admitir enlaces |
| SEC_CHANNEL_BINDINGS_RESULT_ABSENT | 0x02 | Los enlaces se omiten o son todos ceros |
| SEC_CHANNEL_BINDINGS_RESULT_NOTVALID_MISMATCH | 0x04 | El hash de enlace de canal era incorrecto |
| SEC_CHANNEL_BINDINGS_RESULT_NOTVALID_MISSING | 0x08 | Los enlaces de canal ausentes no están permitidos para este cliente |
| SEC_CHANNEL_BINDINGS_RESULT_VALID_MATCHED | 0x10 | Los enlaces del cliente y del servidor coinciden |
| SEC_CHANNEL_BINDINGS_RESULT_VALID_PROXY | 0x20 | ASC_REQ_PROXY_BINDINGS exigió que el cliente proporcionara un enlace |
| SEC_CHANNEL_BINDINGS_RESULT_VALID_MISSING | 0x40 | Cliente permitido mediante ASC_REQ_ALLOW_MISSING_BINDINGS |
Los bits dentro de 0x30 indican un CBT válido; los bits dentro de 0x0C indican uno fallido.
ℹ️ Nota: La página de resumen de Microsoft sobre la firma LDAP incluye una tabla de eventos condensada que etiqueta el 3039 como «enlace de canal no compatible» y el 3041 como «enlace de canal correcto». Eso contradice las tablas detalladas de KB4520412 citadas anteriormente, y también el texto del evento en tus propios controladores de dominio. Confía en KB4520412 y en el cuerpo del mensaje del evento.
Los eventos de auditoría también requieren un nivel mínimo de actualización: según ADV190023, los eventos de auditoría de enlace de canal 3074 y 3075 pasaron a estar disponibles sin necesidad de un paso manual de habilitación con las actualizaciones del 14 de noviembre de 2023 en Windows Server 2022 y las actualizaciones del 9 de enero de 2024 en Windows Server 2019.
Remediation
💡 Victoria rápida: Establece LdapEnforceChannelBinding en 1 en un controlador de dominio hoy mismo. No se requiere reinicio, «When supported» solo bloquea los enlaces incorrectos, y es la única forma de hacer que aparezca el inventario de clientes 3074/3075.
1. Primero arregla la base. El enlace de canal es un control sobre LDAPS, así que LDAPS debe estar saludable antes de exigir nada: un certificado válido en cada controlador de dominio y una configuración de TLS moderna. Si ese terreno no está verificado, empieza por Auditoría de TLS Débil en LDAPS, Print Spooler y Sincronización Horaria del Controlador de Dominio.
2. Pasa a When Supported (valor 1).
$params = 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters'
New-ItemProperty -Path $params -Name 'LdapEnforceChannelBinding' -PropertyType DWord -Value 1 -Force
KB4034879 confirma que el costo operativo es casi nulo: «El servidor LDAP responde dinámicamente a los cambios en esta entrada de registro. Por lo tanto, no es necesario reiniciar el equipo después de aplicar el cambio de registro». Microsoft también recomienda el valor 1 específicamente para maximizar la compatibilidad con sistemas operativos más antiguos.
3. Lee el inventario durante un ciclo de negocio completo. Con el registro de diagnóstico en 2, recopila los eventos 3074 y 3075 en todos los controladores de dominio durante el tiempo suficiente para capturar tareas mensuales y trimestrales. La guía de KB4520412 es clasificar cada IP de origen en tres grupos: dispositivo de red o router (contacta al proveedor), dispositivo no Windows (confirma con el proveedor del sistema operativo y de la aplicación que tanto la firma como el enlace de canal son compatibles), y dispositivo Windows (verifica que la aplicación realmente esté usando el enlace de canal).
4. Anticipa tipos concretos de rotura. Las preguntas frecuentes de LDAP de Microsoft señalan que los clientes que se conectan mediante SSL/TLS sin un CBT fallarán en cuanto el servidor lo exija, y que «las conexiones SSL/TLS que son terminadas por un servidor intermedio que a su vez emite una nueva conexión hacia un controlador de dominio de Active Directory, fallarán» — un balanceador de carga que termina el TLS delante de tus controladores de dominio es una baja garantizada. Las mismas preguntas frecuentes señalan que «el soporte para el enlace de canal puede ser menos común en sistemas operativos y aplicaciones de terceros que para la firma LDAP», que es precisamente la razón por la que tantos entornos terminaron la firma y se estancaron aquí. KB4520412 añade dos modos de fallo más. Windows XP «no admite el enlace de canal LDAP y fallaría cuando el enlace de canal LDAP se configura usando un valor de Always, pero interoperaría con DC configurados con el ajuste más relajado de enlace de canal LDAP de When supported» — sobrevive al paso 2 y se rompe en el paso 5. Y un cliente puede tener EPA desactivado localmente mediante la configuración de registro SuppressExtendedProtection; dado que KB4520412 define un cliente compatible con el enlace de canal como aquel en el que EPA está «instalado o disponible en el sistema operativo y no deshabilitado mediante la configuración de registro SuppressExtendedProtection», ese tipo de cliente tampoco aparecerá nunca en tu inventario de eventos 3075.
5. Exige Always (valor 2), mediante directiva. Una vez que el inventario esté limpio, establece la Group Policy Domain controller: LDAP server channel binding token requirements en Always dentro de Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options en la Default Domain Controllers Policy, de modo que los controladores de dominio nuevos la hereden en lugar de depender de que alguien recuerde configurar el valor de registro. La práctica recomendada declarada por Microsoft para esta configuración es Always; el efecto secundario documentado es que los clientes que no admiten el enlace de canal ya no podrán ejecutar consultas LDAP contra los controladores de dominio.
6. Verifica por ausencia. El evento 3041 solo se activa mientras la directiva es Never. Cuando un controlador de dominio deja de registrar los eventos 3040 y 3041, y empieza a registrar el 3039 para fallos genuinos, la exigencia está activa en ese host. Vuelve a ejecutar el inventario de registro de la sección Detección en todos los controladores de dominio — incluidos los que se hayan promovido después del cambio.
7. Cierra las rutas de relay vecinas. El enlace de canal cierra un destino de relay. Las credenciales que se reenvían normalmente se originan en algún lugar con SMB sin firmar, así que combina este trabajo con Firma SMB Deshabilitada: Por Qué Sigue Permitiendo el Relay NTLM — y los endpoints de inscripción de certificados son un destino aparte que vale la pena auditar en la misma campaña, cubierto en Rutas de Ataque de ADCS Explicadas.
Cómo EtcSec Detecta Esto
EtcSec lee la configuración LDAP efectiva de cada controlador de dominio durante una auditoría de Active Directory. LDAP_CHANNEL_BINDING_DISABLED marca los controladores de dominio que no exigen tokens de enlace de canal, y LDAP_SIGNING_DISABLED marca la mitad correspondiente a la firma del mismo aviso — deliberadamente como dos hallazgos distintos, porque cerrar uno no cierra el otro. NTLM_RELAY_OPPORTUNITY reporta la exposición al relay que crean esos valores predeterminados, y DC_LDAPS_WEAK_TLS verifica que la propia capa TLS de la que depende el enlace de canal sea sólida.
ℹ️ Nota: EtcSec verifica automáticamente esta vulnerabilidad en cada auditoría de AD/Azure. Ejecuta una auditoría gratuita para verificar tu entorno.
Referencias Oficiales
- KB4520412: 2020, 2023, and 2024 LDAP channel binding and LDAP signing requirements for Windows — asignaciones de registro, tablas completas de eventos y disparadores, indicadores de resultado de auditoría
- KB4034879: Use the LdapEnforceChannelBinding registry entry to make LDAP authentication over SSL/TLS more secure — semántica de los valores, estado predeterminado, no requiere reinicio
- ADV190023: Microsoft Guidance for Enabling LDAP Channel Binding and LDAP Signing — la declaración sobre los valores predeterminados inseguros y el cronograma de actualizaciones
- CVE-2017-8563 — Windows Elevation of Privilege Vulnerability — el relay contra un servidor LDAP con firma exigida, puntuación base CVSS 3.0 de 7.5
- Domain controller: LDAP server channel binding token requirements — definiciones de valores, valores predeterminados efectivos por versión de Windows, práctica recomendada
- LDAP signing for Active Directory Domain Services on Windows Server — valores predeterminados de Windows Server 2025 y comportamiento en actualizaciones
- Manage LDAP signing using Group Policy — la directiva de exigencia de firma en Server 2025 y los pasos de registro de diagnóstico
- KB4546509: Frequently asked questions about changes to Lightweight Directory Access Protocol — modos de fallo de compatibilidad
Lecturas Relacionadas
- Firma LDAP Deshabilitada: Cómo las Vinculaciones Sin Firmar Exponen Active Directory
- Ataques de Relay NTLM: Secuestro de Autenticación en AD
- Firma SMB Deshabilitada: Por Qué Sigue Permitiendo el Relay NTLM
- Auditoría de TLS Débil en LDAPS, Print Spooler y Sincronización Horaria del Controlador de Dominio: Una Lista de Verificación de Higiene de Red
- Acceso LDAP Anónimo mediante dsHeuristics: Enumeración de Active Directory
- Cuota de Cuentas de Equipo en Active Directory (ms-DS-MachineAccountQuota)
- Rutas de Ataque de ADCS Explicadas: Cómo las Configuraciones Erróneas de Certificados se Convierten en Rutas de Escalación en Active Directory
- Windows Server 2016: Fin de Soporte y Actualización de Controladores de Dominio de Active Directory
Explore las páginas de identidad que apoyan este tema
