27 jul. 2017

Whatsapp-Phishing: cómo robar la sesión de un usuario de WhatsApp Web

Desde 2015 podemos usar WhatsApp Web mediante un navegador previamente “pareado” con nuestro móvil. Esto aumenta la usabilidad del popular chat pero también abre una vía más para que un tercero malintencionado intercepte nuestra comunicación (MiTM) y secuestre nuestra sesión.

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 os fijáis 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.
Contenido completo en HackPlayers

1 comentario:

  1. No se si relacionado con esto, desde hace un tiempo, en android al menos, whatsapp te muestra un mensaje cuando whatsapp web está activo

    ResponderEliminar

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!