Falla crítica de seguridad en Whatsapp y Telegram recien parchada.

A finales de enero de este año (2017) se reporto una falla crítica en whatsapp y telegram, la cual se notificó con suma urgencia ya que permitía el control total de la cuenta sin que la víctima se de cuenta de esto.
Una de las revelaciones más preocupantes que surgen de la reciente publicación de WikiLeaks es la posibilidad de que las organizaciones gubernamentales puedan comprometer WhatsApp, Telegram y otras aplicaciones de chat cifradas de extremo a extremo. Aunque esto aún no se ha probado, muchos usuarios finales están preocupados porque WhatsApp y Telegram usan cifrado de extremo a extremo para garantizar la privacidad del usuario. Este cifrado está diseñado para garantizar que sólo las personas que se comunican pueden leer los mensajes y nadie más en el medio.
Sin embargo, este mismo mecanismo también ha sido el origen de una nueva vulnerabilidad severa que se ha descubierto en la plataforma en línea de ambos servicios de mensajería - WhatsApp Web y Telegram Web. La versión en línea de estas plataformas refleja todos los mensajes enviados y recibidos por el usuario, y están totalmente sincronizados con el dispositivo de los usuarios.
Esta vulnerabilidad, si llego a ser explotada (obviamente fue explotada), habría permitido a los atacantes tomar completamente las cuentas de los usuarios en cualquier navegador, y acceder a las conversaciones personales y de grupo de las víctimas, fotos, videos y otros archivos compartidos, listas de contactos y más. Esto significa que los atacantes podrían potencialmente descargar sus fotos y/o publicarlas en línea, enviar mensajes en su nombre, exigir rescate e incluso hacerse cargo de las cuentas de sus amigos. Lo más terrible de este asunto es que esta falla fue explotada en espionaje politico en ciertos gobiernos latinoamericanos.
La explotación de esta vulnerabilidad comienza con el atacante enviando un archivo de aspecto inocente a la víctima, que contiene código malicioso. El archivo se puede modificar para que contenga contenido atractivo para aumentar las posibilidades de que un usuario lo abra. Una vez que el usuario hace clic para abrirlo, el archivo malicioso permite al atacante acceder al almacenamiento local de WhatsApp y Telegram, donde se almacenan los datos del usuario. A partir de ese momento, el atacante puede obtener acceso completo a la cuenta del usuario ya los datos de la cuenta. El atacante puede enviar el archivo malicioso a todos los contactos de la víctima, abriendo una puerta peligrosa a un ataque potencialmente extendido a través de las redes WhatsApp y Telegram.
Dado que los mensajes se cifraron sin ser validados en primer lugar, WhatsApp y Telegram no tenían acceso al contenido, por lo que no pueden evitar que se envíen contenidos maliciosos.

Detalles tecnicos - Whatsapp
El mecanismo de archivos de carga de WhatsApp admite varios tipos de documentos como documentos de Office, PDF, archivos de audio, vídeo e imágenes.
Cada uno de los tipos admitidos se puede cargar y enviar a los clientes de WhatsApp como un archivo adjunto.
Sin embargo, el equipo de investigación de Check Point ha logrado evitar las restricciones del mecanismo al cargar un documento HTML malicioso con una previsualización legítima de una imagen con el fin de engañar a una víctima para que haga clic en el documento para aprovechar su cuenta.
Una vez que la víctima hace clic en el documento, el cliente web de WhatsApp utiliza la llamada de la API HTML 5 de FileReader para generar una URL BLOB única con el contenido del archivo enviado por el atacante y luego navega al usuario a esta URL.
El ataque a WhatsApp consiste en varias etapas que se mencionan a continuación.
Primero, el atacante crea un archivo html malicioso con una imagen de vista previa:


El cliente web de WhatsApp almacena los tipos de documento permitidos en una variable de cliente denominada W ["default"]. DOC_MIMES esta variable almacena los tipos de Mime permitidos que utiliza la aplicación.


Dado que una versión encriptada del documento se envía a los servidores de WhatsApp, es posible añadir un nuevo tipo de Mime como "text / html" a la variable para evitar la restricción del cliente y cargar un documento HTML malicioso.


Después de agregar el tipo malicioso de documento Mime a la variable cliente, el cliente cifra el contenido del archivo utilizando la función encryptE2Media y, a continuación, la carga encriptada como BLOB al servidor WhatsApp.


Además, cambiar el nombre y la extensión del documento y crear una falsa vista previa modificando las variables de cliente hará que el documento malicioso sea más atractivo y legítimo para la víctima.
Este es el resultado:


Una vez que haga clic en el archivo, la víctima verá un gato divertido bajo el objeto de blob que es un objeto html5 FileReader en web.whatsapp.com. Eso significa que el atacante puede acceder a los recursos en el navegador en web.whatsapp.com


Simplemente viendo la página, sin hacer clic en nada, los datos de almacenamiento local de la víctima serán enviados al atacante, lo que le permitirá hacerse cargo de su cuenta.
El atacante crea una función JavaScript que comprobará cada 2 segundos si hay nuevos datos en el backend y reemplazará su almacenamiento local por la víctima.
Parte del código del atacante:


El atacante será redirigido a la cuenta de la víctima, y podrá acceder a cualquier elemento de la misma.


WhatsApp Web no permite que un cliente tenga más de una sesión activa a la vez, así que después de que el atacante robe la cuenta de la víctima, la víctima recibirá el siguiente mensaje:


Es posible superar esta situación desde la perspectiva del atacante añadiendo un código JavaScript como este:


El archivo HTML malicioso que hará que la ventana del navegador del cliente se bloquee y permita al atacante controlar la cuenta sin interferencias, aunque el atacante se conectará a la cuenta de la víctima mientras este este conectado en la cuenta (conectado al internet). Cerrar el navegador no sacara al atacante de la cuenta y el atacante podrá acceder a la cuenta de usuario siempre que lo desee.

Detalles tecnicos - Telegram
Telegram admite varios tipos de documentos que se enviarán dentro de la aplicación Web Telegram, pero sólo los tipos de documentos de imagen y vídeo se almacenan en la sección Filesystem del navegador.
Se ha logrado evitar la política de carga de Telegram y cargar un documento HTML malicioso con un tipo mime de un archivo de video "video/mp4". Luego, se pudo enviarlo al lado de la víctima en un canal cifrado a través de servidores de telegrama. Una vez que la víctima abra el video en una nueva pestaña del navegador, comenzará a reproducirse y los datos de la sesión de los usuarios serán enviados al atacante.
El ataque a Telegram consta de varias etapas, descritas a continuación.
En primer lugar, el atacante crea un archivo html malicioso que también contiene los datos de vídeo.


El cliente de Telegram almacena el tipo mime de archivo bajo objeto t, y durante el proceso de carga verifica si coincide con un tipo de mime de video o imagen. En un caso de una coincidencia, el archivo se almacenará en el cliente FileSystem URI.


Puesto que se envía una versión cifrada del archivo a los servidores de Telegram, es posible modificar el tipo mime a "video/mp4", para evitar la restricción del cliente y cargar un documento HTML malicioso en Telegram en forma de video.
Después de modificar el tipo de mime del documento malintencionado, el cliente lo carga encriptado al servidor Telegram.
El resultado será un archivo malicioso transparente que se parece a un video legítimo con una carga útil maliciosa dentro:


Una vez que el usuario reproduzca el video, el archivo html se cargará en la memoria del navegador en web.telegram.org. El usuario debe abrir el video en una nueva pestaña para acceder al recurso en el navegador en el URI de FileSystem en URI web.telegram.org.
Al ver el video en una nueva pestaña, los datos de almacenamiento local de la víctima serán enviados al atacante, lo que le permitirá hacerse cargo de su cuenta.
Para ello, el atacante crea una función JavaScript que comprobará cada 2 segundos si hay nuevos datos en el backend y reemplazará el almacenamiento local por el almacenamiento local de la víctima, como se ve en los fragmentos de código WhatsApp POC.
El atacante será redirigido a la cuenta de la víctima, y podrá acceder a cualquier elemento de la misma.


El usuario no es consciente de la toma de cuenta ya que Telegram permite a los usuarios mantener tantas sesiones activas como quieran al mismo tiempo.

Prueba de concepto: 


Comentarios

Entradas populares