Saltar al contenido

Frenar el NTLM relay: firma LDAP, SMB y LLMNR

Refuerce la firma LDAP, el enlace de canal LDAP y la firma SMB, y deshabilite LLMNR/NBT-NS para cerrar las rutas de NTLM relay contra los controladores de dominio.

Florian Amette6 min de lectura

El NTLM relay sigue siendo una de las vías más fiables hacia el compromiso del dominio, porque muchísimos entornos de AD todavía permiten enlaces LDAP sin firmar, SMB sin firmar y protocolos heredados de resolución de nombres que filtran credenciales a cualquiera que escuche en el segmento local. Ninguna de las correcciones de esta guía requiere infraestructura nueva: son valores del registro, configuraciones de directiva de grupo y registros de auditoría que puede activar esta misma semana. Esta guía cubre el bloqueo de la firma LDAP y SMB, la eliminación de LLMNR/NBT-NS y la retirada de NTLMv1, con pasos de verificación y una lista clara de lo que se rompe.

Por qué LLMNR y NBT-NS facilitan el NTLM relay

LLMNR (Link-Local Multicast Name Resolution) y NBT-NS (NetBIOS Name Service) permiten que los equipos Windows resuelvan nombres cuando falla DNS, difundiendo una solicitud a la subred local. Cualquier equipo de ese segmento puede responder: la respuesta no está autenticada. Un atacante que contesta a estas difusiones induce a la víctima a autenticarse ante él con NTLM, lo que le permite capturar un hash o reenviar (relay) el intento de autenticación en vivo hacia un servicio de destino como LDAP o SMB. Desactivar ambos protocolos elimina el punto de apoyo más fácil para recolectar credenciales en la mayoría de las pruebas de penetración internas.

Deshabilitar LLMNR

Ruta de directiva de grupo:

Text
Computer Configuration > Policies > Administrative Templates > Network > DNS Client
  Turn Off Multicast Name Resolution: Enabled

Valor del registro equivalente:

Text
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient
  EnableMulticast (DWORD) = 0

Deshabilitar NBT-NS

NBT-NS no tiene un conmutador nativo en GPO; deshabilítelo por adaptador mediante WMI, idealmente distribuido con un script de inicio o una tarea programada para que se aplique también a las nuevas tarjetas de red:

PowerShell
# Deshabilitar NetBIOS sobre TCP/IP en todos los adaptadores (0 = predeterminado/habilitar vía DHCP, 1 = habilitar, 2 = deshabilitar)
Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=True" |
    ForEach-Object { $_.SetTcpipNetbios(2) }

Verificación:

PowerShell
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name EnableMulticast
Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=True" |
    Select-Object Description, TcpipNetbiosOptions

Firma LDAP y enlace de canal LDAP

Los enlaces LDAP sin firmar permiten a un atacante reenviar una autenticación NTLM capturada directamente a una sesión LDAP en un controlador de dominio, lo que a menudo basta para añadirse a un grupo privilegiado o leer atributos confidenciales. Dos configuraciones independientes cierran esta vía: la firma del servidor LDAP (LDAPServerIntegrity) y el enlace de canal LDAP (LdapEnforceChannelBinding); esta última cierra la ruta de relay específica de LDAPS/TLS que la firma por sí sola no cubre.

Configure en cada controlador de dominio:

Text
HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
  LDAPServerIntegrity (DWORD) = 2   ; 1 = None, 2 = Require signing

HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
  LdapEnforceChannelBinding (DWORD) = 2   ; 0 = Never, 1 = When supported, 2 = Always

Ambos valores pueden distribuirse mediante una preferencia de registro de GPO dirigida a la OU Domain Controllers, o configurarse directamente:

PowerShell
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" -Name LDAPServerIntegrity -Value 2
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" -Name LdapEnforceChannelBinding -Value 2

Localizar los clientes no conformes antes de aplicar

Antes de configurar LDAPServerIntegrity para exigir la firma, habilite el registro de diagnóstico en el controlador de dominio y revise el registro de eventos Directory Service durante una ventana de despliegue (lo habitual son de dos a cuatro semanas):

PowerShell
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics" -Name "16 LDAP Interface Events" -Value 2

Vigile estos ID de evento de Directory Service, que identifican exactamente qué clientes y servicios se enlazan sin firma o sin enlace de canal:

ID de eventoSignificado
2886El controlador de dominio no está configurado para exigir la firma LDAP: informativo, corríjalo antes de aplicar
2887Número de enlaces SASL sin firmar y enlaces simples en texto claro aceptados en las últimas 24 horas
2888La firma está aplicada: número de enlaces sin firmar rechazados en las últimas 24 horas
2889Un cliente concreto realizó un enlace SASL sin firmar o un enlace simple en texto claro: registra la IP y la cuenta del cliente, su lista de tareas de corrección
3039Un cliente concreto se enlazó sobre TLS sin un token de enlace de canal válido (3040 es el recuento de 24 horas; 3041 indica que el enlace de canal no se aplica)
PowerShell
Get-WinEvent -LogName "Directory Service" | Where-Object { $_.Id -in 2887,2889,3039 } |
    Select-Object TimeCreated, Id, Message | Format-List

Pase LDAPServerIntegrity y LdapEnforceChannelBinding a sus valores de aplicación (2) solo cuando los eventos 2889 y 3039 dejen de generarse, o cuando los orígenes restantes sean excepciones aceptadas. Consulte enlace de canal LDAP para ver cómo el enlace vincula la sesión LDAP al canal TLS.

Firma SMB

El relay SMB funciona igual que el relay LDAP: una autenticación NTLM capturada se reproduce contra un servidor de archivos o, peor aún, contra la pila SMB de un controlador de dominio. Exigir la firma SMB hace que una sesión reenviada no supere las comprobaciones de integridad y se descarte.

Text
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
  Microsoft network server: Digitally sign communications (always): Enabled
  Microsoft network client: Digitally sign communications (always): Enabled

Equivalentes en el registro:

Text
HKLM\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters
  RequireSecuritySignature (DWORD) = 1

HKLM\SYSTEM\CurrentControlSet\Services\LanManWorkstation\Parameters
  RequireSecuritySignature (DWORD) = 1

Aplíquelo primero a los controladores de dominio (son el objetivo de relay más valioso) y después a estaciones de trabajo y servidores de archivos en un despliegue por fases. Verifique:

PowerShell
Get-SmbServerConfiguration | Select-Object RequireSecuritySignature
Get-SmbClientConfiguration | Select-Object RequireSecuritySignature

Auditar y restringir NTLM

En lugar de deshabilitar NTLM sin más, lo que rompe todo lo que no haya migrado a Kerberos, utilice el flujo de trabajo Restrict NTLM de auditar primero y aplicar después.

Text
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
  Network security: Restrict NTLM: Audit NTLM authentication in this domain: Enable all
  Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers: Audit all

Los eventos de auditoría (ID 8001-8004) se registran en Microsoft-Windows-NTLM/Operational, no en el registro System. Revíselos durante un ciclo de negocio completo, elabore una lista de permitidos con los servicios que todavía necesitan NTLM de forma legítima y después pase de Audit a Deny para todo lo demás:

Text
Network security: Restrict NTLM: NTLM authentication in this domain: Deny all
Network security: Restrict NTLM: Add server exceptions in this domain: <legacy app servers>

Deshabilitar NTLMv1

NTLMv1 es criptográficamente débil y debe deshabilitarse por completo; solo NTLMv2 necesita seguir disponible como alternativa para los equipos que aún no pueden usar Kerberos.

Text
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
  Network security: LAN Manager authentication level: Send NTLMv2 response only. Refuse LM & NTLM

Registro:

Text
HKLM\SYSTEM\CurrentControlSet\Control\Lsa
  LmCompatibilityLevel (DWORD) = 5

Verifique:

PowerShell
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LmCompatibilityLevel

Qué se rompe

  • Firma LDAP/enlace de canal: escáneres de red antiguos, impresoras y equipos multifunción con búsquedas LDAP de libreta de direcciones integradas, algunos dispositivos de copia de seguridad y monitorización, y puentes de identidad de terceros que se enlazan sin firma. Los eventos 2886-2889 los identifican antes de aplicar.
  • Firma SMB: dispositivos NAS muy antiguos que solo admiten SMBv1 y algunos sistemas industriales o embebidos; la sobrecarga de la firma también supone un pequeño coste de rendimiento en transferencias de archivos de gran volumen sobre enlaces lentos.
  • Deshabilitación de LLMNR/NBT-NS: los entornos que aún dependen de la resolución de nombres NetBIOS para búsquedas de nombres planos heredados (aplicaciones anteriores a DNS, algún software de línea de negocio) pueden sufrir fallos intermitentes de resolución de nombres; compruebe antes la cobertura de DNS.
  • LmCompatibilityLevel = 5: cualquier dispositivo o aplicación con NTLMv1 codificado de forma fija, normalmente fotocopiadoras muy antiguas, algunos equipos SCADA/ICS y clientes SMB no Windows sin parchear.

Para el hardening relacionado, consulte Hardening de Kerberos y Hardening de controladores de dominio. La técnica de relay en sí se explica en NTLM relay.

Preguntas frecuentes

¿Exigir la firma LDAP romperá algo?

Rompe cualquier aplicación o dispositivo que se enlace a LDAP en texto claro sin soporte de firma, incluidos algunos escáneres de red antiguos, impresoras y conectores de identidad de terceros. Pruebe en modo auditoría con los eventos 2886-2889 antes de aplicarla.

¿Cuál es la diferencia entre la firma LDAP y el enlace de canal LDAP?

La firma LDAP (LDAPServerIntegrity) protege el tráfico LDAP en el puerto 389 frente a la manipulación y el relay. El enlace de canal (LdapEnforceChannelBinding) vincula una sesión LDAPS (puerto 636) al canal TLS subyacente y cierra una ruta de relay distinta que la firma por sí sola no cubre.

¿Puedo deshabilitar NTLM por completo?

En la mayoría de los entornos, no: las aplicaciones heredadas, los equipos de grupo de trabajo y algunos servicios de VPN o impresión siguen dependiendo de NTLM. El camino realista es auditar y después aplicar directivas Restrict NTLM limitadas a lo que haya verificado como seguro, a la vez que deshabilita NTLMv1 en todas partes.

Frenar el NTLM relay: firma LDAP, SMB y LLMNR

Guías relacionadas

NTLM y protocolos heredados

Auditar y restringir NTLM en Active Directory

Plan paso a paso para reducir NTLM: auditar con los eventos 8001-8004, corregir las causas, crear una lista de excepciones, retirar NTLMv1 y fijar LmCompatibilityLevel 5.

Avanzado
NTLM y protocolos heredados

Exigir firma LDAP y enlace de canal en los DC

Despliegue la firma LDAP y el enlace de canal con evidencias: recopile los eventos 2887, 2889 y 3039, corrija los clientes y aplique LdapEnforceChannelBinding.

Intermedio