lunes, julio 25, 2022

(Web)ScrAPIficar & Weaponizar WhatsApp (3 de 4)

Tras ver en la parte anterior las posibilidades de automatizar acciones en WhatsApp Web a través de herramientas de QA Automation, o a través de un Plugin Malicioso en el navegador, toca pasar a crear las APIs de WhatsApp que podamos utilizar para generar nuestros scripts. Es decir, vamos a ver cómo a partir de técnicas de WebScraping creamos una API de WhatsApp, o lo que hemos llamado WebScrAPIficar WhatsApp.

Figura 23: (Web)ScrAPIficar & Weaponizar WhatsApp (3 de 4)

Para realizar este proceso, nosotros hemos creado una arquitectura basada en nuestro plugin del navegador que funciona de manera asíncrona con un BackEnd que recibe las peticiones de APIs desde cualquier script y deposita en la cola de acciones del plugin malicioso el comando. Este, va procesando todos los comandos desde la cola, y ejecutando las acciones en el navegador usando las citadas técnicas de WebScraping

Figura 24: Arquitectura de WebScrAPIficación de WhatsApp
con Plugin de navegador. Ejemplo de API de estado Online Yes/NO

Cuando termina de ejecutarlas, el backend recibe el resultado obtenido por el plugin, y se lo entrega al cliente para que pueda utilizarlo en sus scripts, generando cualquiera de los esquemas de "Weaponización de Features" que vimos en los ejemplos de las partes anteriores. Es decir, robo de cuentas con ingeniería social, ataques de D.o.S., averiguar la ubicación de tus contactos con los estados de WhatsApp, o dónde está una persona con un ataque de falsa canción de Spotify, monitorización de contactos 24x7, descubrimiento de nombres configurados por los contactos en sus cuentas de WhatsApp, etcétera.

En nuestra arquitectura el plugin está escrito en en JavaScript para hacer una versión de Firefox v95, el panel de control (C&C)  y su Base de Datos están montados con Flask y SQLite, y las APIs funcionan sobre Flask con WebTokens. Esto nos permite publicar APIs que son construida mediante procesos de WebScraping sobre WhatsApp Web. Las que hemos construido para esta demos son las que necesitábamos para los ejemplos descritos en las partes anteriores de este artículo:

Figura 25: APIs creadas con WebScraping en nuestra de
WebScrAPIficación de WhatsApp

Lo ideal para generar estos scripts es contar con APIs oficiales del producto, pero si no están disponibles, o si son incompletas porque no permiten acceder vía API a datos como los de los ejemplos de "leaks", entonces hacerlo mediante WebScraping es una opción que siempre está disponible, como hemos visto

Así, por ejemplo, mientas que en Telegram se puede acceder a saber si una cuenta está online o no mediante la API, como en el ejemplo que os publicamos hace ya unos años, en WhatsApp nosotros lo heos implementado mediante una WebScrAPIficación como la descrita en la imagen anterior. El resultado, al final, es el mismo, tal y como vimos en el artículo de "Cómo te pueden monitorizar 24x7 los horarios de conexión a tu WhatsApp".

Figura 27: Libros de Python para Pentesters y Hacking con Python
de Daniel Echeverri publicados en 0xWord.

En el vídeo siguiente, tenéis un ejemplo de cómo un script llamado "app_online_x_hours.py" escrito en nuestro querido Python, permite hacer uso de esas APIs, en concreto de la de "Online", para poder saber 24x7 si una persona está conectada o no. En el vídeo veréis a la izquierda la ejecución del script, y a la derecha lo que está pasando en el plugin que hace WebScraping de WhatsApp Web.

Figura 28: Script "app_online_x_hours.py" para monitorizar
a un contacto 24x7

A partir de este momento, teniendo las APIs, ya es muy sencillo ir implementando cada uno de los ataques que hemos citado anteriormente. En el siguiente vídeo, tenéis un ejemplo de cómo utilizar las APIs para implementar el ataque de robo de token de autenticación con ingeniería social, es el script "app_stole_auth.py" que vemos aquí funcionando.

Figura 29: Script "app_stole_auth.py"

Otro ejemplo que puede ser de utilidad, es la posibilidad de programar a una hora concreta el envío de un mensaje de WhatsApp, así, por ejemplo, puedes enviar mensajes mientras que estás dando una charla, o en otro lugar haciendo otra cosa. Un caso curioso que contaban nuestros amigos de Security By Default en la "Guía definitiva del crimen perfecto", donde se mandaban mensajes de WhatsApp en los momentos adecuados para cubrir el asesinato. 

Figura 30: Ejemplo de envío de mensajes programados de WhatsApp

Pero también se pueden utilizar para cosas más del día a día, como para que todos los días le pregunte a mamá, a los familiares, o las personas que vivan solas "¿cómo vas hoy, XXX?" y obligarlas a reportar el estado.

Figura 31: Ejemplo de "app_mama.py" para que le
pregunte todos los días a mamá cómo va el día.

O para cosas más útiles, como intentar coordinar una cena entre tres amigos, buscando la fecha y el tipo de cena que queremos reservar. Al final, teniendo una API y un buen Python, el número de scripts que puedes realizar es casi infinito. Ya sean para "Weaponizar Features", "WebScrAPIficar Leaks" o hacerte la vida más sencilla.

Figura 32: Ejemplo de cómo coordinar una cena con un script usando
las WebScrAPIs de WhatsApp Web

Podríamos seguir haciendo casos de uso, pero al final ya te puedes imaginar de que se trata esto. De poder hacerte las APIs que necesites de WhatsApp, tener una máquina con el WhatsApp Web WebScrAPIficado y usarlo a tu gusto. En la última parte le vamos a dar una pequeña vuelta de tuerca más aún.

¡Saludos Malignos!

******************************************************************************************
******************************************************************************************

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares