Quishing: cuando el phishing se esconde detrás de un código QR
«Escanee este código para firmar el documento.» La frase parece inofensiva, y el pequeño cuadrado blanco y negro también. Sin embargo, detrás de ese código QR suele esconderse una página de acceso falsa. Esta técnica tiene nombre: el quishing, contracción de «QR» y «phishing». Veamos por qué funciona tan bien y cómo se puede desenmascarar y después denunciar el sitio que se esconde detrás.
¿Qué es el quishing?
Un código QR no es más que un texto escrito en cuadraditos. Ese texto suele ser una dirección web. Al escanearlo, el móvil lee el texto y propone abrir la página.
El quishing retoma los escenarios clásicos del phishing, pero sustituye el enlace por un código QR:
- un documento «para firmar» o «compartido con usted»;
- una doble autenticación «que hay que reactivar antes de esta noche»;
- un paquete retenido, una multa, un reembolso.
También aparece fuera del correo: pegatinas colocadas encima de los QR auténticos de parquímetros, puntos de recarga o cartas de restaurante. El principio es el mismo: hacer escanear y luego hacer escribir.
Por qué un código QR se cuela entre las mallas de la red
Los filtros de correo son muy buenos en una cosa: leer el texto de un mensaje, localizar los enlaces y comprobar adónde llevan. Pero un código QR no es un enlace, es una imagen. Para un filtro que no sabe descodificarla, el correo no contiene… ningún enlace. Parece incluso más limpio que un mensaje normal.
Algunos filtros ya saben leer códigos QR. Los estafadores se adaptan complicando la lectura:
- el código se coloca en un PDF adjunto en lugar de en el mensaje;
- se dibuja con una tabla de celdas de colores o con caracteres, no con una imagen;
- se corta en dos imágenes pegadas una a otra, o se deforma ligeramente.
Para el ojo humano no cambia nada: el móvil lee el código sin dificultad. Para el robot, es un acertijo más. Es la misma lógica del escondite descrita en la guía Phishing: cómo consiguen los estafadores que lleguen sus correos.
El gran salto: del ordenador al móvil
La verdadera fuerza del quishing está en otra parte: nos hace cambiar de dispositivo. El correo llega a un ordenador, a menudo protegido por la empresa: filtro web, antivirus, análisis de enlaces. Pero para escanear sacamos el móvil. Y ahí todo cambia:
- el móvil suele ser personal, conectado por 4G o 5G, fuera de la red y de las protecciones de la empresa;
- la pantalla es pequeña: la dirección de la página aparece cortada, o incluso oculta;
- nos conectamos deprisa, por costumbre, entre dos tareas.
Dicho de otro modo, la trampa no salta donde están los vigilantes. Las páginas de quishing suelen estar pensadas para móvil. Y muchas son páginas «intermediarias» capaces de sortear la doble autenticación: es el tema de la guía AiTM: cuando el phishing roba su sesión, no solo su contraseña.
Leer la dirección oculta… sin abrirla
Para analizar una campaña de quishing, el primer paso es convertir el código QR en texto, sin visitar nunca la página. Hay varias formas:
- La cámara del móvil suele mostrar la dirección antes de abrirla. La leemos, no la tocamos.
- Una aplicación lectora de QR configurada para mostrar el texto sin abrir el navegador.
- En el ordenador, hacemos una captura del código y la pasamos por un descodificador sin conexión, por ejemplo la herramienta libre
zbarimg:
$ zbarimg capture.png
QR-Code:https://sho.rt.example/x7Kp
Obtenemos una dirección como cualquier otra. La guardamos con cuidado: es la prueba.
Identificar el dominio y la infraestructura
Una dirección web se lee un poco como una dirección postal escrita al revés. El nombre que cuenta, el dominio, está justo antes de la primera «/» que sigue a https://. Todo lo que queda a su izquierda lo elige libremente su propietario.
https://login.docs-m1crosoft.example/auth
Aquí el dominio es docs-m1crosoft.example, no Microsoft. La palabra «login» del principio no prueba nada. La misma trampa con microsoft.com.verification.example: el dominio real es verification.example. Algunos dominios van más lejos y usan letras de otros alfabetos que se parecen a las nuestras: véase Punycode y homógrafos: cuando un dominio falso se parece al verdadero.
Una vez encontrado el dominio, buscamos quién puede actuar. Siempre aparecen tres actores:
- El registrador es el registro civil del nombre de dominio: la empresa donde se compró. Puede suspender el dominio, lo que corta todas las páginas que lo usan. Se encuentra con una consulta RDAP o WHOIS sobre el dominio, que también da su fecha de creación: un dominio creado hace tres días para un «banco» es muy mala señal.
- El alojamiento es el dueño del edificio: la empresa cuyo servidor muestra la página. Puede retirar la página o apagar el servidor.
- La CDN (como Cloudflare) es la recepción situada delante del edificio: sirve la página en lugar del servidor y oculta su dirección real. Acepta denuncias, puede mostrar una advertencia y transmite la queja al alojamiento.
¿Qué hacer cuando el código QR lleva a varios dominios?
Es muy frecuente: el código QR no lleva directamente a la página trampa, sino a una cadena de redirecciones. Un acortador de enlaces, luego un servicio legítimo desviado para redirigir a otra parte, a veces una verificación «¿Es usted humano?» y, por fin, la página de acceso falsa.
Cada eslabón tiene su propio responsable, y cada eslabón se puede denunciar:
- La página final primero: su dominio (al registrador) y su servidor (al alojamiento o a la CDN).
- El primer eslabón después, el que está escrito en el código QR. Es un punto débil para el estafador: un código QR impreso o enviado ya no se puede modificar. Si ese primer enlace se corta, todos los códigos ya distribuidos quedan inservibles.
- Los intermediarios por último: un acortador de enlaces suele bloquear muy rápido los enlaces abusivos, y a un sitio legítimo usado como trampolín le interesa saberlo.
Guardamos constancia de toda la cadena, con fecha y hora: los estafadores cambian a menudo el destino final, y una denuncia fechada ayuda a los equipos que la reciben.
Denunciar la campaña con Baitback
Un código QR no hace desaparecer el correo: el mensaje lo envió un servidor que pertenece a un proveedor de alojamiento. Pegamos el código fuente completo del correo en Baitback: la herramienta encuentra el servidor de envío, su alojamiento y su dirección de denuncia, comprueba SPF, DKIM y DMARC y prepara los mensajes de denuncia listos para enviar. Para entender lo que cuentan esas líneas de cabecera, véase Cómo viaja un correo del remitente al destinatario.
La dirección descodificada del código QR se denuncia además al registrador, al alojamiento o a la CDN identificados antes, y a las plataformas de protección de los navegadores que Baitback recuerda (Google Safe Browsing, Microsoft, Netcraft…). En pocas horas, la página puede quedar bloqueada para millones de usuarios.
¿Y si ya hemos escaneado y escrito la contraseña?
Sin pánico, pero sin demora. Desde un dispositivo de confianza, cambiamos la contraseña de la cuenta afectada, usamos la opción «cerrar todas las sesiones» si existe y avisamos al servicio informático si es una cuenta de trabajo. Cambiar solo la contraseña no siempre basta: la guía sobre los ataques AiTM explica por qué.
- Un código QR es solo una dirección escrita en cuadraditos: merece la misma desconfianza que un enlace.
- Suele pasar los filtros, porque parece una imagen y no un enlace.
- Nos hace pasar del ordenador protegido al móvil, menos vigilado y de pantalla más pequeña.
- Lo descodificamos para leer la dirección sin abrirla y aislamos el dominio real, justo antes de la primera «/».
- Cada eslabón de la cadena (dominio, servidor, redirecciones) se puede denunciar, y el propio correo también.