Como desactivar LLMNR en Windows o Linux y por qué te interesa

Es posible que ya hayas oído anteriormente hablar de esto, sobre todo si has investigado acerca de hardening en equipos Windows o Linux. Particularmente son los equipos con sistema operativo de Microsoft los que más utilizan este protocolo.
LLMNR equivale a Link Local Multicast Name Resolution y es un protocolo utilizado para resolver nombres de hosts según sus IPs, logrando esto sin necesidad de que exista un servidor DNS local.
Es decir, es una resolución de nombres basada en un paquete multicast (enviado de un equipo al resto de hosts de la red) que informará a todas las interfaces que escuchan de que son el host autoritativo para futuras búsquedas sobre sí mismos.
Esto se consigue con el envío de un paquete al puerto 5355 UDP hacia la dirección de red multicast (bajo capa 2 de modelo OSI, exclusivamente).

¿Es necesario LLMNR? ¿Qué problemas plantea?
Una preguntra lógica ¿no?, no queremos romper nada en nuestra red local y que nos llame el jefe pidiendo explicaciones. Normalmente, en un entorno doméstico la respuesta es simplemente «hazlo tranquilamente», pero en una empresa las cosas son algo más complejas.
LLMNR resultaba ciertamente útil, pero en su momento, en aquellos días donde los servidores DNS no estaban tan extendidos debido a su coste y en los casos en que se configuraba una red ad-hoc. Estos casos de uso han decaído y son la excepción más que la norma.
Era algo que tenía sentido para resolver rápidamente nombres de red en la misma subred. El problema es que los atacantes vieron pronto que el protocolo LLMNR no tiene protección frente a suplantación, pudiendo facilitar ataques MitM u hombre en el medio.
Es decir, que un actor malicioso que consiga situarse en un punto más cercano que el servidor o host remoto al que se dirige la consulta, podría decir ser quien no es y engañar a la otra parte, pues se presume siempre que los mensajes corresponden de su emisor único y legítimo. Es un poco como el WEP (Wired Equivalent Protection), un estándar de una época en que no se miraba por la seguridad.

Si un atacante consiguiera que tus clientes comiencen a volcar hashes NTLMv2, lo único que le quedará por hacer es crackearlos, algo que es posible que logre en poco tiempo, según las circunstancias.
Ejemplo de un ataque realizado con Responder. El servidor malicioso quea a la espera de que un cliente busque un recurso de red. Al no encontrar el recurso, el cliente con Resolución de nombres de Enlace Local envía un mensaje multicast preguntando ¿Quién tiene el recurso \\Nooo?.
El servidor responde al incauto cliente «Yo, yo lo tengo». Una vez el usuario accede, se vuelca el contenido de su hash NTLM en el servidor. Llegado a este punto, el hacker podría decidir incluso reenviar la solicitud a un servidor legítimo.

En definitiva, en la mayor parte de los casos se puede desactivar LLMNR de forma indiscriminada (¿tienes un servidor DNS bien configurado en tu entorno?) e incluso cuando no estemos seguros, merece la pena revisar si es viable aplicar la configuración porque es una vulnerabilidad importante.
Desactivar Link Local Multicast Name Resolution
Vamos al grano, a explicar cómo deshabilitar LLMNR en sistemas operativos Linux y Windows, algo que por suerte podemos hacer de varias formas y todas son sencillas.
Inhabilitar LLMNR en Windows y Windows Server
Abriremos el cuadro de diálogo Ejecutar, presionando la combinación WIN + R. Escribiremos lo siguiente y presionaremos Intro.
gpedit.msc
Al abrirse el Editor de Políticas de Grupo Local, navegaremos por Configuración del equipo > Plantillas administrativas > Red > Deshabilitar resolución de nombres multicast

Abriremos el ajuste y lo activaremos, pulsando luego sobre Aplicar o Aceptar.

Reiniciaremos el equipo, dado que las configuraciones de políticas sobre equipos (no usuarios) lo requieren.
En diferentes versiones de Windows Server puede diferir el nombre ligeramente. En Windows 10, por su parte, el nombre del ajuste es «Desactivar resolución de nombres de multidifusión«.

Desactivar LLMNR mediante el Registro de Windows
Abriremos un intérprete de comandos (cmd o Powershell) y lanzaremos estos 2 comandos, con permisos de administrador.
REG ADD “HKLM\Software\policies\Microsoft\Windows NT\DNSClient” REG ADD “HKLM\Software\policies\Microsoft\Windows NT\DNSClient” /v ” EnableMulticast” /t REG_DWORD /d “0” /f
Reiniciaremos el equipo.
Inhabilitar LLMNR en Linux
En sistemas operativos Ubuntu o Debian podemos seguir estos pasos, para otros consultadlo, aunque no diferirán demasiado.
Lo que haremos es editar el comportamiento del demonio de resolución de nombres. Para ello, el comando es:
nano /etc/systemd/resolved.conf

Es tan sencillo como establecer el valor en No para LLMNR. Reiniciaremos el equipo después.
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.
One thought on “Como desactivar LLMNR en Windows o Linux y por qué te interesa” Leave a comment ›