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
Fuente: http://www.elladodelmal.com/2014/09/crear-una-javascript-botnet-con.html
No hay comentarios:
Publicar un comentario