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 6 min read
cisco-client-side-image-cover

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 opera en el framework Magento Enterprise, que es ampliamente utilizado por sitios web 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 parches de seguridad y actualizaciones de manera oportuna. La versión exacta de Magento en uso al 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 obtenido con el tiempo su propio apodo: ataques Magecart.

Los atacantes utilizan 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 son frecuentemente un objetivo en estos ataques.

Para obtener información más detallada sobre 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 cargando 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), se encontró que estaba recuperando código ofuscado adicional. El dominio fue registrado recientemente el 30 de agosto de 2024, lo que lo hace tener solo 7 días de antigüedad al momento de nuestro análisis el 6 de septiembre de 2024.

Carga útil ofuscada inicial recuperada del dominio rextension.net

Consulta WHOIS situando el dominio rextension.net en una IP rusa

Por qué esto importa

  • El registro reciente del dominio levanta señales de alerta 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 estos son difíciles de detectar sin monitoreo especializado, lo que los hace especialmente peligrosos tanto para los propietarios de 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 dominios recién registrados, y en las pruebas nuestro motor detectó esto y alertó al usuario de esta anomalía. El script en sí fue bloqueado de cargarse en el navegador del usuario de prueba, deteniendo este ataque antes de que pudiera ocurrir. Aquí se puede 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 su análisis. A continuación se muestra solo una porción 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, que fue cargado en un depurador.

La ofuscación es un método utilizado para hacer que el código sea difícil de entender, típicamente como un medio para 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 y, después de un par de decodificaciones, obtuvimos dos JavaScripts decodificados intermedios.

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 cercana 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 está enfocado en campos de tarjetas de pago, pero todavía está parcialmente ofuscado, con funciones como _0xDCAD y _0xDBA3. Estas funciones manipulan aún más el contenido, y después de más capas de decodificación, emerge el script final.

Fragmento final de JavaScript decodificado que ataca los campos del formulario de tarjeta de pago

Última capa decodificada del script ofuscado 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 de malware o 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 típicamente campos donde los usuarios ingresarían información de pago sensible.
  3. Manejo de Datos:- Los datos recopilados (número de tarjeta de crédito, fecha de vencimiento, CVV, etc.) se reúnen en el objeto ffewq.
  • El script luego encripta esta información usando encriptación AES (a través de funciones como encrypt, decrypt, round, etc.).
  • Una vez encriptados, los datos se envían a un servidor usando llamadas jQuery.ajax() (vistas en la sección jQuery[_0xDB90[51]]).
  1. Encriptación: El script usa AES (Advanced Encryption Standard) para asegurar los datos antes de enviarlos. Esto incluye varias funciones que manejan la lógica de encriptación AES (addRoundKey, mixColumns, encrypt, etc.), que son componentes estándar en un proceso de encriptación AES.
  2. Ejecución Periódica: El script está diseñado para ejecutarse a intervalos regulares (setInterval(_0xDBA3, 100);) para verificar o enviar continuamente los datos recopilados.

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

Panel de cside mostrando el contenido del script de jsDelivr desofuscado

Qué sucedió en este ataque

Una de las posibles vulnerabilidades que pudo haber sido explotada en este ataque se conoce como CosmicSting. Esta es una explotación conocida en la plataforma Magento que ha sido documentada e investigada. Puedes leer más sobre ella en detalle en 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, destacando la importancia de la vigilancia constante y la implementación de medidas de seguridad sofisticadas. Las empresas deben asegurarse de aplicar parches, monitorear actividad sospechosa y utilizar herramientas avanzadas como las que ofrece cside para mitigar riesgos.

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 del formulario de pago.

El dominio del atacante tenía solo siete días en el momento del análisis, así que ningún threat feed lo había marcado como malicioso aún. La monitorización del lado del cliente detecta el comportamiento — un script leyendo campos de tarjeta — en lugar de depender de una reputación de dominio que aún no existe.

Monitoriza y Asegura tus Scripts de Terceros

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

Comienza gratis, o prueba Business con una prueba de 14 días.

Interfaz del panel de cside mostrando monitorización de scripts y análisis de seguridad
Related Articles
Reservar una demo