Un código QR (del inglés Quick Response code, «código de respuesta rápida») es la evolución del código de barras. Es un módulo para almacenar información en una matriz de puntos o en un código de barras bidimensional. La matriz se lee en el dispositivo móvil por un lector específico (lector de QR) y de forma inmediata nos lleva a una aplicación en Internet y puede ser un mapa de localización, un correo electrónico, una página web o un perfil en una red social. Fue creado en 1994 por la compañía japonesa Denso Wave, subsidiaria de Toyota. Presenta tres cuadrados en las esquinas que permiten detectar la posición del código al lector. El objetivo de los creadores fue que el código permitiera que su contenido se leyera a alta velocidad. Los códigos QR son muy comunes en Japón y en China ya sea para sustituir a las tarjetas de visita o para efectuar pagos con el móvil.
Los códigos QR son rápidos y son tremendamente sencillos de generar. Su creación es rápida, su escaneo es sencillo pero su seguridad es nula.
El robo de credenciales por este método se ha extendido mucho por la efectividad y la sencillez con que se realiza.
Un ataque QRLjacking se aprovecha de técnicas de ingeniería social para atacar aplicaciones que utilizan código QR como método para registrarse, como la propia aplicación de WhatsApp, que ofrece a los usuarios la posibilidad de utilizar la app en un ordenador.
Si quieres tener la posibilidad de usar WhatsApp en tu ordenador, debes registrar tu móvil frente al ordenador y escanear un código QR desde la página de web.whatsapp.com. En el caso de WhatsApp, este código, se utiliza para validar el acceso de un usuario a su sistema, sin tener que agregar ninguna validación adicional.
Un atacante puede suplantar este código de manera, que al ser leído por la víctima, su sesión se queda en la computadora del delincuente y este podrá manipularla a su antojo, sin que el servicio se interrumpa en ningún momento.
Este tipo de ataques es muy usado enfocado a WhatsApp, pero también se usa para realizar ataques a diversas aplicaciones que utilizan el código QR. Todas las aplicaciones que usan códigos QR son vulnerables y pueden sufrir ataques parecidos.
Como código de buenas prácticas no deberíamos escanear un código QR si no estamos muy seguros de que es lo que creemos que es.
Con fines didácticos y de aprendizaje, vamos a ver cuales son los pasos para reproducir este tipo de ataque. Las pruebas las vamos a realizar en una máquina virtual y en un entorno local controlado.
En nuestra Kali-Linux nos iremos a Social-Engineering-Tools y abriremos SET.
También lo podemos iniciar escribiendo en la consola:
setoolkit
Lo primero que nos pedirá la primera vez es que aceptemos los términos:
y se iniciará:
en el primer menú seleccionaremos 1 “Social-Engineering Attacks”:
en el segundo menú elegimos 2 “Website Attack Vectors”:
ahora seleccionamos 3 “Credential Harvester Attack Method” ya que lo que queremos es que capture credenciales:
y finalmente ponemos 2 “Site Cloner” para clonar el sitio que queramos usar como falso:
Ahora nos pedirá que indiquemos la IP de destino. En mi caso ya me está indicando la IP que tengo en Kali y esa será la que pongamos:
Seguidamente nos pedirá que le indiquemos la URL de la página que queremos clonar:
vamos a poner, por ejemplo, www.facebook.com:
Nos dice que dependiendo de la estructura de nuestro directorio es posible que necesitemos copiar /var/www/ dentro de /var/www/html suponiendo que no tengamos creada la carpeta html:
damos a intro y nos indica que la información será mostrada tan pronto como llegue:
En este punto, si abrimos el navegador y ponemos nuestra IP de Kali, podemos ver la página clonada:
si ponemos una dirección de correo y una contraseña:
veremos que los datos introducidos son capturados en la terminal:
Ahora tenemos que generar el código QR que redirigirá a los usuarios a nuestro sitio web falso para que podamos capturar las credenciales que introducen en su móvil:
Introduciendo 99 volveremos al menú anterior:
otra vez 99:
ahora seleccionamos 1 de nuevo:
y seguidamente el 8 “QRCode Generator Attack Vector”:
nos pide que le indiquemos la URL donde queremos que apunte el código QR:
así que aquí pondremos nuestra IP de Kali:
nos indica que la imagen con el código QR ha sido generada en el directorio /root/.set/reports/:
lo que haremos ahora será abrir otra terminal e ir hasta esa ruta para copiar la imagen a otro directorio como al Escritorio o a Documentos:
una vez que ya tenemos la imagen:
la abriremos para leerla con el móvil. Necesitaremos alguna aplicación de lector de códigos QR:
cuando leamos el código QR con el teléfono móvil nos irá automáticamente a la página que tenemos clonada en Kali:
y cuando pongamos nuestras credenciales:
Automáticamente serán capturadas en la terminal de Kali y nos redireccionará a la página real de facebook para no levantar sospechas:
En este punto, el delincuente, recurrirá a la Ingeniería Social para conseguir que la víctima lea el código. Este tipo de engaño puede estar camuflado bajo cualquier aspecto:
Si vas a leer un código QR, asegurate de que es lo que crees que es.