Buscar dentro de este blog

viernes, 11 de junio de 2010

Ejecución de comandos arbitrarios en XP y 2003

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.

Más info:

http://seclists.org/fulldisclosure/2010/Jun/205

http://blogs.technet.com/b/msrc/archive/2010/06/10/windows-help-vulnerability-disclosure.aspx

Gracias Puky por la data :)

1 comentario: