29 juillet 2025

Des gaming programmes sont de vol de données de joueurs déguisés en applications Electron

Auteurs: Jozsef Gegeny, Ilia Dafchev

Résumé

  • L'Acronis Threat Research Unit (TRU) a découvert une nouvelle campagne de diffusion de malwares impliquant Leet Stealer, RMC Stealer (une version modifiée de Leet Stealer) et Sniffer Stealer.
  • Ces campagnes tirent profit de techniques d'ingénierie sociale, de l'engouement pour les jeux vidéo et usurpent des marques pour inciter les victimes à utiliser le programme d'installation de malwares déguisés en jeux indépendants tels que Baruda Quest, Warstorm Fire et Dire Talon.
  • Ces faux jeux sont promus via des sites web frauduleux et de fausses chaînes YouTube, et sont principalement distribués via Discord. Nous avons utilisé l'outil open source urlscan.io pour récupérer des captures d'écran de faux sites web qui n'étaient plus accessibles au moment de l'enquête. Une fois installés, ils déploient des infostealers capables de collecter des données de navigateur, des identifiants et des jetons Discord.
  • Les conséquences peuvent être graves pour l'individu. Les cybercriminels peuvent usurper l'identité de la victime pour propager des malwares, arnaquer d'autres personnes ou même exiger une rançon avant de restituer l'accessibilité (extorsion). D'autres données sensibles peuvent également être compromises, telles que des identifiants de navigateur, des informations de paiement, des messages privés et des portefeuilles de crypto-monnaie. Les victimes subissent souvent la perte de leur compte, des dommages financiers et une détresse émotionnelle.
  • Nous présentons également une analyse technique détaillée de RMC Stealer, facilitée par une erreur opérationnelle du cybercriminel qui a laissé le code source d'origine non obfusqué dans le packaging du malware.

Introduction

Alors que les menaces liées aux malwares ne cessent d'évoluer, une tendance notable se dessine : un nombre croissant de programmes malveillants sont distribués via Discord, en particulier ceux conçus avec le framework Electron.

Pour ceux qui ne connaissent pas, Discord est une plate-forme de communication gratuite et multiplateforme très prisée des gamers, des développeurs, des communautés et des groupes d'amis. Elle propose des fonctionnalités d'appels vocaux, d'appels vidéo et de discussions au format texte, et est largement utilisée pour partager du contenu en temps réel.

Le framework Electron, peu connu en dehors des cercles de développement, est un outil open source qui permet aux développeurs de créer des applications de bureau multiplateformes en JavaScript, HTML et CSS. Electron combine Node.js pour les fonctionnalités de l'infrastructure principale et Chromium pour le rendu de l'interface utilisateur. On le retrouve dans de nombreuses applications courantes, dont Visual Studio Code, Spotify, Slack, Discord, certaines versions de Skype et Microsoft Teams.

Cet article explore les récentes campagnes de vol de données basées sur le framework Electron, en exposant les techniques et méthodes de distribution observées. Nous allons plus particulièrement examiner des exemples de campagnes impliquant Leet Stealer, RMC Stealer (une version modifiée de Leet Stealer) et Sniffer Stealer.

Notre enquête indique que de nombreux voleurs de données basés sur Electron ont pour origine Fewer Stealer, qui semble être un outil fondateur de cette famille de malwares. La carte de généalogie suivante illustre l'évolution de plusieurs stealers de premier plan, montrant comment les acteurs à l'origine de la menace ont itérativement développé des bases de code antérieures :

Acronis
Figure 1 : Stealers remontant à Fewer Stealer

Leet Stealer a fait son apparition à la fin de l'année 2024. Le malware a été annoncé sur Telegram en novembre, avec les fonctionnalités suivantes :

Acronis
Figure 2 : Fonctionnalités de Leet Stealer

Promu comme un service de diffusion de malwares (MaaS), des plans d'abonnement à plusieurs niveaux ont rapidement été proposés : une offre Starter à 30 $ par mois et une offre Advanced plus riche en fonctionnalités à 40 $ par mois.

Malgré sa popularité relativement modeste (son canal Telegram ne comptait que 387 abonnés début 2025), Leet Stealer ne doit pas être sous-estimé. Malgré un nombre de followers a priori faible, il est suffisamment important pour justifier une attention particulière, surtout compte tenu de l'activité soutenue de développement et de vente.

En avril 2025, le code source de Leet Stealer a été mis en vente, en offre groupée avec un autre stealer connu sous le nom de Hexon Stealer, ce qui suggère un potentiel tuilage opérationnel ou à une même origine :

Acronis
Figure 3 : Code source à vendre

Le développeur de Leet Stealer a déclaré accepter les demandes spéciales de création de programmes personnalisés de vol de données. Nous pensons que RMC Stealer est probablement né de cette manière, à savoir une copie modifiée de Leet Stealer, une connexion confirmée par la comparaison du code.

Acronis
Figure 4: Rebranding

Sur cette image, nous voyons que le développeur a également démarré un nouveau projet appelé Mave Stealer, probablement basé sur le code source de Leet Stealer.

Sniffer Stealer se distingue lui par son caractère atypique. À ce jour, nous n’avons identifié aucune « fourche », aucun clone ou aucune lignée de code en lien avec d’autres familles connues. À ce stade, nous pensons que Sniffer Stealer a pu être développé de manière indépendante, de zéro. Cette analyse pourrait changer à mesure que nous collectons davantage de données.

Détails de la campagne

Dans la section Indicateurs de compromission, nous avons répertorié plusieurs échantillons de voleurs de données collectés au cours des deux derniers mois. Un modèle très clair se dégage des noms des échantillons : la majorité se fait passer pour des programmes d'installation de jeux indépendants, prétendant souvent être associés à Steam ou ayant des noms qui ressemblent à des titres de jeux :

Acronis

Des jeux comme Catly, Eden et Rooted sont répertoriés sur Steam, mais leurs dates de sortie n'ont pas encore été annoncées. Certains d'entre eux pourraient éventuellement être disponibles via le programme d'accès anticipé de Steam, qui permet aux gamers de tester des jeux avant leur sortie officielle. C'est pourquoi l'idée d'un « programme d'installation bêta » semble crédible et enthousiasmante pour de nombreux gamers, en particulier ceux qui aiment découvrir de nouveaux jeux indépendants. Les cybercriminels en profitent pour créer des faux programmes d'installation de jeux qui contiennent en réalité des malwares, qu'ils diffusent sur des plates-formes comme Discord, où l'on partage souvent des liens de jeux. Les paragraphes qui suivent présentent une sélection de faux jeux apparus au cours des deux derniers mois.

Faux jeu n° 1 : Baruda Quest

Pour donner plus de crédibilité à ces faux jeux, les cybercriminels n'hésitent pas à créer des sites web dédiés et même des chaînes YouTube où les promouvoir. Un exemple flagrant est Baruda Quest.

Fausse chaîne YouTube : hxxps://www[.]youtube[.]com/watch?v=N3OTRiidWUQ

Acronis
Figure 5 : Vidéo promotionnelle
Acronis
Figure 6 : Site web frauduleux - hxxps://www[.]barudaquest[.]com/

Le site web proposait des liens de téléchargement pour Windows, Android et macOS. Toutefois, seule la version Windows contenait un malware, une variante de RMC Stealer. Les deux autres liens redirigeaient les utilisateurs vers le jeu virtuel légitime Club Cooee, dont les cybercriminels avaient volé des éléments graphiques et le branding pour donner à Baruda Quest une apparence authentique.

Redirection du bouton Télécharger : hxxps://cdn[.]discordapp[.]com/attachments/1308872370601070710/1353442772497072158/BarudaQuest[.]exe?ex=67e1ab4e&is=67e059ce&hm=63b73c6a74e2e31f6b439fec1c4094a6fd76a894db328effab4ac8ef603e75ad&

Faux jeu n° 2 : Warstorm Fire

Le site web Warstorm Fire était rédigé par défaut en portugais, ce qui laisse penser qu'il provient probablement du Brésil. Les visuels et le branding du jeu ont été directement copiés du jeu légitime Crossfire: Sierra Squad.

Voici une capture d'écran du faux site web tel qu'il apparaissait lorsqu'il était encore activé :

Acronis
Figure 7 : hxxps://warstormfire[.]com/

Le bouton Télécharger procède à une redirection :

Lien malveillant n° 1 : hxxps://warstormfire[.]com/download/warstormfire[.]rar Lien malveillant n° 2 : hxxps://warstormfire[.]com/download/WarstormfireSetup[.]rar

Ces fichiers d'installation contenaient une variante de Sniffer Stealer.

Faux jeu n° 3 : Dire Talon

Dans ce cas, les cybercriminels ont pris le jeu original Project Feline qu'ils ont labellisé à leur nom, à savoir Dire Talon.

Acronis
Figure 8 : hxxps://diretalon[.]com/

Lien de téléchargement : hxxps://www[.]dropbox[.]com/scl/fi/eg0bxaplyr87vbt7t46m8/DireTalon_1[.]2[.]8[.]rar?rlkey=6wl2es2khx4x0blyzq9wwxnqj&st=0s3igvro&dl=1

Dans ce cas, le hacker a protégé le fichier téléchargé avec le mot de passe « DT2025 » :

Acronis
Figure 9 : Téléchargement protégé par mot de passe

Ce programme d'installation déployait également une variante de Sniffer Stealer.

Faux jeu n° 4 : WarHeirs

Autre jeu dont le nom a été modifié. Le fichier d'origine s'appelle The Braves.

Acronis
Figure 10 : hxxps://warheirs[.]com/

Lien de téléchargement malveillant :

hxxps://cdn[.]discordapp[.]com/attachments/1345333906966183958/1345335616187007017/Warheirs[.]rar?ex=67c42cee&is=67c2db6e&hm=bb404897fbc8b87eda9000e3845083f00713cea43fac17f0922fc2f098347eb4&

Après analyse de plusieurs échantillons de faux jeux, nous avons découvert qu'aucun d'entre eux ne comportait de réel contenu de jeu. Le malware exploite au contraire des techniques d'ingénierie sociale pour inciter les victimes à croire que quelque chose s’est mal passé lors de l’installation ou que leur équipement ne répond pas à la configuration système requise du jeu.

Pour nombre de fausses pages web, la langue par défaut est le portugais, ce qui est raccord avec nos observations des données de télémétrie de VirusTotal. L'essentiel des échantillons provenait du Brésil, suivi de près par les États-Unis, ce qui laisse penser que la campagne s'est rapidement étendue à d'autres langues et d'autres régions :

Acronis
Figure 11 : Origines géographiques des échantillons, selon les données de VirusTotal

Bien que la langue portugaise laisse penser que la campagne a pu être lancée au Brésil, la forte présence de soumissions émanant des États-Unis montre que le malware a probablement été distribué plus largement, peut-être via des plates-formes mondiales comme Discord.

Analyse technique

Cette section présente un aperçu technique de la construction de ces échantillons de malware basés sur Electron. Pour ce faire, nous utiliserons un échantillon de la campagne Baruda Quest pour une raison simple : le développeur a accidentellement inclus le code source original et non obfusqué dans le packaging. Cela nous évite de devoir explorer plusieurs couches d'obfuscation afin de comprendre directement le fonctionnement de ces voleurs d'informations.

NSIS

BarudaQuest.exe est un exécutable de 80 Mo, resté indétecté sur VirusTotal pendant plus de deux mois, seuls deux moteurs antivirus sur 71 l'ayant identifié comme malveillant. Ce faible taux de détection est probablement dû à une combinaison de facteurs : la taille importante du fichier, l'utilisation du framework Electron (qui inclut un environnement d'exécution complet) et une obfuscation JavaScript poussée qui complique l'analyse des comportements malveillants.

De plus, l'exécutable est packagé à l'aide du programme d'installation Nullsoft (également connu sous le nom de NSIS) et peut contenir des centaines de fichiers. Heureusement, un seul fichier nous intéresse vraiment : app.asar. Il contient le code JavaScript malveillant. Pour extraire le fichier .asar, nous pouvons utiliser 7-Zip, qui permet d'extraire les fichiers des programmes d'installation NSIS.

Acronis
Figure 12 : 7-Zip peut extraire des fichiers NSIS

Archive Asar

Le fichier app.asar intégré fait environ 8,5 Mo, ce qui est plus raisonnable, mais reste toutefois assez volumineux. Nous allons maintenant voir si nous pouvons aller plus loin. Une archive ASAR commence par un court en-tête binaire de 16 octets, suivi d'un en-tête JSON, puis des fichiers intégrés. À partir de l'en-tête binaire, nous pouvons déterminer la taille de l'en-tête JSON, qui est dans ce cas de 0x5a4ab (369 835 octets), encodé au format little-endian :

Acronis
Figure 13 : Format de fichier Asar

Il est possible d'écrire un script personnalisé pour analyser l'archive ASAR en lisant directement l'en-tête JSON, mais il existe une méthode bien plus simple. Le programme d'installation de Node.js vous permet d'utiliser l'utilitaire asar pour extraire l'archive, comme décrit dans la documentation officielle d'Electron, disponible ici. Une fois extraite, l'archive ASAR révèle la structure de fichiers et de répertoires suivante :

Acronis
Figure 14 : Fichiers extraits

Le fichier package.json‫ : spécifie l'emplacement du script principal

Acronis
Figure 15 : Contenu du package.json

Chargeur de bytecode

Lors de l'inspection du répertoire /out/main, nous avons fait une découverte inquiétante : le malware a été compilé en bytecode JavaScript et est exécuté par une machine virtuelle dans le moteur JavaScript V8 :

Acronis
Figure 16 : Chargeur de bytecode
Acronis
Figure 17 : Bytecode compilé (index.jsc)

Si aucune méthode alternative n'est disponible, il est nécessaire de décompiler et d'analyser le code. Heureusement, l'auteur du malware a commis une erreur en laissant le code source d'origine dans l'archive ASAR :

Acronis
Figure 18 : Code source d'origine

Si cette négligence est regrettable pour le cybercriminel, elle est en revanche très utile aux chercheurs, car elle accélère considérablement le processus d'analyse et leur fait gagner un temps précieux.

Analyse du code du malware

Dans cette section, nous analyserons le fichier rgg_original.js, qui contient une version modifiée de Leet Stealer, baptisée RMC Stealer.

Détection de sandbox

Le malware commence par détecter la présence de sandbox, à partir de listes noires qui ciblent les adresses IP, les noms d'hôtes, les noms d'utilisateur, les GPU, les systèmes d'exploitation et les processus en cours d'exécution :

Acronis
Figure 19 : Détection de sandbox

Pour vérifier les détails du BIOS et du GPU, il utilise le résultat de la commande WMIC :

Acronis
Figure 20 : Exécution de WMIC

Il procède également à une vérification finale de la taille de la RAM du système. Si la mémoire disponible est inférieure à 2 Go, la machine est considérée comme un environnement sandbox potentiel :

Acronis
Figure 21 : Vérification de la taille de la RAM

Lorsqu'il détecte un environnement sandbox, le malware dépose et exécute un script nommé fakeErr_[caractères_aléatoires].vbs, qui affiche un faux message d'erreur, empêchant ainsi l'exécution de l'échantillon dans une machine virtuelle :

Acronis
Figure 22 : Affichage du message d'erreur

Fait intéressant, Sniffer Stealer utilise également des messages d'erreur factices. Cependant, contrairement aux erreurs de détection de sandbox utilisées par Leet / RMC Stealer, ces messages imitent des problèmes de jeux courants. Cette tactique contribue à réduire les soupçons en convaincant la victime que le jeu qu'elle a tenté de lancer est défectueux ou mal installé. Voici des exemples de ces messages d'erreur fabriqués par Sniffer Stealer, que le malware sélectionne au hasard pour l'afficher :

Acronis
Figure 23 : Faux messages d'erreur

Exfiltration de données du navigateur

Si la machine parvient à passer la détection de sandbox, le malware collecte les données des navigateurs web installés. Le processus de collecte des données cible les cookies, les mots de passe enregistrés et les données de formulaire :

Acronis
Figure 24 : Collecte de données par le navigateur

Le malware prend en charge les principaux navigateurs, y compris Chrome, Edge, Brave, Opera, Vivaldi, Yandex et Chromium. Il utilise une technique sophistiquée qui consiste à exécuter le navigateur en mode débogage, ce qui lui permet de se connecter au processus et d'extraire les cookies directement à partir de l'instance en cours de débogage :

Acronis
Figure 25 : Utilisation du mode de débogage

Les données volées sont ensuite compressées dans une archive ZIP et chargées initialement sur gofile.io, puis une notification est envoyée au serveur de commande et de contrôle (C2) :

Acronis
Figure 26 : Chargement vers gofile.io

Si le chargement sur gofile.io échoue, le malware tente d'exfiltrer les données via des services alternatifs de partage de fichiers tels que file.io, catbox.moe et tmpfiles.org.

Discord et autres

Le malware cible également Discord et collecte diverses informations du compte de la victime :

Acronis
Figure 27 : Ciblage de Discord

Nous pensons qu'il s'agit d'une phase critique du fonctionnement du stealer, car les jetons Discord agissent comme des identifiants d'authentification qui accordent une accessibilité complète au compte de l'utilisateur, sans nécessiter de nom d'utilisateur ou de mot de passe. Avec un jeton valide, un cybercriminel peut accéder aux messages privés, listes d'amis, serveurs et autres informations personnelles sensibles. De plus, le compte compromis peut être exploité pour distribuer des liens malveillants ou des messages de phishing aux contacts de la victime, facilitant ainsi la propagation du malware.

En plus de Discord, de nombreuses autres plates-formes sont ciblées, notamment :

  • Microsoft Steam
  • Growtopia
  • MineCraft
  • EpicGames
  • WhatsApp
  • Telegram
  • BetterDiscord (une version non officielle de Discord)

Installation d'autres malwares

Le malware est également capable de télécharger et d'exécuter d'autres charges actives malveillantes :

Acronis
Figure 28 : Téléchargement et exécution d'autres fichiers

Il est intéressant de noter que dans d'autres variantes de Leet Stealer, des commentaires en portugais ou en turc apparaissent au côté des commentaires en anglais. Cela reflète la manière dont le code source a été transmis de main en main, avec des personnes qui l'ont modifié et altéré au passage :

Acronis
Figure 29 : Commentaires rédigés en turc et en anglais
Acronis
Figure 30 : Commentaires en portugais dans le code source

Conclusion

Les programmes de vol de données déguisés en faux jeux et fichiers d'installation montrent comment les campagnes de diffusion de malwares modernes ont pu évoluer au-delà de simples astuces techniques. Ils s'appuient désormais fortement sur l'ingénierie sociale, le branding et des incitations psychologiques pour tromper les utilisateurs. En dissimulant des malwares dans des jeux et en les associant à des sites web et des supports promotionnels factices, les cybercriminels brouillent les pistes entre contenu légitime et tromperie.

Les plates-formes de réseaux sociaux telles que Discord sont très populaires auprès des jeunes friands de technologie, et constituent des canaux de distribution efficaces, en particulier lorsque les cybercriminels exploitent des noms de jeux connus ou des accès anticipés fort attendus.

Détection par Acronis

Cette menace a été détectée et bloquée par Acronis Cyber Protect Cloud :

Acronis
Incident signalé

Indicateurs de compromission

EXEMPLE :

Nom de fichier
Famille Stealer
SHA256
babacan32 Setup 1.0.0.exe
Leet
5c7c70ab9734838795050a91f08f1af9e3cb479caf20bd34944282e8ac455ea7
BarudaQuest.exe
RMC
813e5923e6d4df56055f5b5200db2e074e89f64dea3099e61fbde78c0fc23597
BillieBust.exe
Sniffer
567fb96e8b101abc45f2dfba470ea8a7298063f7428409d8b7e5c8f4326b6dc0
Brosxa 1.0.0.exe
Leet
b9adcf54b09475ed2023f5b3c03e23013e65195b4e8bfbb82c8c13fde194b2d4
CatlyBeta.exe
Sniffer
f0b43b49c420b08a7990ae8af937cc974700b8fa2bad2890f313f6b534069bcd
ClientSetup1.0.exe Setup 1.0.0.exe
Leet
576fbe574f31cf6adf15884a89c3c3c333714637cb513dbe8c788a2056047fa5
damnedbetter.exe
Sniffer
150f7b4615a2e0e7d21a32e12e796fc009c1fe25f2efff889acf84924fef39e4
damnedbetter.exe
Sniffer
321c7c999ecc5670207394f2f2d3cf4712b15f1f87c1b0ec05ed2367d922f1dc
Denemeamacimiz Setup 1.0.0.exe
Leet
82421012c689dfe36965d5c89bbeb4af3efb65556eb8df4bf5b863e261e28e8b
Depthcan.exe
Leet
798eee15a3e93ee0d261501df979dc3b61a9e5992188edeada5beaba0b30b8df
DireTaloGaSetup.exe
Sniffer
35ad1623694496ec91bc853b391c8bebdfa1aeaea2c4dcf74516e2cd13ab44f4
Dire Talon.exe
Sniffer
58d8a8502e7e525795cd402c7d240b50efcdde449eab9ee382f132f690a1989c
EdensGameInstall.exe
Sniffer
8294f79f9ecf81a65cdc049db51a09cd352536d7993abd0cfa241bbbceefa6e3
emeraltfates.exe
Sniffer
b127202d13bd170c15c3733991d790bc5464e3d77965e9cf59172c7cf3881738
G16EmeralFATES.exe
Sniffer
ac6aaed5b02ae265382c666371b557bd4e3c8c8dc08a1640b5cd06c27ed1b1f2
HauntedBeta.exe
Sniffer
53444e1c5d2ad49af46712b27da16de14447159d2752e2c303b5ded9afb5128a
HauntedSetup.exe
Sniffer
e71e57ce90fc0d4816faf315991bd9e46dd45660d83be40dd4408c854e7b6d41
HauntedSetupX64.exe
Sniffer
3d9064c9dc6ff391a563ce333301f8c4e2eded28192ef4448b09eb2e04ceb965
Jorosa Setup 1.0.0.exe
Leet
a07462af74cdccc1bba698aa5175923437d400c87e0b88601414630f7ee08f97
Lacrimos.exe
Sniffer
1ca60801bed5f8a607afb7054536bdd7d56670c04d3836cdf0cd4e07d8f2edff
Lesotia.exe
Leet
8c83b52df8a9c9602e745decabfb8f2c754cb6d57780b50ff86908df2b69408f
MixerFlow Setup.exe
Leet
82beb169bd08d07b1167e3b6d3d22f8f4a6687e6d9d7277fc9e206598d5bd608
MulanaGame Setup.exe
Leet
c4b672e76dc870de0eec5e2d68441a07569d38cd4e12aef359be7b251eed57a6
PersistSetup (1).exe
Sniffer
77aae85b96fedda4e9808c4376738cc058b79b13e705f4c101d32083e4c70601
RootedTheGame.exe
Sniffer
09c3291425fe6858800e6a3a57b4a72cda5430f8fba87607a38b8e09da7a0e8c
RootedTheGameSetup.exe
Sniffer
aa32d16626f200c7c7db186174b62cabc9790536a70cd360e92a05a00a4750b0
Salonca Setup 1.0.0.exe
Leet
9411b71653f83190a139296d58737f3935bdd58c13142381e59a8d106184e15e
slenderthreads.exe
Sniffer
d33dbba2f4e25148e2d9a59b1157d71d29ab5a30beeb5f0992b0d3f2859a90c2
Sokakcan.exe
Leet
a3636b09302a77ed7a6c75c5e679ba9ed0dbe12892f5fe94975ab3ef6be7ade8
SpectraLauncher.exe
Sniffer
cee750d6cb834b766a214b6609ed4eca62b0330a9904cf2f77b184a77e70f4d3
SteppulGame.exe
Leet
6f441dc6a45fd6dac4fe19707c6338b8bca1aabfb7842d7ebf94fb2fab2f12d5
SumaleDepth Setup 1.0.0.exe
Leet
051028c2acc74cb55f5a5e28c7ba1613fd4a13dcf5f6a6325557ae1b88900ee8
Terrnua Setup 1.0.0.exe
Leet
767f575d30deb66244b29bafae51111fdb869ba26d1df902e3f839bdb64725f

Références