lunes, 30 de agosto de 2010

Vulnerabilidad crítica en Apple QuickTime permite ejecución de código

Rubén Santamarta ha descubierto un problema de seguridad en Apple QuickTime que permite la ejecución remota de código en todas las versiones de Windows (incluso con ASLR y DEP activos). El fallo, explotable con solo visitar una web con Internet Explorer, se debe a una parte del código obsoleta que parece haber sido "olvidada".

El fallo se encuentra en el control ActiveX QTPlugin.ocx cuando utiliza el parámetro _Marshaled_pUnk como puntero. Durante su estudio, Santamarta se encontró con un comportamiento un poco extraño. Tuvo que descargar una versión del fichero de 2004 para poder entender qué estaba ocurriendo. Así, descubrió que el código se utilizaba en una funcionalidad que fue eliminada de las versiones más recientes, aunque los programadores olvidaron eliminar ese parámetro _Marshaled_pUnk. No tenía funcionalidad aparente, pero estaba ahí. Santamarta ha descubierto cómo aprovechar esto para ejecutar código.

Además, ha conseguido eludir las últimas protecciones de Vista y 7 para evitar precisamente la ejecución de código. Usando una técnica conocida como ROP, (Return oriented programming), se vale de la librería WindowsLiveLogin.dll (cargada con el navegador por defecto) de Windows Live Messenger. Esta librería en memoria, permite al atacante "situarse" y que el puntero de instrucciones (lo que se va a ejecutar) apunte adonde necesita para poder ejecutar el código arbitrario. Dado que esta librería no viene activada por defecto para aprovechar ASLR, elude esta restricción.

En cualquier caso, Santamarta afirma que QuickTimeAuthoring.qtx y QuickTime.qts (ficheros que vienen con la instalación de QuickTime) podrían también servir como referencia en memoria para ejecutar código.

Todos los detalles se han hecho públicos y además, el exploit ha sido enviado al proyecto Mestasploit, por lo que es de suponer que no pasará mucho tiempo hasta que los atacantes comiencen a aprovechar el fallo para instalar malware.

Actualmente no existe ningún parche. Se recomienda activar el 'kill bit' del control ActiveX para evitar que Internet Explorer llame al componente afectado. Es posible hacerlo copiando el siguiente texto, guardándolo como archivo con extensión .reg y ejecutándolo como administrador:

---COPIAR DESDE AQUI---

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX
Compatibility\{02BF25D5-8C17-4B23-BC80-D3488ABDDC6B}] "Compatibility
Flags"=dword:00000400

---COPIAR HASTA AQUI---


Sergio de los Santos
ssantos@hispasec.com


Más información:

[0day] Apple QuickTime "_Marshaled_pUnk" backdoor param client-side
arbitrary code execution
http://reversemode.com/index.php?option=com_content&task=view&id=69

No hay comentarios:

Publicar un comentario en la entrada