Kort samengevat: rextension.net, een zeven dagen oud skimmerdomein
- Budget hielp niet: Cisco bewijst dat een groot securitybudget je niet redt van een aanvallersdomein van zeven dagen oud. Reputatielijsten waren leeg. De Magento-box liep één CVE achter. Dat was genoeg.
- Een zeven dagen oud domein: Het domein rextension[.]net was zeven dagen oud toen het authnetcim-kaartvelden op Cisco's merchant store skimde en de buit vervolgens AES-versleutelde voor exfiltratie. cside markeert nieuw geregistreerde scriptdomeinen automatisch, zodat hetzelfde trucje al gemeld wordt voordat de eerste kaart lekt.
- Patch en controleer scriptleeftijd: Draai je Magento Enterprise 2.4, patch CosmicSting dan en controleer deze week je checkout-scripts. Zit het patchen vast achter een change window, zet dan tijdelijk een controle op scriptleeftijd voor de checkout als tussentijdse maatregel.
Weinig tijd? Bekijk cside's in-browser Magecart- en skimmerblokkering. Dit dekt alles hieronder in één deployment.
Weer een dag, weer een spraakmakende client-side JavaScript-aanval. Vanochtend lazen we dat Cisco het volgende slachtoffer is van kwaadaardige code die wordt geladen via een third-party script.
De Cisco Merchant-website draait op het Magento Enterprise-framework, dat veel wordt gebruikt door eCommerce-websites. Magento biedt een robuust en schaalbaar platform, maar zoals elk systeem is het kwetsbaar voor misbruik als beveiligingspatches en updates niet tijdig worden toegepast. De exacte versie van Magento die ten tijde van de aanval in gebruik was, was Magento 2.4 (Enterprise).

Aanvallen gericht op de Magento-frameworks hebben in de loop der tijd hun eigen bijnaam gekregen: Magecart-aanvallen.
De aanvallers gebruiken een third-party script dat kwaadaardige code invoegt, vaak via een domein, om creditcard- en persoonlijke informatie te stelen. E-commercesites zijn bij dit soort aanvallen vaak het doelwit.
Voor meer gedetailleerde informatie over kwetsbaarheden gerelateerd aan Magento, bekijk deze links:
Het kwaadaardige script gedecodeerd
Tijdens onze analyse ontdekten we het volgende geïnjecteerde script op de website:

Dit script, gehost op het domein
rextension[.]net/za/, dat is gekoppeld aan een IP-adres in Rusland (82.202.163.229), bleek aanvullende geobfusceerde code op te halen. Het domein was pas geregistreerd, op 30 augustus 2024, waardoor het slechts 7 dagen oud was ten tijde van onze analyse op 6 september 2024.


Waarom dit belangrijk is
- De recente registratie van het domein is een waarschuwingssignaal, omdat het kan wijzen op een vluchtige operatie die is opgezet voor snelle exploitatie voordat het domein weer wordt verlaten.
- Geobfusceerde scripts zoals deze zijn moeilijk te detecteren zonder gespecialiseerde monitoring, waardoor ze bijzonder gevaarlijk zijn voor zowel website-eigenaren als hun klanten.
Hoe cside deze aanval had kunnen stoppen
Als de Cisco merchant-website cside had gehad, zou onze detectie-engine deze aanval hebben onderschept. Een van onze systemen controleert op nieuw geregistreerde domeinen, en bij het testen pikte onze engine dit op en waarschuwde de gebruiker voor deze anomalie. Het script zelf werd geblokkeerd en kon niet worden geladen in de browser van de testgebruiker, waardoor deze aanval werd gestopt voordat hij kon plaatsvinden. Hier is te zien wanneer dit domein werd geregistreerd (veilige link).
Meld je gratis aan en bescherm je site in enkele seconden.
Het script stap voor stap deobfusceren
Het opgehaalde script was sterk geobfusceerd, waardoor het moeilijk te analyseren was. Hieronder staat slechts een deel van de geobfusceerde code:

Het bovenstaande script is meerlaags geobfusceerde JavaScript, die in een debugger werd geladen.
Obfuscatie is een methode die wordt gebruikt om code moeilijk te begrijpen te maken, meestal als middel om de functionaliteit te verbergen of gevoelige gegevens te beschermen. Voor analisten, ontwikkelaars of beveiligingsonderzoekers is het echter essentieel en legaal om de onderliggende functionaliteit te begrijpen.
We plaatsten een breakpoint bij:

En we voerden het script uit en kregen, na een paar decoderingen, twee tussentijds gedecodeerde JavaScripts.
Het eerste niveau van obfuscatie is een functie die een argument neemt (gedecodeerd vlak voor het script) en dit transformeert met behulp van verschillende JavaScript-methoden, zoals stringmanipulatie en tekencodering.

Een nadere blik zal:

De uiteindelijke gedecodeerde versie:
Dit fragment bevestigt dat het script zich richt op betaalkaartvelden, maar het is nog steeds gedeeltelijk geobfusceerd, met functies zoals _0xDCAD en _0xDBA3. Deze functies manipuleren de inhoud verder, en na meer lagen decodering komt het uiteindelijke script tevoorschijn.


Belangrijke aspecten van het script
- Obfuscatie: Het script is sterk geobfusceerd, met functies zoals _0xDCAD, _0xDBB6, _0xDBC9 om meerdere niveaus van codering en obfuscatie te creëren. Dit is typisch voor malware of scripts die hun werkelijke functionaliteit proberen te verbergen.
- Invoerverzameling: Het script verzamelt informatie van HTML-invoerelementen die worden geïdentificeerd door CSS-selectors zoals #authnetcim-cc-number, #authnetcim-cc-exp-month, #authnetcim-cc-exp-year en #authnetcim-cc-cid. Dit zijn doorgaans velden waar gebruikers gevoelige betalingsinformatie invoeren.
- Gegevensverwerking:- De verzamelde gegevens (creditcardnummer, vervaldatum, CVV, enz.) worden verzameld in het ffewq-object.
- Het script versleutelt deze informatie vervolgens met behulp van AES-versleuteling (via functies zoals encrypt, decrypt, round, enz.).
- Eenmaal versleuteld, worden de gegevens naar een server verzonden met behulp van jQuery.ajax()-aanroepen (te zien in de jQuery[_0xDB90[51]]-sectie).
- Versleuteling: Het script gebruikt AES (Advanced Encryption Standard) om de gegevens te beveiligen voordat deze worden verzonden. Dit omvat verschillende functies die AES-versleutelingslogica afhandelen (addRoundKey, mixColumns, encrypt, enz.), die standaardonderdelen zijn van een AES-versleutelingsproces.
- Periodieke uitvoering: Het script is ontworpen om met regelmatige tussenpozen te draaien (setInterval(_0xDBA3, 100);) om de verzamelde gegevens continu te controleren of te verzenden.
Houd er rekening mee dat het cside-dashboard dit proces voor je uitvoert, waarbij scripts worden gedeobfusceerd om ze gemakkelijker te lezen en te analyseren.

Wat er gebeurde bij deze aanval
Een van de mogelijke kwetsbaarheden die bij deze aanval kan zijn uitgebuit, staat bekend als CosmicSting. Dit is een bekende exploit in het Magento-platform die is gedocumenteerd en onderzocht. Je kunt hier meer over lezen op SanSec Research over CosmicSting.
Client-side aanvallen zoals deze kunnen verwoestend zijn voor zowel bedrijven als klanten. Pas patches snel toe, controleer op verdachte activiteit en gebruik tools zoals cside om te vangen wat patchen alleen mist.









