Desactivar LLMNR: por qué es imprescindible (y cómo hacerlo paso a paso)
🧠 Resumen
LLMNR es un método de resolución de nombres “de emergencia” que usa multicast cuando falla DNS. En redes corporativas suele ser innecesario y aumenta la superficie de ataque: un atacante en la misma red puede suplantar respuestas y forzar autenticaciones (p. ej., NTLM), habilitando robo de credenciales y movimiento lateral. LLMNR opera en UDP/TCP 5355 y multicast 224.0.0.252 (IPv4) / FF02::1:3 (IPv6). (rfc-editor.org)
La mitigación recomendada es desactivarlo (GPO/Intune/registro), validar que DNS resuelve lo necesario y monitorizar tráfico 5355. (TECHCOMMUNITY.MICROSOFT.COM)
🔎 ¿Qué es LLMNR y por qué existe?
LLMNR (Link-Local Multicast Name Resolution) es un protocolo basado en el formato DNS que permite resolver nombres en el enlace local (misma subred) cuando la resolución tradicional no funciona. Según la especificación, utiliza el puerto 5355 y direcciones multicast de ámbito local (IPv4 224.0.0.252 e IPv6 FF02::1:3). (rfc-editor.org)
💡 Traducción a la vida real:
- Un usuario escribe
\\servidory DNS no responde (VPN caída, registro inexistente, typo, etc.). - El equipo “pregunta a la red” por multicast: “¿quién es servidor?”
- Si alguien responde, el equipo se lo cree… y ahí está el problema.
En Windows, esta configuración se controla con la directiva “Turn off multicast name resolution” (desactivar resolución por multicast). (Microsoft Learn)
🚨 El problema: LLMNR facilita el robo de credenciales en red interna
LLMNR no está diseñado para un entorno hostil: en una LAN donde un atacante (o un equipo comprometido) esté presente, puede responder antes que el host legítimo o “hacerse pasar” por él.
🧨 ¿Qué permite a un atacante?
MITRE ATT&CK describe que los adversarios pueden suplantar una fuente autoritativa de resolución respondiendo a tráfico LLMNR (UDP 5355) y provocar que la víctima se comunique con el sistema del atacante; si el recurso requiere autenticación, pueden capturar credenciales/hashes (por ejemplo, NTLMv2). (attack.mitre.org)
✅ Por qué desactivarlo es una medida “low risk / high reward”
Microsoft recomienda reducir este riesgo deshabilitando la resolución por broadcast/multicast (LLMNR) cuando DNS puede resolver lo necesario, y aporta una ruta clara: GPO / Intune / registro, incluyendo el valor EnableMulticast=0. (TECHCOMMUNITY.MICROSOFT.COM)
Además, Microsoft ha señalado que LLMNR y NetBIOS rara vez son necesarios hoy, y que mantenerlos habilitados amplía la superficie de ataque. (TECHCOMMUNITY.MICROSOFT.COM)
🧭 ¿Cómo saber si tu red “depende” de LLMNR?
Antes de desactivarlo a lo bruto, conviene identificar dependencias:
👀 Señales típicas
- Usuarios que conectan recursos por nombres cortos (“flat names”) tipo
\\NASsin FQDN. - Impresoras o dispositivos legacy que se descubren “por magia”.
- Redes con DNS mal configurado, sin sufijos de búsqueda o con registros incompletos.
🧪 Comprobación rápida (tráfico)
Captura en un punto de red o en un endpoint y filtra UDP 5355 (por ejemplo, en Wireshark). (en.wikiversity.org)
🛠️ Cómo desactivar LLMNR (Windows: GPO, Local, Registro, PowerShell, Intune)
1) 🏢 Windows en dominio: desactivar LLMNR con GPO (recomendado)
Ruta de la directiva:
- Computer Configuration → Policies → Administrative Templates → Network → DNS Client
- Turn off multicast name resolution → Enabled
Esta configuración equivale a desactivar LLMNR a nivel de cliente. (TECHCOMMUNITY.MICROSOFT.COM)
✅ Buenas prácticas de despliegue:
- Aplica primero a una OU piloto (IT / laboratorio).
- Valida 24–72h: impresoras, shares, aplicaciones legacy.
- Expande por oleadas.
2) 🧩 Windows local (sin dominio): gpedit.msc
En ediciones Pro/Enterprise:
Win + R→gpedit.msc- Misma ruta:
- Configuración del equipo → Plantillas administrativas → Red → Cliente DNS
- “Turn off multicast name resolution” → Habilitada
3) 🧷 Registro (para automatizar / GPP / scripts)
Microsoft documenta el mapeo ADMX: la directiva “Turn off multicast name resolution” corresponde al valor de registro EnableMulticast en Software\Policies\Microsoft\Windows NT\DNSClient. (Microsoft Learn)
Clave y valor:
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClientEnableMulticast(DWORD) =0
✅ PowerShell (elevado)
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Force | Out-Null
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" `
-Name "EnableMulticast" -PropertyType DWord -Value 0 -Force | Out-Null
Verificación:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" `
-Name "EnableMulticast"
📌 Nota operativa: aplica el cambio y reinicia el equipo (o valida tras reinicio) para asegurar comportamiento consistente.
4) ☁️ Intune: Settings catalog (Administrative Templates)
Hoy puedes gestionar esta configuración desde Intune usando Settings catalog (Plantillas administrativas):
- Administrative Templates → Network → DNS Client → Turn off multicast name resolution → Enabled (Microsoft Learn)
Esto alinea con lo que Microsoft señala: se puede deshabilitar por GPO, Intune o registro. (TECHCOMMUNITY.MICROSOFT.COM)
5) ✅ Cómo validar que está realmente desactivado
Checklist rápida:
🔍 En el endpoint
- Registro:
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\EnableMulticast = 0(Microsoft Learn)
gpresult /hpara comprobar que la GPO aplica.
🌐 En red
- Observa si desaparecen consultas UDP 5355 (LLMNR) en condiciones normales. (rfc-editor.org)
🐧 Linux (systemd-resolved): cómo desactivar LLMNR
En Linux, LLMNR suele estar gestionado por systemd-resolved, que implementa resolución y respuesta LLMNR/mDNS. (freedesktop.org)
Opción A) Global (recomendado): resolved.conf
Edita:
/etc/systemd/resolved.conf
Añade o ajusta:
[Resolve]
LLMNR=no
El manual indica que LLMNR= controla el soporte LLMNR (deshabilitarlo apaga resolución y respuesta). (man.archlinux.org)
Reinicia:
sudo systemctl restart systemd-resolved
Opción B) Por interfaz (systemd-networkd)
En el .network correspondiente:
[Network]
LLMNR=no
(Útil si quieres mantenerlo solo en un segmento concreto). (man.archlinux.org)
⚠️ Impacto y “plan B” (lo que puede romperse)
Microsoft advierte que, en entornos menos estructurados (por ejemplo, redes domésticas), dispositivos como impresoras podrían depender de LLMNR para resolver IPs. (TECHCOMMUNITY.MICROSOFT.COM)
✅ Mitigaciones recomendadas
- Asegura DNS bien configurado (registros A/PTR, sufijos de búsqueda).
- Usa FQDN (
impresora.empresa.local) en lugar de nombres planos. - Para descubrimiento local moderno, evalúa mDNS donde aplique (Microsoft ha indicado la dirección de migración alejándose de LLMNR/NetBIOS). (TECHCOMMUNITY.MICROSOFT.COM)
🧱 Hardening complementario (muy recomendado)
Si estás endureciendo tu red Windows/AD, LLMNR suele ir acompañado de:
- 🚫 NBT-NS / NetBIOS name resolution
- 🔒 SMB signing (y evitar downgrade/relay)
- 🧯 Segmentación (VLANs) y control de tráfico lateral
La propia guía de hardening de Microsoft menciona deshabilitar LLMNR y NBT-NS como reducción clara de riesgo. (TECHCOMMUNITY.MICROSOFT.COM)
✅ Checklist f
- Auditar dependencias (impresoras, legacy, nombres planos).
- Desplegar piloto (OU / anillo Intune).
- Aplicar GPO/Intune “Turn off multicast name resolution” = Enabled. (Microsoft Learn)
- Confirmar registro
EnableMulticast=0. (TECHCOMMUNITY.MICROSOFT.COM) - Monitorizar tráfico UDP 5355 y tickets de usuario.
- Corregir DNS / FQDN / sufijos.
- Expandir despliegue por oleadas.
❓ FAQ
¿LLMNR es lo mismo que DNS?
No. LLMNR es un mecanismo local por multicast que se usa cuando DNS no resuelve. Opera en el puerto 5355 y multicast de enlace local. (rfc-editor.org)
¿Desactivar LLMNR mejora la seguridad de verdad?
Sí: reduce una vía común de suplantación de resolución de nombres que puede derivar en captura de credenciales (p. ej., NTLM). (attack.mitre.org)
¿Se rompe algo al desactivarlo?
Normalmente no en entornos corporativos con DNS bien mantenido; puede afectar entornos “informales” o discovery legacy (impresoras sin DNS). (TECHCOMMUNITY.MICROSOFT.COM)
¿Cómo lo desactivo en Intune?
Desde Settings catalog → Administrative Templates → Network → DNS Client → Turn off multicast name resolution = Enabled. (Microsoft Learn)
¿Cómo lo desactivo en Linux?
En systemd-resolved, configura LLMNR=no en resolved.conf para deshabilitarlo. (man.archlinux.org)