Hola a todos y feliz año nuevo!

Esta es la primera entrada del año 2016 en THW y en esta ocasión, han sido Eduardo Blázquez González ( aka Fare9 ) y Ilya Cabos Kobjak ( aka eijk ) quienes han querido colaborar en este espacio publicando una prueba de concepto utilizando Python para ejecutar un ataque DoS contra un contacto de whatsapp. Es una PoC en la que se expone el uso de librerías como Selenium para la interacción automatizada con sitios web, en este caso concreto, con whatsapp web. Sin más preambulos, os dejo su aportación.

Un saludo y Happy Hack!
Adastra.

 

Estás intentando disfrutar de tu hobbie favorito en tu dia libre, pero cada 3 segundos tu teléfono te distrae porque te está llegando un tren de mensajes de whatsapp… Ese es el tipo de cabreo del que nació este programa. Pocas cosas hay tan estimulantes para la mente que una buena tarde de estudio con  colegas de profesión y más aún si dichos compañeros tiran por ramas tan dispares como son la seguridad informática y la inteligencia artificial. Así que molestos del “brrrr” del móvil al llegar un whatsapp, y con una vulnerabilidad de este servicio de mensajería recientemente publicada, decidimos echar mano a un portátil con una distro de linux instalada, unos cuantos conocimientos en python y ganas de joder la marrana. Sabíamos cómo funcionaba la vulnerabilidad de whatsapp, la teoría era desde luego sencilla:
“Si envías un montón de caritas sonrientes, el whatsapp peta”
Bien, en ninguna de las webs que he leído se explica exactamente qué pasa o por qué solo afecta a los sistemas Android… Una de las teorías con las que jugamos fue que la traducción simultánea que la versión de whatsapp de Android hace de los emojis de UTF-8 a imágenes png codificadas en hexadecimal consume recursos de forma descontrolada hasta que el sistema no puede más; la diferencia con iOS puede estar en que el pipeline de su renderizado de gráficos está optimizada para trabajar con el hardware sobre el que corre, o en la forma de tratar las cadenas que tienen como diferencia android (Java) e iOS (objective-C). Hicimos un sencillo script de consola en python, cuya ejecución abre un navegador y espera a que el usuario entre en la aplicación; una vez dentro nos pedirá el nombre de usuario de la víctima, el cual encontrará usando el buscador. En el caso de que hubiera más de una coincidencia, se pedirá que se seleccione uno de ellos según su orden en la lista (de 1 hasta N). Una vez hecho esto, se abrirá en el navegador el chat con el usuario seleccionado. En este punto el usuario debe hacer alarde de sus habilidades en ingeniería social para asegurarse de que la víctima “pique el anzuelo” escribiendo un mensaje personalizado que sepa captar el interés del objetivo. Será este el punto en el cual el ordenador empezará a bufar al tener que escribir 7000 veces el emoji de una bomba, provocando el crash de whatsapp. Aun así, no es nada en comparación con lo que sufrirá el móvil android del objetivo, quien observará consternado como su pantalla queda bloqueada y la conversación arruinada,
puesto que la única forma que tendrá de volver a hablar con el usuario es borrándola. Se trata de un script picado en no más de 30 minutos, por tanto no ha sido testeado en condiciones, ni se han corregido todos los posibles errores. Queda abierto para todo el que quiera probarlo y ver que en poco tiempo conociendo las herramientas es posible hacer algo interesante.

En esta repo de git viene el código y un instalador para Linux:
https://github.com/Fare9/WhatsappCrasher
Por último dar las gracias a Daniel Echeverry ( aka adastra ), por dejarnos publicar esta entrada en su blog “ the hacker way “, y con esto poder compartir un poco de nuestros conocimientos de forma pública a todos los interesados.
Ilya Cabos Kobjak ( aka eijk )
Eduardo Blázquez González ( aka Fare9 )