Een browserextensie injecteert geobfusceerde JavaScript van msclairty[.]com, een typosquatted domein dat Microsoft Clarity imiteert. Het script verwijdert Google Analytics-cookies, stopt affiliate-cookies met de waarde pub=twsc, injecteert verborgen iframes naar discounthero[.]org en kaapt de Fetch API. Verrassend genoeg markeert geen enkel beveiligingshulpmiddel dit domein. Dit is de eerste publieke documentatie van msclairty[.]com.
Wat is msclairty[.]com?
msclairty[.]com is een typosquatted domein dat is ontworpen om Microsoft Clarity (msclarity[.]com / clarity[.]ms) na te bootsen, de populaire analytics- en heatmaptool van Microsoft. Simpel gezegd: de letters "i" en "r" in "clarity" zijn omgewisseld naar "clairty", subtiel genoeg om bij een vluchtige blik in een netwerklog of scripttag geen argwaan te wekken.
Het domein levert geen analytics. In plaats daarvan levert het een geobfusceerde JavaScript-payload die affiliate cookie stuffing, het verwijderen van trackingcookies en het kapen van de Fetch API uitvoert in de browser van de bezoeker.
Hoe werd dit script ontdekt?
In de afgelopen 48 uur begonnen we netwerkverzoeken naar msclairty[.]com te observeren op meerdere niet-gerelateerde websites in onze telemetrie. Het eerste verzoek dat we registreerden was op 2 maart 2026 om 21:17 UTC, waarna het verkeer scherp toenam in de ochtend van 3 maart. Het verkeer is niet afkomstig van een gecompromitteerde scripttag in de paginabron. In plaats daarvan injecteert een browserextensie het. We hebben de specifieke extensie nog niet geïdentificeerd, maar het injectiepatroon is consistent op elke getroffen site: dezelfde geobfusceerde payload, hetzelfde domein, hetzelfde gedrag, ongeacht de eigen scriptinventaris van de site.
De gemeenschappelijke noemer is de browser van de eindgebruiker, niet de codebase van de site.
We observeerden dat het script sites trof in meerdere niet-gerelateerde sectoren, waaronder transport (zoals vliegticketboekingsplatforms), SaaS-platforms (zoals projectmanagementtools), sportbeheerportalen en overheidsbetalingsportalen. De getroffen bezoekers zijn verspreid over meerdere Chrome-versies (132, 138 en 145) en zijn afkomstig van Amerikaanse IP-adressen aan zowel de oost- als westkust. Elke getroffen site laadt de identieke event.js-campagne-identifier en ontvangt dezelfde payload-hash, wat bevestigt dat dit één gecoördineerde campagne is die via één browserextensie verloopt.
De campagne-ID's wisselen dagelijks. Op 2 maart was de loader-URL bijvoorbeeld event.js?id=dHRcSiYkDj4&date=2026-03-02. Op 3 maart verscheen een nieuwe campagne-ID: event.js?id=XGp2NSkTRVs&date=2026-03-03. De parameter date= komt overeen met de datum van elke campagnewisseling. Dit betekent dat de infrastructuur actief wordt onderhouden en elke dag nieuwe campagne-identifiers uitrolt.
Elke getroffen gebruiker deelt dezelfde vingerafdruk. In alle verzoeken in onze telemetrie is het browserprofiel identiek: Windows 10 x64, desktop Google Chrome, geen mobiele apparaten. Niet één verzoek is afkomstig van Firefox, Safari, Edge, Brave, macOS, Linux, Android of iOS. Dit is een Chrome-only extensie. De sec-ch-ua-clienthints bevestigen echte Chrome (niet Chromium-forks die anders rapporteren), en sec-ch-ua-mobile: ?0 bevestigt desktop bij elk verzoek. We observeerden slechts 5 unieke bezoeker-IP's op alle getroffen sites, allemaal op Amerikaanse residentiële verbindingen.
De volledige aanval volgt een tweefasig laadpatroon waarbij de server per verzoek targetingbeslissingen neemt over welke payload te leveren.
Fase 1: Loader-script (event.js)
hxxps://msclairty[.]com/event.js?id=dHRcSiYkDj4&date=2026-03-02
hxxps://msclairty[.]com/event.js?id=XGp2NSkTRVs&date=2026-03-03
De event.js-loader is 8.599 bytes groot. De parameter id= is een campagne-identifier die dagelijks wisselt. Op 2 maart was de campagne-ID dHRcSiYkDj4. Op 3 maart veranderde deze naar XGp2NSkTRVs. De parameter date= komt overeen met de datum van elke wisseling. De eerste loader die we vastlegden was voor het laatst gewijzigd op 2 maart 2026 om 09:58:50 GMT.
We deobfusceerden de loader en ontdekten dat deze het volgende doet:
- Console kapen. Het overschrijft alle 7 consolemethoden (
log,warn,info,error,exception,table,trace) direct bij het laden, voordat er een payload wordt uitgevoerd. Dit betekent dat pogingen om te debuggen of informatie te loggen stilzwijgend worden geblokkeerd. - Anti-iframe-controle. Het vergelijkt
window.selfmetwindow.topen stopt als de loader binnen een iframe wordt uitgevoerd. Dit zorgt ervoor dat het alleen wordt uitgevoerd in de top-level browsing context, waardoor analyse- of sandboxomgevingen die iframes gebruiken worden vermeden. - Dedup-cookiecontrole. Het leest de cookie
__tr_luptvvia eengetCookie()-hulpfunctie. Als de cookie al bestaat, stopt de loader. Deze cookie wordt door de payload ingesteld na uitvoering en dient twee doelen: aanvallersattributie voor commissiefraude en een "niet twee keer uitvoeren"-beveiliging die herhaalde uitvoering over paginalaadacties voorkomt. - Serversijdige targetingaanvraag. Het stuurt een POST naar
msclairty[.]commetContent-Type: application/x-www-form-urlencodedmet vier parameters:url(de huidige pagina-URL),referrer(document.referrer),unique_id(de campagne-ID uit de parameterid=) enext: 'twsc'(de affiliate-identifier van de aanvaller, hardgecodeerd). De server antwoordt met JSON met een velddata(de Base64-gecodeerde bestandsnaam voor de payload) en een veldtype(welke?type=-variant geladen moet worden). - Dynamische payload-injectie. Het construeert de fase 2-URL door de serverrespons samen te voegen:
https://msclairty[.]com/js/+response.data+.js?type=+response.type, maakt een ` De loader stuurt de pagina-URL en referrer, en de server antwoordt met zowel de gecodeerde payload-bestandsnaam als de waarde?type=. Dit betekent dat verschillende sites, pagina's of referrers verschillende payloadvarianten kunnen ontvangen. Een productpagina kan bijvoorbeeldtype=1krijgen (stille cookie stuffing), terwijl een afrekenpaginatype=5kan krijgen (gedwongen omleiding). De targetinglogica is volledig serversijdig en onzichtbaar voor client-side analyse.Fase 2: Geobfusceerde payload
hxxps://msclairty[.]com/js/[Base64-encoded-blob].js?type=[1-5]De payload weegt 10.007 bytes. De Base64-achtige bestandsnaam wordt serversijdig gegenereerd op basis van de pagina-URL en referrer die door de loader zijn verzonden. De parameter
?type=, ook gekozen door de server, selecteert welke van de vijf aanvalsvarianten wordt uitgevoerd. De functie in elke payload is vernoemd naar de variant (type1(),type2(),type8(),type9(),type11()).Welke beveiligingstools markeren msclairty[.]com?
Geen enkele. We hebben elk groot dreigingsinformatieplatform en beveiligingshulpmiddel gecontroleerd. Vanaf publicatie markeert niet één ervan msclairty[.]com als kwaadaardig:
- VirusTotal: 0 van de 90+ engine-detecties
- urlscan.io: geen scanresultaten, geen community-inzendingen
- Google Safe Browsing: niet gemarkeerd
- SecurityTrails: geen DNS-geschiedenis, geen WHOIS-verrijking
- ANY.RUN: geen sandbox-inzendingen voor dit domein
- Hybrid Analysis / Falcon Sandbox: geen resultaten
- PhishTank: niet vermeld
- OpenPhish: niet vermeld
- MalwareBazaar: geen samples
- ThreatFox (abuse.ch): geen IOC-vermeldingen
- Cloudflare Radar: geen gegevens
Dit is nul dekking op elk groot platform. Kortom: dit artikel is de eerste publieke documentatie van dit domein dat voor kwaadaardige doeleinden wordt gebruikt.
Hoe cside dit script detecteerde
cside detecteerde dit script autonoom via runtime-gedragsanalyse. Geen dreigingsfeed markeerde het domein. Geen scanner leverde de payload op. Geen handtekening kwam overeen. De detectie was volledig gebaseerd op wat het script in de browser deed: trackingcookies verwijderen, een verborgen iframe injecteren, de Fetch API kapen en de console onderdrukken.
Scripts van browserextensies vallen buiten uw controle als website-eigenaar. U kunt niet voorkomen dat een extensie code in uw pagina's injecteert. Maar het helpt om te weten dat het misbruik plaatsvindt. Het script verwijdert bijvoorbeeld de legitieme RedTrack-attributiecookie (
rtkclickid-store) en vervangt deze door het eigen affiliate-token van de aanvallerpub=twscvia de omleidingsketen vandiscounthero[.]org. Als u RedTrack gebruikt voor het bijhouden van affiliate-conversies of afhankelijk bent van nauwkeurige verkeersattributie, steelt dit soort fraude actief commissie van uw legitieme affiliates — en u zou het nooit zien zonder client-side zichtbaarheid.Gebruik cside om te begrijpen hoe uw applicatie zich in de browser gedraagt. Detecteer signalen van fraude door bezoekers, AI-agents en client-side afhankelijkheden.
cside heeft deze informatie gedeeld met Microsoft zodat zij een takedown van
msclairty[.]comkunnen nastreven wegens kwaadaardig typosquatten van hun Clarity-merk. We hebben ook contact opgenomen met RedTrack, omdat hunrtkclickid-store-attributiecookie expliciet wordt getarget voor verwijdering in deze aanval en het affiliate-tokenpub=twscwordt gebruikt om legitieme RedTrack-klikattributie te overschrijven met frauduleuze commissieclaims.Gratis starten of een demo boeken om met ons team te spreken.
Waarom krijgen AI-tools en scanners een 403 van msclairty[.]com?
De server achter
msclairty[.]comdraait op een Express (Node.js)-backend die wordt voorzien van Cloudflare. Responsheaders bevattenx-powered-by: Express,cf-cache-statusenaccess-control-allow-origin: *. De payload wordt gecached door Cloudflare met eenmax-agevan 14400 seconden (4 uur).Ondanks het gebruik van Cloudflare blokkeert de server actief geautomatiseerde analyse. Wanneer AI-gestuurde tools zoals ChatGPT, Claude en Perplexity proberen inhoud van het domein op te halen, geeft de server een
403 Forbidden-respons terug. Hetzelfde geldt voor geautomatiseerde beveiligingsscanners en elk verzoek afkomstig van datacenter-IP-bereiken.Dit is bewuste filtering op basis van IP-adresbereiken, user-agent-strings of andere verzoekvingerafdrukken. De server levert de kwaadaardige JavaScript-payload alleen wanneer het verzoek afkomstig lijkt te zijn van een echte browser met de juiste referrer, user-agent en headers. Datacenter-IP's, bekende bot-user-agents en verzoekhandtekeningen van AI-tools worden allemaal geblokkeerd.
Dit anti-onderzoeksgedrag verklaart ook waarom VirusTotal, urlscan.io en andere scanplatforms schone resultaten of helemaal geen resultaten teruggeven. Ze ontvangen de echte payload nooit.
Wat onthullen de verzoekheaders over de msclairty[.]com-extensie?
Elk verzoek in onze telemetrie deelt een identieke browservingerafdruk: Windows 10 x64, desktop Google Chrome,
sec-ch-ua-mobile: ?0. Er is niet één verzoek van Firefox, Safari, Edge, Brave of een mobiele browser. Geen macOS, Linux, Android of iOS.Dit is significant. Als de extensie beschikbaar was in het bredere Chromium-ecosysteem, zouden we Edge- of Brave-user-agents in de mix verwachten, omdat beide Chrome Web Store-extensies ondersteunen. Het feit dat elk verzoek "Google Chrome" rapporteert in de
sec-ch-ua-clienthints en standaard Chrome-user-agent-strings suggereert dat dit ofwel een Chrome-only extensie is, of tot nu toe alleen door Chrome-gebruikers is geïnstalleerd.Drie Chrome-versies komen voor in de gegevens: 132, 138 en 145. Chrome 132 werd uitgebracht in januari 2025 en is inmiddels verouderd. Chrome 138 en 145 zijn recenter. De spreiding over versies sluit een versiespecifiek exploit uit en is consistent met een vrijwillig geïnstalleerde extensie die Chrome-updates overleeft.
Andere opvallende headerpatronen:
De header
sec-fetch-storage-accessverschijnt met de waardenactiveennonebij de initiële scriptladingen (sec-fetch-dest: script). Dit geeft aan dat de extensie interactie heeft met de Storage Access API, die cross-site cookietoegang regelt. Dit is consistent met een extensie die cross-site opslag nodig heeft voor haar cookie-stuffing-mechanisme.Alle POST-verzoeken gebruiken
content-type: application/jsonmet variërendecontent-length-waarden van 604 tot 10.246 bytes. Dit zijn deevent.js-beacons die gegevens terugsturen naarmsclairty[.]com. De variërende payloadgroottes suggereren dat het script verschillende hoeveelheden pagina- of sessiegegevens exfiltreert afhankelijk van de browsing context.De header
dnt: 1(Do Not Track) is aanwezig bij verzoeken van Chrome 145- en Chrome 138-gebruikers, maar afwezig bij Chrome 132. Dit is een gebruikersvoorkeur, geen extensiegedrag, maar het bevestigt dat dit echte eindgebruikers zijn met individueel geconfigureerde browsers.Wanneer werd het domein msclairty[.]com geregistreerd?
Het SSL-certificaat voor
msclairty[.]comwerd uitgegeven op 20 februari 2026 om 20:14:54 UTC. Dat is slechts 10 dagen voordat we op 2 maart voor het eerst live verkeer van dit domein observeerden. Dit is een vers geregistreerd domein, speciaal gebouwd voor deze campagne.WHOIS-registratiegegevens zijn verborgen achter een privacyservice. Er bestaan geen historische DNS-records voor dit domein in SecurityTrails of passieve DNS-databases.
Wat doet het msclairty[.]com-script?
Na deobfuscatie voert het script zes afzonderlijke acties uit. Geen van deze heeft iets te maken met analytics of heatmaps.
Stap 1: DevTools-detectie
Het script controleert of de browser-ontwikkelaarstools open zijn voordat het iets uitvoert. Het vergelijkt
window.outerWidth - window.innerWidthenwindow.outerHeight - window.innerHeightmet een drempelwaarde van 120 pixels. Het controleert ook opFirebugenwindow.chrome.isInitialized.Als een controle aangeeft dat iemand de pagina inspecteert, stopt het script onmiddellijk. Het wordt alleen uitgevoerd voor echte gebruikers, nooit voor ontwikkelaars of beveiligingsonderzoekers.
Stap 2: Console kapen
Het script overschrijft zeven native
console-methoden:log,warn,info,error,exception,tableentrace. Alle zeven worden vervangen door lege no-op-functies. Dit voorkomt dat waarschuwingen of debug-uitvoer verschijnen als iemand DevTools opent nadat het script is geladen.Een aparte
console.clear()-aanroep wordt na een timer van 3 seconden uitgevoerd om alles te wissen dat mogelijk is gelogd voordat de overschrijving van kracht werd.Stap 3: Verwijderen van trackingcookies
Het script verwijdert de volgende cookies op zowel padniveau als rootdomeinniveau:
_ga(Google Analytics-client-ID)_gid(Google Analytics-sessie-ID)rtkclickid-store(RedTrack affiliate-klikattributie)
Dit is het belangrijkste gedrag om te begrijpen. Door de RedTrack-cookie
rtkclickid-storete verwijderen, wist het script de legitieme affiliate-klikattributie voor die bezoeker. Door ook Google Analytics-cookies te verwijderen, wordt elk bewijs van hoe de gebruiker op de site is terechtgekomen gewist. De werkelijke verkeersbron van de bezoeker verdwijnt volledig. Dit maakt de weg vrij voor het eigen affiliate-token van de aanvaller (pub=twsc) om de enige attributiebron te worden.Stap 4: Verborgen iframe-injectie en affiliate cookie stuffing
Een verborgen iframe van 1x1 pixel wordt in de paginabody geïnjecteerd. Het iframe laadt de volgende URL:
hxxps://discounthero[.]org/us/s/red_u_plain.php?t=direct&s=287&d=[target]&pub=twscHet iframe gebruikt
referrerpolicy="noreferrer"om de referrer-header te onderdrukken.Dit is wat elke URL-parameter betekent:
t=direct: verkeerstype-markerings=287: campagne-identifierd=[target]: de site die wordt opgelicht (de waarde verandert per slachtoffersite)pub=twsc: de affiliate-publisher-ID van de aanvaller
De waarde
pub=twscis het affiliate-account dat de frauduleuze commissie ontvangt. Dit is de kern van de aanval. Het verborgen iframe laadt stilletjes een omleidingsketen viadiscounthero[.]orgdie een affiliate-cookie in de browser van de gebruiker plaatst. Als de gebruiker later de doelsite bezoekt en een aankoop doet, verdient de aanvaller achterpub=twsceen commissie die hij nooit heeft gegenereerd. Het verwijderen van cookies in stap 3 zorgt ervoor dat er geen concurrerende attributie bestaat.Na 20 seconden wordt het iframe uit de DOM verwijderd. Er blijft geen visueel spoor achter op de pagina.
Stap 5: Fetch API kapen
Binnen het geïnjecteerde iframe monkey-patcht het script
window.fetch. Elk fetch-verzoek datnivtrck[.]combevat (gecodeerd alsbml2dHJjay5jb20=in Base64) wordt stilzwijgend geblokkeerd met een afgewezen Promise.Dit voorkomt dat een concurrerende trackingdienst de werkelijke verkeersbron registreert. De aanvaller wil niet alleen krediet voor het bezoek; hij blokkeert actief andere trackers om te voorkomen dat zij attributiegegevens vastleggen die zijn frauduleuze cookie zouden tegenspreken.
Stap 6: Referrer-onderdrukking en trackingcookie van de aanvaller
Een tag `` wordt geïnjecteerd in de `` van de pagina, waardoor referrer-headers bij alle uitgaande navigaties worden onderdrukt. Dit verbergt de fraude voor downstream analytics op de doelsite.
Het script stelt ook zijn eigen trackingcookie in:
__tr_luptv = [huidige tijdstempel minus 300000 milliseconden]De cookiewaarde is
Date.now() - 300000(huidige tijd minus 5 minuten), ingesteld op zowel het rootpad als het rootdomein van de site. Deze teruggedateerde tijdstempel signaleert waarschijnlijk aan de omleidingsketen vandiscounthero[.]orgdat de bezoeker al is getagd en niet opnieuw verwerkt moet worden.Hoe is het msclairty[.]com-script geobfusceerd?
De code gebruikt een standaard maar effectieve obfuscatiestack die de meeste statische analysetools versloeg:
- Een geroteerde tekenreeksarray met ongeveer 95 Base64-gecodeerde vermeldingen
- Een decoderfunctie die array-indices tijdens runtime vertaalt naar leesbare tekenreeksen
- Proxy-objecten die functieaanroepen en tekenreeksreferenties verbergen achter gerandomiseerde eigenschapsnamen
- Een IIFE-shufflelus die de array roteert totdat een controlesom overeenkomt, zodat de decoder correcte waarden produceert
De geobfusceerde code ziet eruit als willekeurige ruis. Geen enkel statisch analysetools, handtekeningscanner of op regex gebaseerde detectie zal kwaadaardig gedrag identificeren uit de ruwe broncode. U moet de decoder uitvoeren om te zien wat het script doet.
Wat is discounthero[.]org?
discounthero[.]orgis het omleidingseindpunt voor affiliate-fraude dat in deze aanval wordt gebruikt. In tegenstelling totmsclairty[.]comheeft dit domein een gevestigde aanwezigheid op meerdere dreigingsinformatieplatforms:- Gehost op AWS-infrastructuur op IP
3.68.5.1(AS16509, AMAZON-02), geogelokaliseerd in Duitsland - Geclassificeerd als adware-distributeur door Gridinsoft
- Gemarkeerd als kwaadaardig in ANY.RUN-sandboxanalyses met Tycoon 2FA-phishingindicatoren
- Verscheen in Falcon Sandbox-analyserapporten naast bekende advertentiefraude-domeinen
- Door gebruikers op meerdere browserfora gemeld als bron van malvertising-omleidingen, waaronder incidenten op de Daz3D-communityforums
- Gebruikt het omleidingseindpunt
red_u_plain.phpmet per-campagneparameters (s=,d=,pub=,t=) - Omleidingsketen loopt via
gracylifestyle[.]com(Cloudflare) naard33old9jdtt77h.cloudfront.net(Amazon CloudFront)
Wat is nivtrck[.]com?
nivtrck[.]comis het trackingdomein dat het script actief blokkeert via het kapen van de Fetch API. Dit domein heeft nul publieke documentatie op alle dreigingsinformatieplatforms, sandboxrapporten en WHOIS-historiedatabases. Het kan een legitieme trackingdienst zijn waarvan de aanvaller de attributie wil onderdrukken, of het kan toebehoren aan een concurrerende fraudeoperatie.Indicatoren van compromittering (IOC's) voor msclairty[.]com
Type Waarde Doel Domein msclairty[.]comScriptlevering, typosquat van Microsoft Clarity URL msclairty[.]com/event.jsFase 1 loader-script URL msclairty[.]com/js/[encoded].js?type=1Fase 2 geobfusceerde payload SHA256 7ad3dcdcc83eba9298b800a9cbbc00720c35859880bf00ba7bab8883f750f0ffevent.js (loader) hash, 8.599 bytes SHA256 27e6d46c37d2cb8ef3cf21b70ce03b5090eae988f4e3923cd0902a7bde8c4e94Payload (.js?type=1) hash, 10.007 bytes Campagne-ID id=dHRcSiYkDj4Campagne 2 maart 2026 (wisselt dagelijks) Campagne-ID id=XGp2NSkTRVsCampagne 3 maart 2026 (wisselt dagelijks) Domein discounthero[.]orgOmleidingseindpunt voor affiliate-fraude IP-adres 3.68.5.1Hosting discounthero[.]org (AWS, Duitsland) ASN AS16509 (AMAZON-02) Infrastructuur discounthero[.]org Domein nivtrck[.]comConcurrerende tracker geblokkeerd door het script Cookienaam __tr_luptvAanvallersattributiecookie EN loader-dedup-vlag Cookiewaarde Date.now() - 300000Teruggedateerde tijdstempel, 5 minuten in het verleden Affiliate-ID pub=twscPublisher-account van de aanvaller voor commissiefraude Loader POST-param ext: 'twsc'Hardgecodeerde affiliate-identifier in loader-targetingverzoek Loader POST-param url,referrer,unique_idPagina-URL, referrer en campagne-ID verzonden naar server Content-Type application/x-www-form-urlencodedIndeling van loader-targeting-POST-verzoek Campagne-ID s=287Campagne-identifier in omleidings-URL Payloadvariant ?type=1(functietype1)Stille affiliate cookie stuffing via verborgen iframe Payloadvariant ?type=2(functietype2)Cookie stuffing + inhoudinjectie via {{link2}}-sjabloonPayloadvariant ?type=3(functietype8)Klikhijacking: voegt affiliate-omleiding toe aan uitgaande links Payloadvariant ?type=4(functietype9)Klikhijacking: stuurt gebruiker eerst naar discounthero Payloadvariant ?type=5(functietype11)Auto-omleiding: navigeert pagina gedwongen na 400ms URL-pad /us/s/red_u_plain.phpOmleidingshandler van discounthero[.]org SSL-certificaat uitgegeven 20 februari 2026, 20:14:54 UTC Domein opgezet 10 dagen voor eerste waargenomen verkeer Loader gewijzigd 2 maart 2026, 09:58:50 GMT Tijdstempel laatste wijziging event.js Eerste waarneming 2 maart 2026, 21:17:09 UTC Vroegste verkeer in cside-telemetrie ETag W/"2717-Eekqo9gobf+ksAb6+kvO6VgzCto"Payload-ETag (ongewijzigd bij alle verzoeken) ETag W/"2197-19cadfc7987"event.js ETag (ongewijzigd bij alle verzoeken) Infrastructuur Cloudflare + Express (Node.js) Serverstack van msclairty[.]com Injectievector Browserextensie (niet geïdentificeerd) Scriptleveringsmechanisme Waarom omzeilt deze aanval traditionele beveiligingstools?
Deze aanval omzeilt traditionele beveiligingstools om twee redenen: de injectievector en de ontwijkingstechnieken.
Het script wordt geïnjecteerd door een browserextensie, niet ingebed in de broncode van de site. Dit betekent dat Content Security Policy-headers het niet blokkeren. Tag-audits vinden het niet. Subresource Integrity-controles zijn niet van toepassing. Beveiligingstools aan de serverzijde hebben geen zichtbaarheid in wat een browserextensie tijdens runtime in de pagina injecteert.
Bovendien filtert de server achter
msclairty[.]comverzoeken agressief. Beveiligingsscanners, AI-gestuurde onderzoekstools en elk verzoek van een datacenter-IP of bekende bot-user-agent ontvangen een403 Forbidden-respons. Zelfs als een scanner de echte payload zou ophalen, bevat de geobfusceerde broncode geen herkenbare handtekeningen of bekende kwaadaardige patronen die statische analyse zou markeren.Het script ontwijkt ook handmatig onderzoek. Het detecteert open DevTools en stopt. Het overschrijft alle consolemethoden. Het verwijdert het iframe uit de DOM na 20 seconden. Het wist de console na 3 seconden.
De loader voegt nog een laag toe: het koppelt
history.pushState,history.replaceStateenpopstateom opnieuw te activeren bij elke client-side navigatie in single-page applications. Elke routewijziging stuurt de nieuwe URL naar de server voor nieuwe targeting. En omdat de server bepaalt welke payloadvariant wordt geleverd op basis van de pagina-URL en referrer, kan statische analyse van één vastgelegde payload niet het volledige aanvalsbereik van de infrastructuur onthullen.Hoe detecteer je affiliate cookie stuffing-aanvallen zoals deze?
Detectie op basis van blokkeerlijsten werkt niet tegen dit type aanval. Het domein is te nieuw voor een dreigingsfeed om het te hebben geïndexeerd. De obfuscatie versloeg statische analyse. De server blokkeert geautomatiseerde scanners en AI-tools met 403-responses.
De enige betrouwbare detectiemethode is runtime-gedragsanalyse: monitoren wat scripts in de browser doen in plaats van hun broncode te analyseren of hun domein te controleren aan de hand van een blokkeerlijst. Het verwijderen van cookies, het injecteren van verborgen iframes, het kapen van de Fetch API en het onderdrukken van de console zijn allemaal waarneembare gedragingen die duidelijk kwaadaardig zijn, ongeacht hoe de broncode eruitziet of waar het script vandaan is geladen.
Dit is precies waarvoor real-time client-side beveiligingsmonitoring is gebouwd.
Wat betekent de parameter ?type=?
De URL accepteert een queryparameter
?type=die selecteert welke aanvalspayload de server teruggeeft. We hebben vijf varianten bevestigd. Elke variant escaleert in agressiviteit. Alle vijf delen dezelfde ontwijkingskern: DevTools-detectie (stopt als open, drempelwaarde 150px), console kapen (7 methoden overschreven), cookie verwijderen (_ga,_gid,rtkclickid-storeop pad- en rootdomeinniveau), aanvallersattributiecookie (__tr_luptv=Date.now() - 300000), referrer-onderdrukking via metatag en hetzelfde affiliate-doel (discounthero[.]orgmetpub=twscens=287).De waarde van de parameter
?type=(1 tot en met 5) is opeenvolgend, maar de interne functienamen zijn dat niet. Dit verschil onthult de werkelijke omvang van de infrastructuur.?type=1 (functie
type1()) - Stille affiliate cookie stuffingInjecteert een verborgen iframe van 1x1 pixel naar
discounthero[.]orgmetpub=twsc. Het iframe laadt de affiliate-omleidingsketen, plaatst de cookie van de aanvaller en vernietigt zichzelf na 20 seconden. De Fetch API wordt gekaapt om verzoeken naarnivtrck[.]comte blokkeren. De bezoeker ziet niets.?type=2 (functie
type2()) - Cookie stuffing + inhoudinjectieDoet alles wat
type=1doet. Vervolgens haalt het een tweede URL op uit een serversijdige sjabloonvariabele{{link2}}, maakt een tweede verborgen iframe van 0x0 aan, schrijft de opgehaalde HTML erin viacontentWindow.document.write()en vervalst de iframe-URL methistory.replaceState. Het tweede iframe vernietigt zichzelf na 15 seconden. De tijdelijke aanduiding{{link2}}wordt serversijdig per doel ingevuld en kan phishing-overlays, advertentie-injectie of paginamanipulatie leveren.?type=3 (functie
type8()) - Klikhijacking (meeliften)Geen iframe. Installeert een klikgebeurtenisluisteraar op
document.body. Wanneer een bezoeker op een ``-tag klikt met eenhrefdie begint met "http", roept het scriptpreventDefault()aan en leidt de browser vervolgens om naar de oorspronkelijke URL met de affiliate-omleiding vandiscounthero[.]orgtoegevoegd als queryparameter. De gebruiker bereikt nog steeds zijn beoogde bestemming, maar de navigatie loopt onderweg via de omleidingsketen van de aanvaller.?type=4 (functie
type9()) - Klikhijacking (directe omleiding)Dezelfde klikonderschepping als
type=3, maar de omleidingsrichting is omgekeerd. In plaats van de affiliate-URL toe te voegen aan de oorspronkelijke bestemming, stuurt het de gebruiker rechtstreeks naardiscounthero[.]orgmet de oorspronkelijke URL gecodeerd als parameter viaencodeURIComponent(). De gebruiker navigeert zichtbaar eerst via de infrastructuur van de aanvaller en wordt daarna doorgestuurd naar zijn beoogde bestemming nadat de affiliate-cookie is geplaatst.?type=5 (functie
type11()) - Auto-omleiding (geen klik vereist)De meest agressieve variant. Geen iframe. Geen klikonderschepping. Na een vertraging van 400 milliseconden leidt het script de volledige pagina gedwongen om via
window.location.search. De gebruiker wordt automatisch weggeleid van de pagina die hij bekeek naar de affiliate-keten vandiscounthero[.]org. Geen interactie vereist. De vertraging van 400ms is net lang genoeg om het verwijderen van cookies en het instellen van de__tr_luptv-cookie te voltooien voordat de omleiding plaatsvindt.De functienamen zijn niet opeenvolgend. De parameter
?type=loopt van 1 tot 5, maar de functies hetentype1,type2,type8,type9entype11. Waarden boven 5 geven lege responses terug. De hiaten in de functienummering (type3tot en mettype7,type10) weerspiegelen waarschijnlijk buiten gebruik gestelde of verouderde varianten uit eerdere iteraties van deze infrastructuur. Vijf actieve payloadtypen, escalerend van stil naar gedwongen.









