QRLJacking: phishing en Whatsapp

#QRLJacking #QR #Whatsapp #phishing



Phishing en Whatsapp




¿Qué es QRLJacking?


QRLJacking o Quick Response Code Login Jacking, según se lee (en inglés) en GitHub es un vector de ataque -ingeniería social mediante- que afecta a todas las aplicaciones que permitan iniciar sesión a través del escaneo de un código QR y cuyo objetivo es secuestrar dicha sesión del usuario por el atacante.

Hay que señalar que para que este tipo de ataque pueda funcionar es necesario que tanto el atacante como la víctima estén conectados al mismo tiempo. Asimismo, basado en la ingeniería social, es indispensable suplantar la identidad de las páginas web reales para que la víctima escanee el código QR malicioso, esto es, el que fue modificado por el atacante.

En esta entrada, hablaremos de la posibilidad de robar la sesión de WhatApp Web. Los miembros de OWASP han publicado una herramienta llamada QRLJacking que sirve para realizar ataques de Spear Phishing en sitios que utilizan QRCodes, tal como es WhatsApp Web.


El esquema de ataque es sencillo, básicamente se debe configurar un servidor web donde tendremos el sitio web falso con el Phishing y el código QRCode con el cual engañaremos a nuestra víctima. Luego entra la parte de la ingeniería social, debemos lograr que la víctima ingrese a nuestro sitio web falso, lea el QRCode con su dispositivo móvil y a partir de ese momento, el atacante ya tendría lo necesario para obtener el acceso.


Gráficamente es algo así:





En el caso de WhatsApp el atacante debería mostrar un QRCode de WhatsApp Web a la víctima y con esto lograr obtener la sesión de WhatsApp Web autenticada.



Esto es necesario ya que la página de WhatsApp viene protegida por CSP y en caso de que se quiera ejecutar el plugin para inyectar en ella y capturar el QRCode, el navegador no lo dejará hacer ya que la web viene con la política “Content Security Policy”

En este instante el plugin de Firefox Greasemonkey captura el nuevo QRCode y lo envía al servidor dónde se haya configurado la parte Server-Side. Para esta prueba de concepto, el valor base64 del QRCode se envía a la dirección IP del atacante, en concreto al fichero QRHandler.phppublicado en el servicio web publicado en esa dirección, que se encargará de generar el fichero JPG con la imagen del QRCode en la web de Phsihing.

Si la víctima cae en este tipo de engaño, el atacante recibe la sesión de WhatsApp en su navegador de Firefox. Es decir, en el mismo sitio dónde el plugin de Greasemonkey está inyectando el código JavaScript para capturar el QRCode original de WhatsApp Web.

Lo primero que necesitamos es bajar los archivos de QRLJacking desde GitHub. La configuración consta de 2 partes, por un lado la del Cliente y por otro lado el Server.

En el servidor es necesario subir el archivo qrHardler.php a un servidor web. Este archivo será el encargado de convertir el QRCode que se capturará de WhatsApp a Base64. También devuelve una imagen JPG con el QRCode.

Por otro lado, tenemos el cliente. Debemos configurar nuestro navegador para poder capturar el QRCode de Whatsapp y enviarlo al fichero PHP que está en nuestro servidor.

Para configurar Firefox, debemos colocar en la barra de navegación “about:config” para acceder a las configuraciones avanzadas del navegador, y en la barra de búsqueda debemos filtrar por “security.csp.enable” y deshabilitarla.







Después, utilizando el add-on Greasemonkey hay que cargar el fichero WhatsAppQRJackingModule.js. Este plugin de Firefox se encarga de inyectar el código JS necesario para extraer el QR Code del sitio web de WhatsApp Web y enviarlo al fichero PHP qrHandler.php, que se encuentra en el servidor web. Luego se genera el fichero JPG con la imagen del QR Code extraído y el sitio web falso podría utilizar dicho QR Code.

Por último, se debe acceder al sitio web de WhatsApp Web desde nuestro propio navegador. Se llevará a cabo todo el proceso, explicado anteriormente, y si el proceso de ingeniería social es correcto, se obtendrá la sesión de WhatsApp Web de un usuario.

La página de WhatsApp Web genera gráficos con datos en formato QRCode cada cierto tiempo, por lo que el código JavaScript inyectado por el plugin va consultando continuamente para ir extrayendo el QRCode nuevo y reportarlo al servidor que lo mostrará en la página web de Phishing. A continuación, se muestra un QRCode válido en la página de WhatsApp Web.




Ahora llega el momento de ver cómo un atacante puede obrar para que la víctima lea el QRCode con su móvil. Para ello, el atacante puede hacer un uso de un esquema de Spear Phishing clásico en el que se indique que se ha ganado un premio, quizá suscripción infinita a WhatsApp o llamadas ilimitadas. Esto ya cae en la imaginación de cada uno. El sitio web que se presenta a continuación refresca cada cierto tiempo el valor del QRCode. Nadie regala nada gratis, es algo que tenemos que tener siempre en la cabeza.



Imagen ilustrativa...


No hay comentarios.:

Con tecnología de Blogger.