Radiografía de un ataque utilizando Iframes en un sitio web

La semana pasada contábamos a grandes rasgos de qué se trata un Iframe: es un documento HTML embebido en otro, dentro de un sitio web. El elemento Iframe HTML se usa a menudo para insertar contenido de otra fuente, como un anuncio, aunque sabemos que un ciberdelincuente puede aprovecharse de un Iframe con fines maliciosos. Hoy analizaremos un ataque de este tipo para comprender algunos aspectos más técnicos y saber cómo protegerse.

Podemos decir que un Iframe se parece a un pop-up pero dentro del mismo sitio web, sin abrir ventanas emergentes. A continuación veremos un ejemplo de su uso en un sitio web legítimo, en el que fue insertado para compartir contenidos en redes sociales. Remarcamos que ocultamos la identidad del sitio, ya que lo que interesa ver en esta entrada es el comportamiento de las etiquetas Iframes.

Ejemplo

A simple vista advertimos una imagen que se superpone en la página que se está viendo. En el recuadro inferior remarcado, donde se muestran las propiedades de esta etiqueta, puede verse que la imagen hace referencia a un complemento del sitio para poder compartir en redes sociales, y que es algo legítimo; si se hiciera clic, dicha actividad efectivamente tendría lugar.

¿Cómo puede aprovechar esto un atacante?

Uno de los aspectos fundamentales es que generalmente los Iframe son mostrados en la página principal. Por tal motivo, podríamos decir que al insertar un Iframe malicioso el cibercriminal se aprovecha de la confianza que existe entre el usuario final que hace la visita y el sitio web vulnerado.

Para demostrar en qué consiste esta técnica, realizaremos las pruebas necesarias en un entorno virtual y controlado:

  1. La primera de ellas es la maquina atacante (Kali Linux)
  2. La segunda actúa como servidor web (sistema operativo Ubuntu)
  3. Por último, la máquina víctima

El contexto del ataque y cómo se produce la infección

Partimos del supuesto de que el atacante consiguió acceso al servidor web mediante la explotación de una vulnerabilidad en el mismo -a los fines de esta demostración, no viene al caso explicar esta parte. No obstante, sí debemos remarcar que una vez que el cibercriminal tiene el control del sitio, puede utilizarlo de la forma en que lo desee, como por ejemplo para propagar malware y robar información.

El sitio web que utilizamos para esta demostración, el cual ya fue comprometido, no muestra nada fuera de lo normal, ni siquiera ningún Iframe a la vista:

web-normal
Luego, el atacante procede a explotar alguna vulnerabilidad en la computadora de la víctima. La siguiente captura muestra que a través del uso de estas etiquetas, el atacante puede manipular un sitio web para inyectar alguna amenaza a los usuarios si estos no son lo suficientemente precavidos.

web-exploit

En este caso, se explota una vulnerabilidad en Java a través de la ejecución del complemento malicioso por parte de la víctima (botón “ejecutar esta vez” que vemos en la barra amarilla). El atacante obtiene así acceso al equipo víctima y una vez dentro, tiene total control del mismo; esto le permite robar información, subir malware e infectar otros equipos dentro de la red.

Un ejemplo de la pantalla del atacante se ve de la siguiente manera:

session1

Cómo utiliza el atacante un Iframe para robar credenciales

En este segundo escenario, veremos otro uso malicioso que se le puede dar a una de estas etiquetas, que está relacionado con el robo de información.

Al obtener acceso al servidor web, el atacante comenzó a contar con los permisos necesarios para modificar el contenido de la página. Una vez obtenido el acceso como administrador, comienza a subir las herramientas necesarias para llevar a cabo una campaña de robo de credenciales de Facebook.

Para este ejemplo, se utilizó un simple scam de la red social en su versión para móviles:

iframe-scam-code
En este caso, el ciberdelincuente consiguió subir el clon del portal de login de la red social modificado; para que sus víctimas caigan en la trampa, inserta un Iframe en la página principal, el cual muestra el clon con los campos para hacer la autenticación.

Claramente, esto no es más que una trampa de Ingeniería Social para robar información, como en este caso resultó ser usuarios y contraseñas de Facebook.

Cuando el usuario ingresa sus credenciales como muestra el siguiente ejemplo, al hacer clic en el botón “Log In” es cuando se ejecuta un script en PHP que registra la información en algún lugar -como puede ser una base de datos, un archivo de texto o inclusive enviarlo por correo a la casilla del atacante.

Veamos una captura de pantalla como ejemplo del Iframe con el scam malicioso:

robo01

Simulando ser una víctima, colocamos un usuario y contraseña ficticios para ver cómo se registran en el robo. Debemos remarcar que en este tipos de cuestiones, al tratarse de un sitio no oficial de Facebook, el portal no interactúa con la base de datos de la red social; esto significa que colocando cualquier tipo de información en los campos requeridos, el resultado de la operación siempre será exitoso, debido a que el propósito del clon no es acceder al perfil sino robar información. Por tal motivo, a veces colocar información falsa para ver si se valida como verdadero es una buena práctica para detectar si estamos ante una trampa o no.

Una vez que el usuario ingresa sus credenciales y presiona “Enter” para acceder, se ejecuta el script alojado en el servidor web vulnerado, el cual se encarga del robo de la información. En este caso almacena las credenciales en un archivo de texto para poder ver los registros.

¿Qué aprendimos hasta ahora?

Hasta ahora comprendimos cómo una funcionalidad en un sitio web puede ser aprovechada por un atacante para infectar víctimas o robar información si no se toman los recaudos necesarios. Es lógico que cuanto más popular es el sitio vulnerado, mayor cantidad de usuarios se verán afectados por estas amenazas.

Para aquellos a quienes les interese empezar a analizar la veracidad de los Iframes, solo basta con hacer clic con el botón derecho en el sitio que lo contenga y seleccionar la opción “inspect element” o “inspeccionar elemento”. Una vez abierta la ventana inferior en el navegador (también puede encontrarse del lado derecho), al pasar por cada parte del contenido, se mostrará el código de programación que le corresponde. Para esto hay que buscar las etiquetas Iframe y revisar donde dice “src=http…” corroborando que el enlace sea verdadero y cuente con SSL (HTTPS).

Conclusión

Como conclusión vemos que los cibercriminales se las ingenian cada vez más para elaborar sus campañas de robo de información o propagación de malware, haciendo uso de todas las alternativas posibles para ello. Sin embargo, las recomendaciones no varían respecto a las habitualmente mencionadas como contar con una solución de seguridad instalada y actualizada (para evitar malware, exploits, phishing, etc.).

Además, es fundamental ser precavidos, prestar atención respecto a dónde se accede, observar las direcciones URL y que estas contengan HTTPS, entre otras. Con estas buenas prácticas incorporadas, en conjunto con las herramientas necesarias, podrán reducir en gran medida los ciberataques a y la posibilidad de que su información esté en riesgo.

Créditos imagen: ©Ben K Adams/Flickr

Autor , ESET

Síguenos