domingo, 13 de junio de 2010

Ejecución de comandos arbitrarios en Microsoft Windows XP y Windows Server 2003

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.

¿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.
--
Fredy Paternina Matos
Fuente: http://www.hispasec.com/unaaldia/4247

No hay comentarios:

Publicar un comentario