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).

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:

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.


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:

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:

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.

Una mirada más de cerca revelará:

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.


Aspectos clave del script
- 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.
- 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.
- 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]]).
- 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.
- 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.

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.









