Le groupe Talos Threat Intelligence de Cisco Systems Inc. a détaillé aujourd'hui deux campagnes ClickFix qui poussent la technique au-delà de l'invite PowerShell de copier-coller pour laquelle elle est connue, une qui ne touche jamais du tout le système d'exploitation et une qui se termine par un voleur plus la charge utile de suivi que les opérateurs choisissent de gérer.
ClickFix est apparu en 2024 et est devenu connu pour un seul geste : une page affirmant qu'une vérification a échoué et proposant une commande que le visiteur peut coller dans la boîte de dialogue Exécuter de Windows ou dans un terminal Mac. Le fait que la cible exécute le code évite les avertissements de téléchargement et le filtrage des e-mails qui capturent les pièces jointes. La technique s'est rapidement répandue depuis, apparaissant le mois dernier dans un faux programme d'installation d'OpenAI Codex destiné aux utilisateurs Mac et documenté par Cato Networks Ltd.
Dans la première des campagnes détaillées par Talos, il n’est jamais demandé à la cible d’exécuter quoi que ce soit contre Windows. Le leurre guide la victime en collant du JavaScript dans la barre d'adresse de Chrome ou, dans une version ultérieure, en l'installant dans l'extension de navigateur Tampermonkey, qui recharge le code à chaque visite sur le site ciblé.
Ce que fait le code, c'est survoler. Il connecte l'interface de programmation d'application de récupération du navigateur, remplace les adresses de dépôt de crypto-monnaie dans les réponses du serveur et dans le presse-papiers, et restitue les éléments « bonus » contrefaits dans la page pour tenir compte des numéros que voit la victime. Talos a observé la campagne contre le service de swap SwapZone.io et plus tard contre l'agrégateur de trading SimpleSwap.io.
La commande et le contrôle s'exécutent via l'API de visualisation Google, une fonctionnalité de Google Docs datant de 2008 qui donne un accès gratuit et non authentifié en lecture seule à toute feuille Google publiée publiquement via une requête intégrée dans une URL. Les opérateurs ont caché le code de charge utile obscurci dans une feuille en formatant le texte blanc sur blanc et en poussant les lignes vers le bas. Les demandes proviennent du navigateur, vers docs.google.com, au milieu d'une session par ailleurs normale.
Le leurre est un faux rapport de vulnérabilité divulgué décrivant une faille d'API qui n'existe pas, diffusé via Telegram, le forum de cybercriminalité DarkForums et les sites de collage. Les victimes visées sont des personnes prêtes à l'exploiter : la version SwapZone promettait des paiements environ 38 % plus élevés, la version SimpleSwap réécrit un bonus de fidélité de 25 % déclenché par un écart de validation dans un point de terminaison de fidélité.
Talos a trouvé 49 adresses Bitcoin au cours de la campagne, 30 d'entre elles se répétant dans la plupart des échantillons qu'elle a désobscurcis entre avril et fin juin. Les paiements ont atteint 24 de ces adresses, soit 0,159 bitcoin au total, d'une valeur d'environ 10 000 dollars début août. L'argent est sorti via 30 portefeuilles supplémentaires, puis via des transactions impliquant plus de 3 000 adresses, ce qui correspond à une opération de mixage. Talos a déclaré qu'il ne pouvait pas récupérer d'échantillons avant avril, le total est donc probablement plus élevé.
Les retraits n’ont pas eu lieu. Talos a signalé les documents à Google et aux deux sites en avril, et la campagne a repris une nouvelle forme en une semaine. Après que paste.sh a commencé à détecter automatiquement le script de première étape en juillet, les opérateurs ont également déplacé ce script dans un document Google. Les documents Google ont été à nouveau signalés et sont restés actifs jusqu'au 11 août.
La deuxième campagne démarre probablement sur un site Web compromis sur lequel un Cloudflare Worker malveillant injecte du JavaScript ClearFake. Ce code est stocké dans un contrat intelligent BNB Smart Chain et récupéré au chargement de la page, une technique appelée EtherHiding qui permet aux opérateurs d'échanger la charge utile sans toucher au site. Sous Windows, il superpose un faux CAPTCHA Google et demande au visiteur d'ouvrir la boîte de dialogue Exécuter, de coller et d'appuyer sur Entrée.
La commande collée ouvre un chemin WebDAV sur un sous-domaine aléatoire et exécute une DLL déguisée via rundll32 par ordinal de fonction. Talos a ouvert l'enquête après avoir constaté le même schéma d'exécution de WebDAV dans une organisation gouvernementale ukrainienne en avril, et estime avec une confiance modérée que les attaques ne visaient aucune organisation en particulier. Il suit l'acteur derrière l'activité «vérification.google» sous le nom d'UAT-10820.
Les deux chargeurs fournissent Amatera, un voleur d'informations dont la configuration dans la branche vérification.google couvrait plus de 400 entrées de collection couvrant les navigateurs, les extensions, les applications de messagerie, notamment Telegram, Signal et WhatsApp, les gestionnaires de mots de passe, notamment KeePass, Bitwarden et 1Password, plus de 100 emplacements de portefeuilles de bureau, les applications d'authentification et les clients VPN. Quatre règles de capture de fichiers balayent le bureau, les téléchargements, les documents et les éléments récents pour les clés privées, les sauvegardes de portefeuille, les jetons API et les fichiers de certificat.
Les charges utiles suivantes divergent. Une branche charge une bibliothèque NativeAOT malveillante via un composant Google Chrome signé, et cette bibliothèque charge ZigCryptoStealer, un pirate de presse-papiers écrit en Zig qui extrait son propre domaine de commande et de contrôle d'un deuxième contrat BNB Smart Chain et supprime un pilote signé légitime mais vulnérable dont il abuse pour mettre fin au logiciel de sécurité du mode noyau. Une tâche distincte exécute un proxy TCP inverse Go en mémoire.
L'autre branche exécute PowerShell qui vérifie les numéros de série des volumes, la disponibilité, la synchronisation, le nombre de processeurs, les noms de mémoire et d'adaptateur vidéo pour détecter les signes d'un bac à sable, génère un trafic leurre vers GitHub, npm, PyPI, Docker Hub et NuGet, puis installe une copie renommée de l'outil d'accès à distance NetSupport Manager configuré pour masquer son interface et interroger une passerelle toutes les 60 secondes. Cette passerelle a abouti à une adresse en Russie, que Talos a citée en évaluant avec une confiance modérée qu'un acteur russe était à l'origine des attaques «vérification.google».
Le contrat ZigCryptoStealer donne une idée approximative de l'échelle. Il a été déployé le 16 mars et son opérateur a mis à jour le domaine stocké 39 fois jusqu'au 26 juillet, parcourant six domaines au cours du seul mois de juillet. Cisco Umbrella a enregistré les requêtes pour les plus récentes d'entre elles dans 98 pays, le plus souvent aux États-Unis, en Indonésie, au Brésil, en Inde et en Égypte.
Talos a été franc sur la portée du crypto skimmer. « Bien que cette campagne ne représente pas une menace spécifique pour la plupart des organisations, les approches utilisées par les acteurs ici le sont », ont écrit les chercheurs, soulignant les attaques de la chaîne d'approvisionnement contre le commerce électronique et d'autres systèmes orientés client. Ses recommandations s'appliquent à la gestion du navigateur, en limitant l'installation d'extensions par rôle et en surveillant les requêtes adressées à docs.google.com à partir de processus et de sessions sans autre activité Google Docs.