Een met een trojan geïnfecteerde Slack-download van een typosquatting-website biedt aanvallers iets waar de meeste gebruikers niet eens op zouden letten: een verborgen desktop die op hun computer draait.
Het installatieprogramma ziet er legitiem uit en start zelfs een werkende versie van Slack op. Maar op de achtergrond kan het een onzichtbare sessie opzetten waarin aanvallers kunnen rondkijken, toegang krijgen tot accounts en interactie hebben met je systeem zonder dat er iets op je scherm verschijnt. Voor alle duidelijkheid: deze campagne heeft niets te maken met het bedrijf Slack, en we hebben hen op de hoogte gebracht van onze bevindingen.
Slack heeft tientallen miljoenen dagelijkse actieve gebruikers verspreid over meer dan 200.000 betalende organisaties in meer dan 150 landen, waaronder 77 van de Fortune 100. Een geïnfecteerd installatieprogramma vormt dus niet alleen een bedreiging voor de persoon die het uitvoert, maar ook voor bedrijfsnetwerken, accounts die via SSO zijn gekoppeld en interne communicatie.
Iedereen vertrouwt het logo

Slack is een van die apps die mensen zonder erbij na te denken installeren. Het staat ernaast. Chrome Zoom behoort tot het pantheon van software die werknemers op hun eerste werkdag downloaden, vaak via een snelle Google-zoekopdracht in plaats van een opgeslagen link. Dat maakt het zo aantrekkelijk. Het merk is direct herkenbaar, het installatieprogramma is iets wat miljoenen mensen al eens hebben gebruikt, en de hele ervaring van het installeren voelt volkomen normaal aan.
De aanvallers achter deze campagne hebben het domein geregistreerd slacks[.]pro (let op de extra „s“ en het .pro-topniveaudomein in plaats van .com). De broncode van de site bevat een JavaScript-klikhandler die elke klik op de pagina onderschept en de browser doorverwijst naar een download die op een apart domein wordt gehost, debtclean-ua[.]sbs. De enige klikken die worden uitgesloten, zijn de knoppen voor het accepteren van cookies; al het andere zet de download in gang. Dit is geen echte drive-by-aanval waarbij de browser ongemerkt wordt misbruikt, maar het komt wel in de buurt: er is slechts één klik van een afgeleide gebruiker voor nodig.
Wat op het bureaublad van het slachtoffer verschijnt, is een bestand met de naam slack-4-49-81.exe, een naam die zo sterk lijkt op de echte versienummering van Slack dat de meeste mensen er geen moment over zouden twijfelen.

Dit is geen onbekende tactiek. In augustus 2024 hebben we een vrijwel identieke campagne gedocumenteerd waarbij frauduleuze Google Ads werden gebruikt om zoekopdrachten op Slack om te leiden naar een kwaadaardige downloadpagina. Via die aanvallen werd SecTopRAT verspreid, een trojan voor toegang op afstand met mogelijkheden om gegevens te stelen.
Deze campagnes blijven maar terugkomen omdat de formule werkt: aanvallers kiezen een vertrouwd merk, registreren een overtuigend domein en rekenen erop dat de meeste mensen een URL niet kritisch bekijken als ze gewoon aan het werk willen gaan.
Een echte installatie en een verborgen loader, die naast elkaar draaien
Dit is wat dit specifieke voorbeeld zo slim maakt: het doet niet alleen alsof het Slack installeert. Het installeert daadwerkelijk een werkende versie van de applicatie, terwijl op de achtergrond tegelijkertijd een malware-loader wordt uitgevoerd. Het slachtoffer ziet een legitiem welkomstscherm, ziet Slack in de taakbalk verschijnen en heeft geen enkele reden om te vermoeden dat er iets mis is gegaan.
Heb je iets meegenomen wat je beter niet had kunnen meenemen?
Binnen enkele seconden na de lancering, slack-4-49-81.exe schrijft twee tijdelijke bestanden naar de map van de gebruiker %TEMP% map. De eerste, slack.tmpHet is een afleidingsmanoeuvre: een zelfuitpakkend Squirrel-installatiepakket. Squirrel is een legitiem, open-source updateframework dat is ingebouwd in tientallen Electron-apps, waaronder de echte Slack, Discord en Microsoft. Teams De dropper bevat een authentiek exemplaar van Squirrel's. Update.exe naast een NuGet-pakket met de naam slack-4.49.81-full.nupkg, een splash-afbeelding met het merk (background.gif), en een release-manifest. Wanneer slack.tmp wanneer het wordt uitgevoerd, wordt dit alles uitgepakt naar %LOCALAPPDATA%\SquirrelTemp, lanceert Update.exe met een standaard --install vlag, en vanaf dat moment verloopt de installatie van Slack precies zoals wanneer de gebruiker de app had gedownload van slack.com. Slack start op, ziet er goed uit en werkt.
Het tweede bestand, svc.tmp, komt enkele seconden later binnen. Dit is de loader: een apart uitvoerbaar bestand van ongeveer 519 KB dat in het installatieprogramma van 150 MB is ingebed en wordt uitgepakt naar %TEMP% naast het lokmiddel. Het is niet ondertekend en identificeert zichzelf in de metadata van het uitvoerbare bestand (PE) als Windows Component Update Service van Microsoft Corporation, en heeft geen verband met het Squirrel-framework of de Slack-applicatie die ernaast wordt geïnstalleerd. Vrijwel direct wordt er een klein bestand aangemaakt met de naam loader_log.txt in de tijdelijke map, waarmee wordt bevestigd dat de laadfase is gestart, en probeert verbinding te maken met een command-and-control (C2)-server op 94.232.46.16 op TCP-poort 8081.
Ondertussen wordt de installatie van Squirrel voltooid en wordt er een Run-sleutel in het register geschreven om herstarts te overleven: naam van de waarde com.squirrel.slack.slack onder HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. Dit is precies de bestandsnaam en het pad die bij een legitieme Slack-installatie worden aangemaakt. Een IT-beheerder die door de items in de automatische opstartlijst bladert, zou dit zien als een normale Slack-installatie en gewoon verdergaan.
Een kijkje in de loader: wat statische analyse aan het licht brengt
Om te begrijpen wat de loader precies doet zodra hij een C2-kanaal heeft, hebben we het binaire bestand rechtstreeks onderzocht. De PE-versie-informatie geeft aan dat het een Windows Component Update Service (interne naam) WinSvcUpd.exe), uitgegeven door Microsoft Corporation, versie 1.4.2.0. Niets van dit alles is waar. Het is een vals spoor dat bedoeld is om bij een vluchtige blik in een proceslijst of taakbeheer niet op te vallen.
Het binaire bestand is 64-bits. Windows Uitvoerbaar bestand gecompileerd met MSVC. De zeven PE-secties hebben willekeurige namen, zoals .7ssik, .d1npl, .m6zef, in plaats van de standaard .text- en .rdata-bestanden die door gewone compilers worden gegenereerd, wat aansluit bij het gebruik van een aangepaste builder of crypter-tool. De importtabel is bewust minimaal gehouden: 90 functies uit KERNEL32.dll en verder niets. Er zijn geen statische imports voor netwerkfunctionaliteit, toegang tot het register of procesmanipulatie. In plaats daarvan worden die API’s tijdens de uitvoering opgelost met behulp van GetProcAddress en LoadLibraryExW, een gangbare techniek waarmee de werkelijke mogelijkheden van het binaire bestand worden verborgen voor analyse van de importtabellen.

Wat dit voorbeeld zo bijzonder maakt voor een loader, is hoe veel informatie het intern prijsgeeft. Het binaire bestand zit vol met debug-strings die de volledige architectuur ervan in kaart brengen, georganiseerd in gelabelde subsystemen. Deze strings waren nooit bedoeld om door het slachtoffer te worden gezien. Het zijn diagnostische gegevens van de ontwikkelaar die in de build zijn achtergebleven, en ze vertellen ons precies waarvoor deze tool is ontworpen.
Strings met voorvoegsel [P1] beschrijf de eerste fase: de loader downloadt een payload van zijn C2 ([P1] Downloading payload...). De download zelf maakt gebruik van WinHTTP, dat tijdens de uitvoering wordt geladen. De foutopsporingsstrings [HTTP] Connect, [HTTP] Send, en [HTTP] Recv de volledige verzoekcyclus volgen, terwijl [HTTP] winhttp unavailable onthult het terugvalpad als de bibliotheek niet kan worden geladen. Het slaat de payload op in gedeeld geheugen via Windows API's voor bestandstoewijzing ([P1] Payload in shared memory), en start een tweede exemplaar van zichzelf op als Fase 2 ([P1] Phase-2 launched). In fase 2 wordt de payload uit het gedeelde geheugen gelezen ([P2] Payload copied from shared memory) en decodeert deze. De tekenreeksen [CRYPT] Decrypting... en [CRYPT] MZ OK bevestigen dat de payload versleuteld aankomt en gevalideerd is als een Windows uitvoerbaar na decryptie. De gedecrypteerde DLL wordt naar de schijf geschreven onder een bestandsnaam die overeenkomt met het patroon. wmiprvse_*.tmp, ontworpen om op te gaan in tijdelijke bestanden die door de legitieme gebruiker worden aangemaakt Windows WMI-providerhost.
De loader is vervolgens zo ontworpen dat hij een specifieke geëxporteerde functie uit de gedecodeerde DLL aanroept: HvncRun. De snaren [LOAD] Calling HvncRun... en --- HvncClient log --- de payload identificeren als een HVNC-client, een tool voor Hidden Virtual Network Computing. HVNC verschilt op een cruciaal punt van een conventionele trojan voor externe toegang: het creëert een volledig afzonderlijke, onzichtbare desktopsessie op de computer van het slachtoffer. De aanvaller kan browsers openen, toegang krijgen tot internetbankieren en handelingen verrichten binnen geauthenticeerde sessies zonder dat er iets op het zichtbare scherm van de gebruiker verschijnt. Het is een tool die voornamelijk wordt gebruikt bij financiële fraude.
Om de HVNC-payload heimelijk uit te voeren, is de loader zo ontworpen dat hij de DLL in explorer.exe met behulp van een techniek die bekendstaat als sectiegebaseerde injectie. De strings [INJ] === Section-based injection into explorer.exe === en [INJ] Remote thread created in explorer.exe! beschrijf een reeks stappen waarin de loader een gedeeld geheugengedeelte aanmaakt via NtCreateSection, brengt het in kaart, zowel in zijn eigen proces als in de Windows shell schrijft shellcode en het DLL-pad naar het gedeelde geheugen en start een externe thread via NtCreateThreadEx. Dit is een moeilijker te detecteren variant van procesinjectie dan de klassieke WriteProcessMemory aanpak, omdat hiermee wordt voorkomen dat er rechtstreeks naar het geheugen van het doel wordt geschreven. Als de NT-API’s niet beschikbaar zijn, schakelt de loader over op het opslaan van de DLL op schijf en het rechtstreeks laden ervan ([INJ] Required NT APIs not available, falling back to DropAndLoad).

Het binaire bestand bevat actieve beveiliging tegen analyse. De tekenreeks [AA] Debugger/sandbox detected geeft aan dat het de situatie in de gaten houdt en zijn gedrag daarop aanpast. Het beschikt over de middelen om dat te doen: IsDebuggerPresent en GetTickCount verschijnen in de importtabel; deze worden vaak gebruikt voor het opsporen van debuggers en het omzeilen van sandboxes op basis van timing, hoewel beide ook standaard CRT-imports zijn in elk door MSVC gecompileerd binair bestand. De debug-string is de duidelijkste aanwijzing dat deze API’s bewust worden gebruikt.
Wat dit betekent voor iemand die het heeft uitgevoerd
Als je Slack ergens anders hebt gedownload dan slack.com de laatste tijd, met name van een domein dat eindigt op .pro, of een site die automatisch een bestand downloadde zodra je ergens op de pagina klikte, neem dat dan serieus.
De loader probeert verbinding te maken met zijn C2-server voordat het Slack-venster volledig is geladen. Hij is zo ontworpen dat hij die verbinding (indien tot stand gebracht) gebruikt om een HVNC-payload te downloaden en te ontsleutelen en deze vervolgens in explorer.exe om vanuit de binnenkant te opereren Windows shell zelf. De Squirrel-installatie schrijft dezelfde Run-sleutel als een legitieme Slack-installatie, waardoor de autostart-vermelding niet te onderscheiden is van die van een schone machine. Ondertussen hoeft de loader maar één keer te slagen: als hij de HVNC-payload downloadt en injecteert in explorer.exe Tijdens de eerste uitvoering heeft de aanvaller een voet aan de grond die blijft bestaan tot de volgende herstart. Of de payload daarna nog langer aanwezig blijft, hangt af van de volgende stappen van de C2-operator.
Hoe blijf ik veilig
Deze campagne is een casestudy over hoeveel technische inspanning er nodig is om er gewoon uit te zien. Eén codepad installeert echte software via een legitiem framework. Het andere pad voert een meerfasige loader uit met dynamische API-resolutie, versleutelde payloadlevering en procesinjectie. Windows Een shell en anti-analysebeveiliging, allemaal verpakt in een binair bestand dat zich voordoet als een Microsoft-service. De lokroep verbergt wat er gaande is, terwijl de loader de aanvaller een toegangspunt biedt.
Sla de echte downloadpagina’s van de software die je gebruikt op als bladwijzer. Als je merkt dat je op Google zoekt naar ‘Slack download’ en op het eerste resultaat klikt dat er goed uitziet, dan ben jij precies de persoon voor wie deze campagne bedoeld is.
- Download Slack alleen via de officiële website. Ga rechtstreeks naar slack.com of gebruik een betrouwbare bladwijzer. Klik niet op advertenties of onbekende links.
- Controleer de URL zorgvuldig. Let op kleine wijzigingen, zoals extra letters of ongebruikelijke domeinnamen (bijvoorbeeld „.pro“ in plaats van „.com“).
- Wees op je hoede voor websites die bij het klikken automatisch een download starten. Als een pagina een bestand begint te downloaden zodra je ergens klikt, sluit deze dan.
- Controleer het installatieprogramma voordat u het uitvoert. Klik met de rechtermuisknop op het bestand, bekijk de eigenschappen en controleer of het een geldige digitale handtekening heeft.
- Maak gebruik van realtime beveiliging. Een beveiligingsprogramma kan bekende schadelijke domeinen blokkeren en verdacht gedrag tijdens de installatie opsporen.
- Let op ongebruikelijk gedrag na het installeren van software. Onverwachte netwerkactiviteit, vertragingen of onbekende processen zijn het onderzoeken waard.
- Als er iets niet klopt, onderneem dan meteen actie. Verbreek de internetverbinding, voer een volledige scan uit en wijzig je wachtwoorden vanaf een veilig apparaat, met name voor je e-mail-, bank- en werkaccounts.
Wat te doen als u mogelijk bent getroffen
- Verbreek onmiddellijk de verbinding met het netwerk om alle actieve C2-sessies te beëindigen.
- Voer een volledige scan uit met Malwarebytes .
- Wijzig alle wachtwoorden voor accounts waarop u vanaf deze computer hebt ingelogd. Doe dit vanaf een ander, niet-besmet apparaat. Geef daarbij voorrang aan e-mail-, bank- en SSO-accounts.
- Als dit een bedrijfscomputer is, neem dan onmiddellijk contact op met uw IT- of beveiligingsteam.
Indicatoren van compromissen (IOC's)
Bestandshashes (SHA-256)
cfd2e466ea5ac50f9d9267f3535a68a23e4ff62e3fe3e20a30ec52024553c564 (slack-4-49-81.exe)
08fd0a82cdeb0a963b7416cf57446564dfed5de5c6f66dee94b36d28bfefec9d (svc.tmp)
Distributie
slacks[.]pro
debtclean-ua[.]sbs
Netwerkindicatoren
94.232.46.16:8081
“Een van de beste cyberbeveiligingspakketten ter wereld.”
Volgens CNET.Lees hun recensie →





