miércoles, septiembre 24, 2014

Crear una JavaScript Botnet con dispositivos Android

El día 1 de Septiembre se hizo noticia la vulnerabilidad publicada por el investigador Rafay Baloch detectada en dispositivos Android previos a la versión 4.4, que había sido identificada con el CVE-2014-6041. En ésta se reporta que el componente WebView de versiones anteriores al framework 4.4 permiten la evasión de su mecanismo de seguridad SOP (Same Origin Policy o Política del Mismo Origen), que es un control que deben implementar los clientes web para limitar que sólo ante determinadas circunstancias un documento web pueda cargar o modificar código en otro si estos están ubicados en orígenes diferentes.

Figura 1: Dispositivos Android vulnerables a bug del XSS Universal

El alcance de esta vulnerabilidad es notable ya que se estima que actualmente en torno al 75% de los dispositivos Android se encuentran en versiones anteriores a la 4.4, y en estos dispositivos suele estar instalado de serie el cliente Web Android Open Source Browser, el cual implementa este componente WebView vulnerable, y además el bug no se reduce únicamente a este componente, ya que como se ha hecho público en otros estudios realizados existen más clientes web vulnerables como Maxthon Browser o CM Browser.

Figura 2: Cuota de mercado de versiones de Android

En cuanto a la vulnerabilidad reportada, cabe destacar lo simple que es realizar una explotación como Prueba de Concepto ya que lo único que hace falta para evadir el SOP en este componente es incluir un byte nulo en un manejador con el código que queremos ejecutar en el contexto del origen de destino:

Figura 3: Inserción del null byte \u0000 para lograr el salto de SOP

Si accedemos a la página con el código anterior desde un navegador que contenga este componente vulnerable veremos cómo somos capaces de ejecutar el script insertado en el manejador onclick.

Figura 4: Código ejecutado saltándose la política SOP

Este método podría ser usado tanto para extraer información como el contenido HTML de una página web desde la sesión de un usuario, el envío de formularios sin el consentimiento del usuario, o  ataques de session hijacking, entre otros.

Figura 5: Explotación del bug desde Metasploit sobre una distribución Kali Linux

Sea como sea la historia de esta vulnerabilidad no acabó en su publicación y desde el día 7 de Septiembre disponemos de un módulo para Metasploit que en su configuración por defecto extraerá la cookie y el contenido HTML que el usuario ve al acceder a la página web.

Figura 6: Extracciíon de la cookie de sesión con el módulo de Metasploit

Es interesante destacar las opciones adicionales que incluye el módulo, ya que nos permitirán jugar con certificados, ejecutar nuestro propio código script si lo definimos en la opción del módulo CUSTOM_JS. Es en este punto donde los más juguetones están aprovechando para mediante una campaña, por ejemplo de spam enviado a usuarios de versiones Android vulnerables, cargar otros scripts tan interesantes como BeEF para hacerse una JavaScript Botnet de dispositivos Android, además de ofrecer otros mecanismos menos sutiles para hacer por ejemplo evasión de las cabeceras X-Frame-Options.

Figura 7: Inyección de scripts personalizados de control

Si a este grave fallo de seguridad le sumamos la fragmentación de la plataforma Android y el abandono por parte de proveedores de dispositivos y adaptaciones del sistema operativo, nos damos cuenta de que estamos ante una situación muy complicada ya que aunque se han publicado parches para corregir este fallo (aquí y aquí) un alto porcentaje de dispositivos no serán actualizados y mantendrán esta vulnerabilidad.

Autor: Miguel Ángel García (@nodoraiz)
Developer en Eleven Paths

2 comentarios:

  1. waoo entonces son muchos los terminales que estan expuestos y yo que por donde vivo no conozco ninguno que pase de la version 4.2 que es con la que viene de fabrica.... gracias por la info...

    ResponderEliminar
  2. ¿Y que navegadores se podrian utilizar para evitar el fallo? Yo poseo un Samsung Galaxy Note N-7000 y un Samsung Galaxy Ace, ambos con versiones anteriores a la 4.4.
    Gracias

    ResponderEliminar