Project Zero de Google ha publicado una prueba de concepto de un ataque que podía funcionar contra un Windows 10 totalmente parcheado, permitiendo a un actor malicioso ejecutar código JavaScript no confiable fuera del entorno de aislamiento.
Siendo más concretos, se trata de una variación del ataque WPAD/PAC resultado de la encadenación de diversas vulnerabilidades relacionadas con PAC y el archivo JScript.dll de Windows, de forma que se puedan ejecutar órdenes remotas sobre el ordenador de la víctima. En total, el equipo de Project Zero ha encontrado 7 vulnerabilidades en el fichero JScript.dll, los cuales abren la puerta a un ataque que podía ser ejecutado incluso en una versión muy actualizada de Windows 10 Fall Creators Update de 64-bit.
Los ataques contra el protocolo Web Proxy AutoDiscovery (WPAD) están unidos en cómo los navegadores utilizan Proxy Auto-Configuration (PAC) para navegar por la solicitudes HTTP y HTTPS. Los ficheros PAC contienen JavaScript que indicando qué proxy necesita usar un navegador web para obtener una URL específica. Si un PAC malicioso es introducido en el navegador, este permitiría a un atacante comprobar la URL de cada petición que se haga desde la mencionada aplicación.
Sin embargo, lo descubierto por Project Zero no es nuevo, ya que se han dedicado a llevar más allá el ataque UNHOLY PAC, que fue identificado en su momento por SafeBreach y está relacionado con una técnica de ataque man-in-the-middle descubierto por Contexto Information Security. Dicha técnica permitía a un atacante ver la URL entera de cada sitio web visitado incluso si el tráfico estaba protegido por HTTPS. Los miembros de Project Zero han conseguido llevar a cabo un vector de ataque más complejo y poderoso que se apoya en el motor de JavaScript de Windows, encargado de interpretar los ficheros PAC con JavaScript.
Las vulnerabilidades fueron publicadas el lunes, por lo que a Microsoft le ha dado tiempo a parchear cinco de las siete encontradas, mientras que las otras dos ya estaban resueltas desde el mes de octubre. Por otro lado, desde Project Zero recalcan que los ataques contra los navegadores web han evolucionado de estar orientadas a DOM a ir directamente contra los motores de JavaScript, una tendencia posiblemente derivada de que se puede ejecutar JavaScript sin necesidad de la interacción de un navegador web.
Los investigadores encadenaron dos fallos específicos de JScript.dll y se han apoyado en otras técnicas para saltarse las mitigaciones de seguridad incluidas en Windows. Luego llevaron a cabo una escalada de privilegios para mover de la cuenta de Local Service, donde se ejecuta el servicio WPAD sin permisos, a SYSTEM. Además, han recomendado a Microsoft inhabilitar WPAD por defecto y aislar el intérprete JScript dentro del mencionado servicio.
Estas son las siete vulnerabilidad halladas por Project Zero: