Categories: SeguridadVirus

Debilidad en protocolo de autenticación NTLM

Cuando un cliente se conecta a un recurso de la red, se utiliza la autenticación NTLM para enviar las credenciales de usuario incluyendo la contraseña. Un servidor SMB malévolo puede utilizar esta información para autenticarse en el cliente, llegando a poder obtener pleno control sobre los recursos compartidos en el cliente (incluyendo, por ejemplo, a C$).

SMB (Server Message Block) es el protocolo utilizado para la compartición de recursos (carpeta compartida, una impresora, un puerto serie o mecanismos de comunicación como pueden ser los named pipes) entre máquinas basadas en los sistemas operativos Windows. Para las funciones de autenticación de usuarios se utiliza otro protocolo, NTLM (NT Lan Manager).

El proceso de autenticación NTLM es, de forma resumida, el siguiente: cuando el cliente se conecta a un servidor, éste responde enviando un testigo generado aleatoriamente (el desafío). El cliente aplica una función hash a este testigo utilizando la contraseña del usuario y envía el resultado al servidor. En el momento en que éste recibe la respuesta, comprueba su validez verificando que coincide con el resultado de aplicar al desafío enviado la misma función hash con la contraseña almacenada en su base de datos. Gracias a este método, se puede verificar la identidad del usuario sin que sea necesario que la contraseña circule por la red.

Por diseño, en el momento en que un cliente accede a un recurso compartido realiza un intento de autenticación utilizando las credenciales del usuario activo. Si estas credenciales no son aceptadas por el servidor, la máquina cliente muestra al usuario una ventada para que introduzca el usuario y contraseña para acceder al recurso compartido.

Es precisamente esta característica, la de intentar autenticarse automáticamente con las credenciales del usuario activo, la que puede permitir a un servidor malicioso obtener la información de las credenciales del usuario.

Todas las versiones de Windows son vulnerables

Como ejemplo de ataque, el atacante envía a la víctima un mensaje HTML que contiene un objeto que reside en un recurso compartido del servidor malévolo (SM1). Al visualizar este mensaje, la máquina cliente (C1) intentará conectar con el recurso compartido.

El servidor malévolo (SM1) cuando recibe la petición de desafío, en lugar de enviar éste lo que hace es una petición de conexión a un recurso compartido a una estación cliente (C2). Este cliente malévolo, C2, responde enviando una petición al servidor SMB de la víctima (SC1).

El servidor SC1 envía su desafío a la máquina cliente del atacante, C2. A continuación, C2, envía el desafío al servidor malévolo (SM1) y éste a su vez lo envía a la máquina cliente (C1).

El cliente C1 recibe el desafío y aplica la función hash con su contraseña. A continuación devuelve la respuesta al servidor malévolo (SM1).

El servidor malévolo (SM1) reenvía esta respuesta a la máquina cliente C2. Éste último, C2, redirecciona esta respuesta hacia el servidor SMB de la víctima (SC1). En este punto, SC1 recibe la respuesta y la considera como válida.

Como resultado de este galimatías, la máquina cliente del atacante (C2) dispone de una conexión de red validada contra la máquina cliente (C1).

Resumiendo y simplificando: el ataque consiste en aprovechar una petición de autorización de acceso a un recurso compartido en un servidor malévolo para construir y validar una conexión autenticada contra la máquina que está realizando la petición.

Como puede comprobarse, el ataque es relativamente complejo y para poder ser aprovechado es preciso disponer de un buen conocimiento del funcionamiento de los protocolos SMB y NTLM.

No obstante, se tiene constancia de la existencia de pruebas de concepto que muestran la viabilidad de este ataque. Todas las versiones de Windows son vulnerables, incluyendo Windows 9x/ME (vulnerable, aunque no se ha verificado), Windows NT 4 (vulnerable, aunque no se ha verificado), Windows 2000 Professional/Server (verificado), Windows XP (verificado) y Windows 2003 Server (vulnerable, aunque no se ha verificado).

La respuesta es afirmativa. Este ataque sólo puede utilizarse en los sistemas que utilicen la autenticación NTLM. Aquellos que utilicen la autenticación NTLM2 no son vulnerables. NTLMv2 está desactivado por defecto, pero está disponible en NT 4.0 (a partir del Service Pack 4) y versiones posteriores. NTLMv2 dispone de mecanismos adicionales de seguridad mediante la utilización de claves de sesión únicas.

El ataque tampoco puede utilizarse cuando se utiliza la autenticación Kerberos, que es el mecanismo de autenticación utilizado por defecto en el Active Directory (Windows 2000 y posterior).

Redacción

Recent Posts

Google paga 5.000 millones de dólares para resolver una demanda colectiva

Los usuarios denunciaban que la compañía los había rastreado incluso cuando usaban el modo privado…

4 meses ago

Las pymes valencianas pueden optar a ayudas de 5,5 millones de euros por proyectos de I+D

El Instituto Valenciano de Competitividad Empresarial financiará aquellas iniciativas que puedan solucionar incertidumbres científicas o…

4 meses ago

La guerra entre Israel y Gaza no acobarda a los inversores extranjeros de startups

Solo en el cuarto trimestre las empresas emergentes del país han levantado 1.500 millones de…

4 meses ago

Navarra ya cuenta con más de 80 startups

La región tiene 13 scaleups y destaca por sus empresas emergentes de salud y agrotech.

4 meses ago

Las startups valencianas progresaron adecuadamente en 2023

Valencia ha atraído en el primer semestre del año 30 millones de euros de inversión…

4 meses ago

El New York Times acusa a Open AI y Microsoft de infringir sus derechos de autor

El diario estadounidense demanda a las dos compañías tecnológicas por haber usado sus contenidos para…

4 meses ago