Skip to main content
Blog
Blog

Ataque JavaScript Magecart del lado del cliente en Cisco

Otro día, otro ataque JavaScript del lado del cliente de alto perfil. Esta mañana, leímos que Cisco es la próxima víctima de código malicioso que se está cargando

Sep 06, 2024 7 min read
cisco-client-side-image-cover

Resumen: rextension.net, un dominio skimmer de siete días

  • El presupuesto no ayudó: Cisco demuestra que un gran presupuesto de seguridad no te salva de un dominio atacante de siete días de antigüedad. Las listas de reputación estaban vacías. El servidor Magento iba un CVE por detrás. Eso fue suficiente.
  • Un dominio de siete días: El dominio rextension[.]net tenía siete días cuando robó los campos de authnetcim en la tienda de Cisco, y luego cifró el botín con AES antes de exfiltrarlo. cside marca automáticamente los dominios de scripts recién registrados, de modo que el mismo truco genera una alerta antes de que se filtre la primera tarjeta.
  • Parchea y verifica la antigüedad del script: Si usas Magento Enterprise 2.4, parchea CosmicSting y audita los scripts del checkout esta semana. Si el parche está bloqueado por una ventana de cambios, coloca una verificación de antigüedad de scripts delante del checkout como control temporal.

¿Poco tiempo? Consulta el bloqueo de Magecart y skimmers en el navegador de cside. Cubre todo lo de abajo en un solo despliegue.

Otro día, otro ataque JavaScript del lado del cliente de alto perfil. Esta mañana, leímos que Cisco es la próxima víctima de código malicioso que se está cargando a través de un script de terceros.

El sitio web Cisco Merchant funciona sobre el framework Magento Enterprise, ampliamente utilizado por sitios de comercio electrónico. Magento ofrece una plataforma robusta y escalable, pero como cualquier sistema, es vulnerable a la explotación si no se aplican a tiempo los parches y las actualizaciones de seguridad. La versión exacta de Magento en uso en el momento del ataque era Magento 2.4 (Enterprise).

Detección de Wappalyzer de Magento 2.4 Enterprise ejecutándose en el sitio de Cisco

Los ataques dirigidos a los frameworks de Magento han acabado teniendo su propio apodo con el tiempo: ataques Magecart.

Los atacantes usan un script de terceros que inserta código malicioso, a menudo a través de un dominio, para robar información de tarjetas de crédito y datos personales. Los sitios de comercio electrónico suelen ser el objetivo de estos ataques.

Para obtener información más detallada sobre las vulnerabilidades relacionadas con Magento, consulta estos enlaces:

El script malicioso decodificado

Durante nuestro análisis, descubrimos el siguiente script inyectado en el sitio web:

Etiqueta de script inyectada que carga código malicioso desde rextension.net

Este script, alojado en el dominio

rextension[.]net/za/, que está asociado con una dirección IP ubicada en Rusia (82.202.163.229), estaba recuperando código ofuscado adicional. El dominio se había registrado recientemente, el 30 de agosto de 2024, lo que significaba que tenía apenas 7 días de antigüedad en el momento de nuestro análisis, el 6 de septiembre de 2024.

Carga útil ofuscada inicial recuperada del dominio rextension.net

Consulta WHOIS que sitúa el dominio rextension.net en una IP rusa

Por qué esto importa

  • El registro reciente del dominio es una señal de alarma, ya que podría indicar una operación efímera diseñada para una explotación rápida antes de ser abandonada.
  • Scripts ofuscados como este son difíciles de detectar sin una monitorización especializada, lo que los hace especialmente peligrosos tanto para los propietarios de los sitios web como para sus clientes.

Cómo cside habría detenido este ataque

Si el sitio web de Cisco Merchant hubiera tenido cside implementado, nuestro motor de detección habría detectado este ataque. Uno de nuestros sistemas verifica los dominios recién registrados, y en las pruebas nuestro motor detectó esto y alertó al usuario de esta anomalía. El propio script fue bloqueado y no llegó a cargarse en el navegador del usuario de prueba, deteniendo este ataque antes de que pudiera producirse. Aquí puedes ver cuándo se registró este dominio (enlace seguro).

Regístrate gratis y protege tu sitio en segundos.

Desofuscando el script paso a paso

El script recuperado estaba altamente ofuscado, lo que dificultaba analizarlo con facilidad. A continuación se muestra solo una parte del código ofuscado:

JavaScript fuertemente ofuscado extraído de la página comprometida de Cisco

El script anterior es JavaScript ofuscado en múltiples capas, cargado en un depurador.

La ofuscación es un método usado para dificultar la comprensión del código, normalmente como forma de ocultar su funcionalidad o proteger datos sensibles. Sin embargo, para analistas, desarrolladores o investigadores de seguridad, comprender la funcionalidad subyacente es esencial y legal.

Colocamos un punto de interrupción en:

Depurador del navegador detenido en el primer punto de interrupción dentro del script ofuscado

Y ejecutamos el script; tras un par de decodificaciones, obtuvimos dos JavaScripts intermedios decodificados.

El primer nivel de ofuscación es una función que toma un argumento (decodificado justo antes del script) y lo transforma usando varios métodos de JavaScript, como manipulación de cadenas y codificación de caracteres.

Primera capa del script Magecart ofuscado tras una decodificación parcial

Una mirada más de cerca revelará:

Depurador del navegador detenido en el segundo punto de interrupción dentro del script ofuscado

La versión final decodificada:

Este fragmento confirma que el script se centra en los campos de tarjetas de pago, pero sigue estando parcialmente ofuscado, con funciones como _0xDCAD y _0xDBA3. Estas funciones manipulan aún más el contenido y, tras más capas de decodificación, emerge el script final.

Fragmento final de JavaScript decodificado dirigido a los campos del formulario de tarjeta de pago

Última capa decodificada del script que roba datos de tarjetas de pago

Aspectos clave del script

  1. Ofuscación: el script está fuertemente ofuscado, usando funciones como _0xDCAD, _0xDBB6, _0xDBC9 para crear múltiples niveles de codificación y ofuscación. Esto es típico del malware o de scripts que intentan ocultar su funcionalidad real.
  2. Recopilación de datos: el script recopila información de elementos de entrada HTML identificados por selectores CSS como #authnetcim-cc-number, #authnetcim-cc-exp-month, #authnetcim-cc-exp-year y #authnetcim-cc-cid. Estos son, normalmente, los campos donde los usuarios introducen información de pago sensible.
  3. Manejo de datos:- Los datos recopilados (número de tarjeta de crédito, fecha de caducidad, CVV, etc.) se reúnen en el objeto ffewq.
  • El script luego cifra esta información usando cifrado AES (mediante funciones como encrypt, decrypt, round, etc.).
  • Una vez cifrados, los datos se envían a un servidor mediante llamadas jQuery.ajax() (visibles en la sección jQuery[_0xDB90[51]]).
  1. Cifrado: el script usa AES (Advanced Encryption Standard) para proteger los datos antes de enviarlos. Esto incluye varias funciones que gestionan la lógica de cifrado AES (addRoundKey, mixColumns, encrypt, etc.), componentes estándar de un proceso de cifrado AES.
  2. Ejecución periódica: el script está diseñado para ejecutarse a intervalos regulares (setInterval(_0xDBA3, 100);) para comprobar o enviar continuamente los datos recopilados.

Ten en cuenta que el panel de cside hace este proceso por ti, desofuscando los scripts para que sean más fáciles de leer y analizar.

Panel de cside mostrando el contenido desofuscado del script de jsDelivr

Qué sucedió en este ataque

Una de las posibles vulnerabilidades que podrían haberse explotado en este ataque se conoce como CosmicSting. Es un exploit conocido en la plataforma Magento que ha sido documentado e investigado. Puedes leer más al respecto en la investigación de SanSec sobre CosmicSting.

Los ataques del lado del cliente como este pueden ser devastadores tanto para las empresas como para los clientes. Aplica los parches con prontitud, monitoriza la actividad sospechosa y usa herramientas como cside para detectar lo que el parcheo por sí solo no cubre.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

FAQ

Frequently Asked Questions

Los atacantes explotaron una vulnerabilidad de Magento 2.4, probablemente CosmicSting, para inyectar un script ofuscado en la página. El script estaba alojado en el dominio recién registrado rextension.net y robaba datos de tarjetas de pago del formulario de compra.

El dominio del atacante tenía solo siete días de antigüedad en el momento del análisis, así que ningún threat feed lo había marcado aún como malicioso. La monitorización del lado del cliente detecta el comportamiento (un script que de repente lee campos de tarjeta de crédito) en lugar de depender de una reputación de dominio que todavía no existe.

Monitoriza y protege tus scripts de terceros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Empieza gratis o prueba Business con una versión de prueba de 14 días.

Interfaz del panel de cside que muestra la monitorización de scripts y el análisis de seguridad
Related Articles
Reservar una demo

¿Quieres verlo en detalle con un ingeniero?

Treinta minutos, sobre tu propio sitio. Nada de diapositivas.

Te enseñaremos:

Qué scripts de terceros se están ejecutando ahora mismo en tu sitio
En qué punto estás con los requisitos 6.4.3 y 11.6.1 de PCI DSS
Qué parte de tu tráfico son bots y agentes de IA

¿Prefieres mandarnos una pregunta?

Buscando huecos libres…

Solo humanos de verdad. Nos daríamos cuenta.

¿Problemas para reservar? Abrir el calendario en una pestaña nueva

¿Qué quieres resolver?

Cuéntanoslo en una línea y te responderemos con algo útil, no con un discurso genérico.

Solemos ayudar con:

Ver qué scripts de terceros se ejecutan en tu sitio
Evidencias para PCI DSS 6.4.3 y 11.6.1
Bots, agentes de IA y robo de cuentas

¿Prefieres reservar una hora? Elegir un hueco