Resumiendo el proceso de login con WhatsApp Web, el Servidor envía un código QR al navegador del usuario, el cual debe ser escaneado por la aplicación del teléfono para que verifique el login contra el servidor. Si es válido el servidor enviará el token correspondiente directamente al navegador:
Si nos fijamos en el esquema anterior, el vector de ataque podría ser perfectamente un escenario típico de phising. El atacante sólo tiene que interceptar el código QR y presentárselo a la víctima mediante una página falsa, de tal manera que cuando lo escanee con el móvil y se valide, también recibirá el token que le permitirá autenticarse en WhatsApp Web:
Por seguridad, WhatsApp no muestra un código QR estático si no que el mismo va cambiando cada pocos segundos, algo que solventa perfectamente la herramienta que veremos a continuación capturándolo continuamente mediante scripting y enviándolo a la víctima mediante websockets.
Se trata de "whatsapp-phishing" del alemán Martin Wagner (Mawalu) a la que empezaremos a echarle un vistazo, ya sabéis, siempre con propósitos educativos:
Funcionamiento
La herramienta utiliza selenium para obtener los códigos QR y express.js + socket.io para mostrarlos en una página aparte. Su funcionamiento es el siguiente:
- El programa inicia un servidor http y socket.io.
- Si un nuevo cliente se conecta a socket.io, la aplicación realiza una solicitud a una instancia de selenium para iniciar un nuevo navegador y conectarse a web.whatsapp.com.
- Posteriormente se obtienen los datos del código QR y los envia al cliente a través de la conexión websocket.
- El javascript del cliente entonces muestra el código QR al usuario.
- Si la víctima explora el código con su teléfono, el document.cookie y localStorage del navegador de selenium se descargan en un archivo en la máquina del atacante.
- Los datos adquiridos se pueden utilizar para iniciar sesión en la cuenta de la víctima utilizando cualquier navegador.
Limitaciones
- El usuario verá el navegador adicional cuando enumere sus dispositivos autenticados en Web Whatsapp.
- La víctima recibirá una advertencia si un navegador adicional se registra en el cliente web mientras está utilizando Whatsapp Web.
- Sigue siendo un ataque de ingeniería social: la víctima tiene que ser engañada para permitir el acceso.
Fuente. blog.segu-info.com.ar