Analizando el impacto de las vulnerabilidades FakesApp y descifrando el tráfico de WhatsApp Web con “Whatsapp Decoder” (Parte 2/2)

jueves, 7 de febrero de 2019

Retomamos el post anterior, en el cual realizamos la introducción a las vulnerabilidades FakesApp publicadas por los investigadores de Check Point y descubrimos el proceso para poder instalar la extensión WhatsApp Decoder y descifrar correctamente el tráfico de WhatsApp. En este punto, si quisiésemos replicar el ataque, el proceso a seguir sería: cambiar la cadena de texto entrante de un mensaje descifrado por la que queremos, modificar varios parámetros, cifrar el mensaje de nuevo, copiarlo a la extensión en base64, decodificarlo y por último, enviarlo.

Veamos el proceso para comprobar qué sucede. El siguiente mensaje pertenece a una conversación que mantenía con mi padre durante el rato que preparaba las capturas para este post:

whatsapp decryption and encryption imagen

De cara a probar la vulnerabilidad, sustituyo el mensaje para indicar que el producto que “menos” se vende (en vez del que "más") es la telefonía móvil.

WhatsApp desencriptación y encriptación imagen

Según los investigadores, antes de cifrarlo, es necesario modificar el valor ID a cualquier otro que no exista en la base de datos, así como también el messageTimeStamp. Una vez hecho esto, basa con seleccionar “Encrypt” y trasladar este paquete cifrado a la pestaña de “Intercept” donde tenemos parado el mensaje original entrante para sustituir una cadena por otra.

WhatsApp desencriptación y encriptación imagen 2

Una vez que tenemos el mensaje modificado en base64 seleccionado, basta con copiarlo en la pestaña de “Intercept", y presionar posteriormente “Ctrl-Shift-B” para volver a decodificarlo de base64.

burp suite community edition imagen

Ahora solo queda  presionar el botón “Forward” para enviar el mensaje modificado a nuestra sesión de WhatsApp Web. Cabe aclarar que en algunas ocasiones y a pesar de seguir los pasos indicados, el mensaje modificado puede no llegar a visualizarse en la sesión web.

conversación WhatsApp imagen

Como podemos observar, el mensaje modificado no se llega a visualizar en la conversación de WhatsApp Web, por lo que no fue posible replicar el ataque. No obstante, en otros casos sí que ha sido posible reproducirlo tal como se puede ver en la siguiente captura, durante una prueba, donde he conseguido modificar un mensaje enviado por mi amigo David con emoticonos, sustituyéndolo por un texto.

conversación WhatsApp con emoticonos imagen

Tal y como se muestra en la imagen, en el mensaje que le envío, la cita incluye la cadena de texto “guapo” que él jamás llegó a enviar. Fue el segundo mensaje con emoticonos el que modifiqué en mi sesión de WhatsApp Web tras realizar el proceso comentado, como se puede ver en la siguiente imagen.

Emojis WhatsaApp imagen

En este punto, bastó responder en la sesión de WhatsApp Web para que tanto él como yo, viéramos ese texto en la cita, consiguiendo reproducir palabras que él no había escrito y replicar así el ataque FakesApp.

Conclusiones finales
Como hemos visto,  en algunos casos es posible reproducir en tiempo real el ataque FakesApp pero en otros no. Por otra parte, se trata de un proceso relativamente complejo que ha de ser llevado a cabo en un corto instante de tiempo. Aun así, es igualmente interesante conocer el proceso en aras de poder utilizar esta extensión para descifrar mensajes y analizar el protocolo de comunicación de WhatsApp.

A su vez, a la hora de analizar el tráfico de Whatsapp Web, además del tráfico cifrado que hemos podido descifrar, es posible ver que se transmiten algunos paquetes en texto claro, que no tienen que ver con las conversaciones pero sí con temas de signaling.

Tráfico WhatsApp web

Del tráfico que se visualiza en la imagen anterior, se puede deducir que el usuario está manteniendo una conversación con el contacto que se muestra en el parámetro “id” y que dicho contacto está en ese momento en estado “composing”, equivalente a cuando visualizamos el estado “escribiendo…”.

Esto abriría las puertas a que un atacante pudiese obtener información acerca de las personas con las que mantiene conversaciones un usuario (con sus números de teléfono), así como otra información que pudiese obtener de estos paquetes. Todo ello, claro está, en entornos donde sea posible realizar un ataque man in the middle que además permita intercepción de HTTPS.

Como hemos visto, las vulnerabilidades FakesApp no tienen impacto sobre la confidencialidad de las conversaciones, aunque sí que pueden generar cierto caos en algunos escenarios, sobre todo combinadas con ingeniería social. No obstante, su explotación requiere de ciertas condiciones y los mensajes que se quieran modificar han de ser interceptados y manipulados en tiempo real. No obstante, no deja de ser un trabajo de investigación exhaustivo y muy interesante, que puede ayudar a seguir profundizando en el conocimiento de detalles técnicos acerca de uno de los sistemas de mensajería instantánea más utilizados en el planeta.

También te puede interesar:
» Analizando el impacto de las vulnerabilidades FakesApp y descifrando el tráfico de WhatsApp Web con “Whatsapp Decoder” (Parte 1/2)

Deepak Daswani
Chief Security Ambassador de ElevenPaths
@dipudaswani



No hay comentarios:

Publicar un comentario