Tavis Ormandy ha publicado, en la lista de Full
Disclosure, los detalles y prueba de concepto de una vulnerabilidad sin
parche que permite ejecutar comandos arbitrarios a través de una URL. El
fallo descubierto se halla en Microsoft Windows Help Centre, la
aplicación para acceder a la documentación de ayuda.
Dicha
aplicación registra un manejador de protocolo con el esquema "hcp://"
para acceder a la documentación a través de URLs. Cuando se accede a
través de una URL a la documentación, el manejador del nombrado esquema
"hcp", añade el parámetro de línea de comandos "/fromhcp" para indicarle
a la aplicación del centro de ayuda que el recurso ha sido solicitado
desde una URL; restringiendo el uso de parámetros y permitiendo sólo un
conjunto de documentos que se encuentran en una lista blanca.
Ormandy
ha encontrado un método para evadir esta lista blanca, basado en un
error en la implementación de la función que comprueba las URL.
El
fallo reside en la función "MPC::HTML::UrlUnescapeW", usada para la
normalización y filtrado de la URL antes de ser validada. Dicha función
usa a su vez la función "MPC::HexToNum" para convertir los caracteres
escapados (p.ej %20 al valor de espacio en blanco) a su correspondiente
valor numérico.
Sin entrar en detalles técnicos, básicamente, la
función "MPC::HTML::UrlUnescapeW" omite el chequeo del valor de retorno
de "MPC::HexToNum", permitiendo envenenar la cadena final y evadir la
restricción de lista blanca.
Para proseguir con la explotación
Ormandy necesitaba una página de la documentación que cumpliese con
varias condiciones, poder ser invocado directamente desde una URL y con
un fallo de cross-site scripting que le permitiese incluir una cadena
manipulada.
Pudo localizar la página de documentación e
identificar el XSS, pero curiosamente no pudo explotarlo (Ormandy no es
especialista en Web). Así que tuvo que echar mano de su compañero en
Google y experto en seguridad web y navegadores Michal Zalewski, muy
nombrado últimamente por su escáner de seguridad web Skipfish.
Con
la ayuda de Zalewski y de una propiedad exclusiva de Internet Explorer
el XSS pudo ser explotado. En ese momento se disponía de un método para
evadir la lista blanca, una página de documentación de ayuda instalada
por defecto y con un XSS explotable. Al ejecutarse la página en una zona
privilegiada tan solo bastaba incluir un comando en la cadena para
provocar su ejecución.
¿Acabó aquí?
Hasta ahora está claro
que con una URL con el manejador "hcp://" y apropiadamente manipulada se
pueden inyectar comandos, pero cuando se invoca a través del navegador
el usuario es advertido y aunque es conocida la incapacidad retentiva de
la mayoría para hacer click en aceptar, a Ormandy no le pareció una
forma elegante de finalizar con su investigación.
Consiguió un
método para evitar la atención del usuario mediante el uso de archivos
ASX (Advanced Stream Redirector). Windows Media Player 9 usa estos
archivos, con estructura XML, para almacenar listas de reproducción. El
navegador invoca el reproductor cuando abre un archivo con extensión
".asx". Entre los valores a incluir en dicho archivo uso el elemento
"HTMLView" y le dio como valor una URL hacia una página HTML que
contiene, ahora si, la URL maliciosa.
No deja de resultar curioso,
en este caso en particular, el encadenamiento de explotaciones y
descubrimientos que llevan al investigador desde un punto de intuición
hasta la consecución de sus objetivos.
Son vulnerables los
sistemas Windows XP y Windows Server 2003.
Mike Reavey, director
del MSRC de Microsoft ha publicado una respuesta en el blog del MSRC, en
la que ofrece una contramedida y explica el poco tiempo que el
investigador les ha otorgado, para solucionar el fallo, antes de hacer
públicos los detalles.
Más Información:
Microsoft Windows Help Centre Handles Malformed Escape Sequences Incorrectly
http://seclists.org/fulldisclosure/2010/Jun/205
Windows Help Vulnerability Disclosure
http://blogs.technet.com/b/msrc/archive/2010/06/10/windows-help-vulnerability-disclosure.aspx
Autor: David García
Fuente: Hispasec
No hay comentarios.:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!