14 jun 2016

_blank: Jugar con las pestañas del navegador para engañar al usuario (phishing avanzado)

El phishing tradicional funciona principalmente enviando a los usuarios un correo con un enlace que, si pinchan, les redireccionará a un sitio malicioso, normalmente una web falsa que se hace pasar por otra legítima. Pero, ¿y si la redirección al sitio falso se produce de forma inadvertida en una de las múltiples pestañas abiertas en el navegador?

Hoy vamos a ver dos formas ingeniosas para conseguirlo. La primera denominada "Windows Hijacking" que establecerá un contador al abrir una pestaña que una vez llegue a 0 cambiará la localización a la página fraudulenta. La segunda llamada "Tap Nabbing" hará se cambie el contenido igualmente pero en otra pestaña que el usuario no está viendo en ese momento. De esa forma cuando el usuario vuelva a la pestaña creerá que la dejó abierta (por ej. Gmail) y se volverá a loguear.

Window Hijacking

Es sabido que configurar un tag con el atributo como _blank tiene ciertos riesgos de seguridad: https://mathiasbynens.github.io/rel-noopener/
Esto es debido a que la nueva página abierta tiene la capacidad de cambiar la ubicación de la ventana (windows location) con lo siguiente:
window.opener.location = "https://google.com"

Tap Nabbing

Las pestañas o ventanas abiertas utilizando JavaScript o target = "_blank" aunque limitado tienen acceso a la ventana padre, haciendo caso omiso de las restricciones de cross-origin. Entre ellos la capacidad de redirigir la pestaña padre o de la ventana usando window.opener.location.

Si bien ésto puede parecer inofensivo, es posible realizar un ataque de phishing cuando las aplicaciones web permiten o hacen uso de anchors con target="_blank" o window.open().

Imagina el siguiente escenario, el más típico:

Eres un administrador utilizando algún foro o software de chat. Actualmente estás conectado en la aplicación, y ves un mensaje dejado por un usuario. El usuario solicita o te convence para que hagas clic en un enlace de su mensaje, que se abre en una nueva pestaña. Mientras que la nueva página puede parecer completamente segura, tal vez sólo una captura de pantalla o un error en HTML - ejecuta el siguiente JS:
window.opener.location.assign ('https://yourcompanyname.phishing.com');
Lo que no te das cuenta es que al tratar con este cliente ilegítimo o queja del usuario, la pestaña de la aplicación fue redireccionada en background. ¿A qué? A un sitio web de suplantación de identidad idéntico, que solicita que introduzcas tus credenciales para entrar de nuevo.

Demo

Un enlace que abre _blank en una nueva pestaña. El código JavaScript que se ejecuta en la nueva pestaña tiene un handler con window.opener. La página abierta abre una página falsa de Github con el mensaje "Timeout, please log in again".
http://molnarg.github.io/tabnabbing-demo/decoy_document.html
El usuario cierra la pestaña abierta y vuelve a lo que cree que es GitHub, donde vuelve a introducir las credenciales.

Fuentes:

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!