QRLJacking: hackeando el código QR de WhatsApp y otros

  • 0 Respuestas
  • 5226 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado Gabriela

  • *
  • Co Admin
  • Mensajes: 942
  • Actividad:
    53.33%
  • Country: 00
  • Reputación 18
    • Ver Perfil
    • Email

Varios sitios webs se hacen eco de una prueba de concepto publicada hace pocos días en You are not allowed to view links. Register or Login en la cual se plantea una técnica de ataque llamada QRLJacking que permite evadir sistemas de seguridad e inicio de sesión SQRLs (Secure QR Logins). 

¿Qué es QRLJacking?

QRLJacking o Quick Response Code Login Jacking, según se lee (en inglés)  en  You are not allowed to view links. Register or Login  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.

Esta técnica, conocida como secuestro QR basado en sistema de acceso, plantea una serie de etapas que pueden resumirse en:

-   El atacante ingresa al sitio que utiliza el código QR (por ejemplo WhatsApp web). El sitio muestra el código generado.

-   El atacante clona/copia del código QR de inicio de sesión en una página de phishing creada por él.

-   Esta página se envía a la víctima.

-   Si la víctima “cae”, escanea el código QR, en nuestro ejemplo, con WhatsApp.

-   La aplicación móvil envía un token secreto al servicio web para completar el proceso de autenticación.

-   Como resultado, el atacante inicia la sesión cliente y obtiene el control sobre la cuenta de la víctima, esto es, el servicio inicia el intercambio de todos los datos de la víctima con la sesión del navegador del atacante.

-   Para llevar a cabo un resultado exitoso, el atacante debe refrescar continuamente (cada N segundos) el código generado en la página falsa.

Citar
“Lo que los atacantes necesitan hacer para llevar a cabo con éxito un ataque QRLJacking es escribir un script para clonar periódicamente los códigos QR expirables y refrescar los que aparezcan en la página web de phishing creada, porque como sabemos un proceso QR Login bien implementado debe tener una intervalo de caducidad para los códigos QR”

Se puede apreciar el esquema en la siguiente imagen:




Este escenario, no solo aplica al WhatsApp, sino que se puede replicar en  WeChat, AirDroid, Weibo, Yandex, Alibaba y cualquier otro proyecto que utilice código QR como método de autenticación.



Por otra parte, en GitHub leemos (en inglés):

¿Cuáles  son los requisitos para lograr un ataque QRLJacking  con éxito?


El ataque  QRLJacking consta de dos partes:

1-   Del lado del servidor: Se necesita un script del lado del servidor para mostrar a la víctima la página desde que atacaremos.

2-   Del lado del cliente: Desde donde clonaremos el código QR, llevándolo a nuestra página de phishing, ya que cuando la víctima intenta acceder a la web, por ejemplo, de WhatsApp, lo que estará haciendo en cargar la web maliciosa y el script oculto en  el servidor nos enviará el token de acceso a nuestro servidor, a través del cual podremos acceder a la cuenta de la víctima.


Configuración del Servidor (Hosting del atacante)

1.   Subir el archivo " qrHandler.php " al servidor, este archivo php se utiliza para convertir la cadena de código QR base 64 en un archivo .JPG válido. Una vez que tenemos  una imagen válida generada QR , la nombramos como  " tmp.jpg " , la cual se localizará en la misma carpeta raíz de los archivos  y  se actualizará cada vez que se llame ese archivo php.

2.   A continuación, actualizar el archivo " phishing.html " del código fuente de  la página de phishing preferida.


Configuración del lado del cliente (browser del atacante) :

1.   Abrir el navegador Firefox.

2.   Clic en “opciones” y escribe about:config. Dar clic en aceptar: “Tendré cuidado, lo prometo”.

3.   Buscar “security.csp.enable” y cambiar el valor a “false” haciendo doble clic en él y así permitir la realización de una solicitud XHR sobre un dominio diferente. Se recomienda que después de las pruebas restablecer el valor original).

4.   Instalar el Greasemonkey addon  [   url=https://addons.mozilla.org/en-US/firefox/addon/greasemonkey] addon/Greasemonkey[/url]   ] y asegurarse que el archivo del modulo   "WhatsAppQRJackingModule.js"  se carga y está corriendo.

5.   Ahora vayamos You are not allowed to view links. Register or Login y esperar el inicio de sesión del WhatsApp. Greasemonkey  deberá inyectar nuestro archivo en el módulo de WhatsApp.

6.   Enviar el enlace directo de la última página de phishing a una víctima.  Una vez escaneada la QR , la sesión de la víctima será nuestra.




En GitHub se comparte, también un video demo de la POC



Más información y recursos en el sitio You are not allowed to view links. Register or Login



Sed buenos  :)

Gabriela

PD: Hay que comentar que con acceso físico al dispositivo, esta técnica de secuestro del código QR, ya se hablaba desde hace tiempo. En el youtube hay videos de 2014/2015.


Fuentes para la elaboración del post: GitHub|segu-info.com.ar|hackplayers.com





« Última modificación: Agosto 02, 2016, 04:40:21 pm por Gabriela »

Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

 

Grave vulnerabilidad en PHP-CGI permite ejecutar código remoto en Apache

Iniciado por Stiuvert

Respuestas: 2
Vistas: 3991
Último mensaje Mayo 22, 2012, 11:10:18 pm
por baron.power
CoffeeMiner: Automatiza la inyección de código para minar en redes Wi-Fi

Iniciado por K A I L

Respuestas: 4
Vistas: 6265
Último mensaje Mayo 28, 2018, 02:52:03 pm
por GonzaaFonseca
RIPS (analizador de código estático de PHP)

Iniciado por Aryenal.Bt

Respuestas: 0
Vistas: 2732
Último mensaje Julio 07, 2012, 03:15:15 pm
por Aryenal.Bt
Stegosploit - Ejecutando Codigo en Imagenes

Iniciado por Stuxnet

Respuestas: 1
Vistas: 4184
Último mensaje Junio 10, 2015, 10:33:14 am
por Gabriela
[GUIA] Descifrar backups de WhatsApp sin necesidad de clave privada.

Iniciado por Eryos

Respuestas: 14
Vistas: 51242
Último mensaje Mayo 13, 2018, 01:56:03 pm
por Geco