Uno de los parches
publicados por Microsoft el
pasado martes, el MS15-034,
está generando bastante expectación, sobre todo por las consecuencias que
podría acarrear su explotación en caso de que se encuentre la forma de llegar
hasta ella. Si esto último se confirma, podríamos
estar frente a un serio problema, veremos porqué.
El fallo se encuentra en "HTTP.sys". Este componente
implementa el conocido protocolo de capa de aplicación HTTP para cualquier
componente del sistema o aplicación que consuma u ofrezca recursos web. El
error se produce, según el propio boletín de Microsoft, al procesar una
cabecera HTTP especialmente manipulada.
Respecto a la cabecera, las pruebas de
concepto y exploits que han ido apareciendo se basan en la cabecera "Range". Esta cabecera permite a un
cliente generar una petición sobre un recurso especificando un rango de bytes
concreto. Esto optimiza el tráfico al permitir que un cliente disponga de un "trozo" de un recurso cuya
transmisión ha sido infructuosa o simplemente disponer de recursos de gran
tamaño en porciones adaptadas al criterio o capacidad del cliente.
Una vulnerabilidad similar (CVE-2011-3192) afectó
al servidor web Apache cuando se especificaban varios rangos solapados en
la misma petición. La explotación, al igual que en esta ocasión, era trivial, y
a diferencia de esta, fue usada para
tirar bastantes servidores antes de que se publicará un parche.
Volviendo al componente, HTTP.sys no es una
biblioteca de funciones al uso. Estamos hablando de un dispositivo del kernel
de Windows, corre en su espacio y sus permisos están asociados a System. Antes
de que las peticiones HTTP sean procesadas por un servidor son recibidas y
tratadas por HTTP.sys, algo que permite elevar el rendimiento al efectuar el
cacheo de peticiones directamente en espacio del kernel. Precisamente una
contramedida oficial pasa por la desactivación del cacheo de peticiones en
IIS7, aunque Microsoft ya avisa que esto podría causar un deterioro perceptible
del rendimiento del servidor.
Algo que venimos observando es que se le está
atribuyendo la vulnerabilidad a Microsoft IIS en exclusiva, el servidor
dominante en sistemas Windows. Por supuesto es el servidor web en el que todos
estamos pensando cuando hablamos de explotación, pero no podemos descartar
otros servidores o servicios que se apoyen en HTTP.sys.
Con todo esto podemos deducir que el impacto
que podría tener una ejecución remota de código arbitrario, a través de un
servidor web publicado en Internet con una simple petición HTTP, podría ser
desastrosa. HTTP.sys ya tuvo en 2013 (MS13-039)
un fallo que causaba una denegación de servicio, se calificó entonces de
importante. Recordemos que Microsoft cataloga esta vulnerabilidad de crítica.
Los sistemas operativos afectados son Windows
7, 2008 R2, Windows 8 y 8.1, 2012 y 2012 R2. Es posible que esta vulnerabilidad
afecte a sistemas que ya no tienen soporte oficial, Microsoft no se ha
pronunciado al respecto. La vulnerabilidad tiene el CVE-2015-1635.
La prueba de concepto para evaluar la
afectación de un sistema puede lograrse a través de cualquier script o programa
que genere una petición HTTP con una cabecera Range en particular:
Range: bytes=0-18446744073709551615
Con la herramienta de línea de comandos 'curl' por ejemplo:
curl -v dirección-ip-a-probar/ -H "Host:
cualquiervalor" -H "Range: bytes=0-18446744073709551615"
Los próximos días, quizás
semanas, nos dirán si todo se queda en
una denegación de servicio o estamos frente a una amenaza bastante seria.
Más información:
Microsoft Security Bulletin
MS15-034 - Critical
Vulnerability in HTTP.sys Could Allow Remote
Code Execution (3042553)
una-al-dia (15/04/2015) Microsoft
publica 11 boletines de seguridad
una-al-dia (25/08/2011)
Denegación de servicio en Apache a través de Range header
una-al-dia (14/05/2013) Boletines
de seguridad de Microsoft en mayo
Boletín de seguridad de Microsoft
MS13-039 - Importante
Una vulnerabilidad en HTTP.sys
podría permitir la denegación de servicio (2829254)
David García
Se supone que ya existe un exploit para la ejecución remota de código a 12200$....
ResponderEliminarhttp://1337day.com/exploit/description/23531