Au cours de la récente analyse d'une campagne de distribution de stealers RedLine, l'équipe de Cyber Threat Intelligence de Stormshield (Stormshield Customer Security Lab, SCSL) a mis la main sur des samples de malwares provenant d'un groupe cyber-criminel, nommé HiddenEyeZ. Historique, activité, modèle économique et analyse technique des fichiers malveillants de leur malware : découvrez la carte d’identité du groupe cyber-criminel HiddenEyeZ.

Nos chercheurs en cybersécurité ont creusé pour en savoir plus sur ce groupe, autour de leur activité, de leur modèle économique et de leurs victimes. Focus sur un jeune groupe de cyber-criminels, HiddenEyeZ.

De RedLine à HiddenEyeZ

Notre analyse d’une campagne RedLine a permis de découvrir des dépôts contenant des samples de malwares. Parmi ces samples, certains ne pouvaient pas être reliés aux attaques menées dans cette campagne RedLine. Et en les étudiant de plus près, nous avons découvert que les opérateurs cette campagne utilisaient des malwares vendus par un groupe cyber-criminel : HiddenEyeZ.

Cette analyse se base principalement sur les différents samples trouvés dans les dépôts ainsi que sur un canal Telegram public, sur lequel HiddenEyeZ publie les informations de vente de ses services. En partant de ces différentes informations, nous avons orienté nos recherches afin d'en savoir plus sur le groupe cyber-criminel, sur ses services, son modèle économique, son organisation et ses victimes connues.

HiddenEyeZ : focus sur un groupe de cyber-criminels

Présentation d’HiddenEyeZ

Le groupe cyber-criminel HiddenEyeZ est une organisation proposant à ses clients des offres autour du vol de données sensibles, que ce soit par la vente d'un malware permettant de récupérer des données sur un appareil infecté ou par la vente directe de données qu'ils ont eux-mêmes récupérées.

Ce groupe montre des signes d'activité depuis juillet 2022 et a diffusé son offre commerciale depuis décembre de la même année.

Les éléments que nous avons obtenus montrent que le groupe est au minimum composé de six personnes : un développeur et cinq personnes au support client.

Historique et activité de HiddenEyeZ

Grâce aux éléments collectés, nous avons pu reconstituer l'historique d'activité du groupe. Ces données indiquent que les préparatifs ont duré plusieurs mois, voire années si l'on en croit les acteurs eux-mêmes.

Figure 1 : message d’introduction posté par HiddenEyeZ sur un de leurs canaux Telegram

La seconde partie de l’année 2022 a été majoritairement dédiée à la mise en place de moyens. Nous avons classé ces événements en trois catégories :

  • les étapes de préparation technique (orange), à savoir les différentes actions réalisées par le groupe cyber-criminel avant le début de la campagne ;
  • les actions de communication (vert), à savoir les événements relatifs à la communication vers les clients (comme la création des canaux de communication et la diffusion des offres) ;
  • les mises à jour du produit HiddenEyeZ HVNC (bleu), à savoir les sorties de mises à jour importantes de versions. Ces événements montrent que le développement continue activement depuis la sortie de l'offre. De plus, il y a de nombreux autres ajouts de fonctionnalités au fil de l'eau qui ne sont pas notés dans cette timeline.

Figure 2 : timeline de l'activité du groupe HiddenEyeZ depuis juillet 2022

À l'heure de l'écriture de cet article, le groupe criminel est encore actif sur Telegram.

Plusieurs indices présents dans ces canaux Telegram, comme les captures d'écran ou des messages indiquant des horaires de messages, permettent d’ailleurs de déterminer que le groupe se situe dans les environs du fuseau horaire UTC-6, réunissant les principaux pays suivants (liste non exhaustive) :

  • Canada ;
  • États-Unis ;
  • Mexique.

L'analyse de la fréquence des messages des canaux Telegram liés au groupe au cours de la journée permet de tracer un graphe d'activité. Les messages s'étendent sur une amplitude de 15 heures.

  • En bleu, le nombre de messages échangés sur le canal Telegram de partage de tutoriels de hacking au cours de la semaine ;
  • En orange, le nombre de message postés sur le canal d'annonces du groupe ;
  • En gris, la somme des deux courbes.

Figure 3 : analyse des heures d'activité sur les canaux Telegram du groupe HiddenEyeZ

Modèle économique de HiddenEyeZ

Le groupe propose différents produits et services, comme la licence d'utilisation de leur malware HiddenEyeZ HVNC (RAT/stealer) ou des lots d'informations volées de leurs victimes par le botnet qu'ils gèrent.

Voici la liste des offres du groupe plus en détails :

  • HiddenEyeZ HVNC : ce malware développé par le groupe criminel est un RAT et un stealer permettant à un attaquant de récupérer des données sensibles sur les postes de ses victimes (mots de passe, données bancaires, cookies de connexion, portefeuilles de cryptomonnaies, etc). Une analyse plus détaillée de ce malware est présente dans la suite de cet article ;
  • HiddenCrypt : ce service permet à un client d'obfusquer un payload avant de le déployer chez une victime. Ainsi, ce client va chercher à éviter les détections par les produits de sécurité (antivirus, sondes réseaux, etc) qui seraient en place chez sa victime ;
  • Botnet Log Packs : cette offre permet à un client d'acheter directement en ensemble de données récupérées chez des victimes. Ces informations sensibles sont disponibles avec différentes thématiques spécifiques : données bancaires, portefeuilles de cryptomonnaies ou informations de connexion à des services de cryptomonnaies ;
  • distribution de malwares : ce service permet à un client de déployer un malware directement chez des victimes du botnet opéré par le groupe cyber-criminel ;
  • tutoriel : cette offre permet à un client d’accéder à des documentations sur la cybercriminalité sur des thématiques spécifiques : botnet, malware, spamming ;
  • support après-vente sur Telegram.

Le prix pour une utilisation du malware HiddenEyeZ HVNC au mois est de quelques centaines de dollars et la licence à vie est à 1 500 dollars. À noter que le groupe a recours à des pratiques commerciales traditionnelles, telles que des promotions temporaires.

Figure 4 : message posté par HiddenEyeZ sur un canal Telegram indiquant une promotion sur les achats de licences

Les ventes sont réalisées directement via un bot Telegram ou depuis sellix.io, une plateforme de paiement pour produits dématérialisés acceptant les cryptomonnaies.

Relations entre les comptes Telegram de HiddenEyeZ

Le groupe HiddenEyeZ utilise de nombreux comptes Telegram en relation avec les services proposés. On y retrouve ainsi :

  • le compte du canal sur lequel sont diffusées les informations commerciales ;
  • le compte "personnel" du développeur du malware HiddenEyeZ HVNC ;
  • un compte générique permettant de contacter l'équipe de support ;
  • cinq comptes "personnels" de l'équipe de support ;
  • un bot de support permettant de consulter une FAQ ;
  • un bot permettant la souscription aux services ;
  • un bot permettant d'acheter et d'utiliser un service d'obfuscation de payload ;
  • un bot publiant des échantillons de données de victimes ;
  • le compte du développeur dédié au partage de tutoriels sur le hacking.

Trois canaux ont été identifiés en rapport avec ce groupe :

  • le canal principal permettant de diffuser les informations commerciales sur les différentes offres ;
  • un canal privé permettant d’échanger avec les acheteurs du malware HiddenEyeZ HVNC ;
  • un canal dédié au partage de tutoriels sur le hacking.

Cibles et victimes de HiddenEyeZ

Le groupe HiddenEyeZ publie des échantillons de logs de victimes sur son salon Telegram pour servir de démonstration à de potentiels clients.

En se basant sur les données d'un échantillon de 103 victimes, nous avons pu reconstituer la carte suivante pour en savoir plus sur la localisation des différentes victimes. L'échantillon dont nous disposons n'est que très partiel, puisque cette campagne compte au minimum un millier de victimes.

Figure 5 : carte des victimes du groupe HiddenEyeZ. Les pays en jaunes comptent entre une et cinq victimes de l'échantillon, tandis que ceux en orange en comptent plus de cinq

Bien que cet échantillon ne soit pas représentatif de l'ensemble des victimes, on constate qu’elles sont réparties à travers le monde. Curiosités de l’échantillon : pas une victime constatée en France, ni aux États-Unis.

D’autant plus surprenant que des messages postés sur un canal Telegram montrent un intérêt particulier pour certains pays comme les États-Unis. Le premier message montre que les informations bancaires des États-Unis sont spécifiquement visées. Les deux suivants montrent que le groupe cyber-criminel valorise commercialement les informations récupérées chez les victimes provenant de ce pays :

Figure 6 : trois messages publiés par le groupe HiddenEyeZ sur un de leurs canaux Telegram montrant un intérêt pour les États-Unis

Analyse des fichiers malveillants du malware HiddenEyeZ HVNC

Après avoir étudié le fonctionnement du groupe HiddenEyeZ, nous allons nous intéresser au malware HiddenEyeZ HVNC, leur principal produit.

Nous avons étudié l’écosystème du malware HiddenEyeZ HVNC depuis l’utilisation de son dropper suite à une primo-infection. À savoir :

  • Dropper de HiddenEyeZ HVNC ;
  • HiddenEyeZ HVNC : le malware lui-même ;
  • r77 : le rootkit déployé par HiddenEyeZ HVNC pour accroitre son niveau de furtivité ;
  • Icarus : le stealer déployé par HiddenEyeZ HVNC pour effectuer la récupération automatique des données de la victime ;
  • Highlander : un outil déployé par HiddenEyeZ HVNC désactivant Windows Defender ;
  • AddStartupTask : un outil déployé par HiddenEyeZ HVNC permettant de mettre en place de la persistance.

Voici une vue récapitulative des interactions entre les différents binaires et les serveurs utilisés :

Figure 7 : représentation des interactions entre les composants du malware HiddenEyeZ HVNC

Dropper de HiddenEyeZ HVNC

Carte d'identité du malware

Type of file
PE
Language used
.NET
Compilation date
Thu May 6 23:56:32 2038 | Incoherent
Obfuscation
Renaming of namespaces, classes and functions
md5
4c9bc0e73872ba91b88fda7a45e5379a
sha1
be23cf7d356b13a3f233c6b3d807854e8083bd2d
sha256
bb86e41bb6d5eccad1ff84ab343506f4f5fcd78b0618966edc0ae0e05fcc8683
ssdeep
3072:L6IxdMnKhwoa5riuHNTapbBgn4qBwS7YXzwIjD6ZGsp:pMnKa5rirpbGn4awS7YXzwIjuZGs

Présentation

Ce premier sample, nommé Installs.exe, a été trouvé dans l'un des dépôts Bitbucket.org étudiés dans notre article précédent sur la campagne RedLine. Ce binaire a été notre point d'entrée vers le groupe HiddenEyeZ et son environnement.

Ce sample est un dropper et un RAT ayant pour but principal de déployer des stealers qui se chargeront de collecter les informations sensibles des victimes. De plus, il embarque et déploie le composant principal du malware HiddenEyeZ HVNC. Il possède de nombreuses capacités comme :

  • le déploiement d'un rootkit ;
  • le déploiement d'un stealer ;
  • l’évasion d'antivirus ;
  • la mise en place de persistance ;
  • le déploiement du composant principal de HiddenEyeZ HVNC.

Les méthodes d'infection utilisées semblent jouer sur la crédulité des victimes. Les messages sur le salon Telegram d’HiddenEyeZ évoquent l'utilisation de posts sur les réseaux sociaux avec du contenu alléchant, ayant pour but de mener la victime au téléchargement d'un pack d'images. Parmi ces images, serait inséré un fichier malveillant sous la forme d'un fichier .scr (type de fichiers exécutables sur Windows).

Une autre méthode est l'utilisation d'un bot Discord ayant pour but d'usurper le compte d'une victime pour infecter ses contacts et salons fréquentés.

Figure 8 : message sur un canal Telegram du groupe HiddenEyeZ annonçant un outil d'infection via Discord

Déploiement d'un rootkit

Pour s'assurer d’un bon niveau de furtivité, le sample a la capacité de déployer un rootkit (outil de dissimulation d'activité) en mode utilisateur, nommé r77 (voir la partie« r77 »). Le code suivant récupère l'installateur du rootkit (rt.jpg) à partir d'une URL stockée en dur et le place dans un dossier temporaire. Le fichier est ensuite décodé, exécuté et supprimé afin d'effacer la trace de son déploiement.

Figure 9 : code de déploiement du rootkit r77 dans le dropper de HiddenEyeZ HVNC

Déploiement d'un stealer

Le dropper permet aussi de déployer un stealer connu, que ce soit StormKitty ou Prynt Stealer. Nous ne pouvons pas statuer sur la souche du malware exacte car les deux sont très proches.

  • StormKitty est un malware dont les sources sont disponibles publiquement sur GitHub. Il est apparu en 2020 et son développement s'est achevé durant cette même année.
  • De son côté, Prynt Stealer est une évolution de StormKitty, apparue en 2022 et vendue sur le darknet. Nous avons retrouvé parmi les samples étudiés un builder de Prynt Stealer, ce qui nous fait penser que le stealer déployé serait de ce type.

Ce stealer est téléchargé depuis une URL stockée en dur sur le dépôt distant sous le nom patata.jpg. Il est alors décodé et stocké sur le disque dans un dossier temporaire sous le nom svchost.exe. Un script svchost.bat est créé pour l'occasion. Il exécute ensuite le stealer, puis s'auto supprime.

Figure 10 : code de déploiement du stealer dans le dropper de HiddenEyeZ HVNC

Ce stealer permet par exemple de récupérer :

  • des informations du système (version, CPU, GPU, RAM, IPs, BSSID, localisation, métriques de l'écran, logiciels installés) ;
  • des données gérées par les navigateurs web (mots de passe, cartes de crédit, cookies, historique, favoris) ;
  • des informations sur les réseaux Wi-Fi (SSID, BSSID) ;
  • des fichiers suivants leur type (documents, images, codes source, base de données) ;
  • les données permettant de s'identifier à une session de logiciels :
    • plateformes de jeux (Steam, Uplay, Battle.Net, Minecraft) ;
    • logiciels de communication (Telegram, Outlook, Pidgin, Skype, Discord) ;
    • Filezilla ;
    • VPN (ProtonVPN, OpenVPN, NordVPN) ;
  • les frappes clavier ;
  • les données stockées dans le presse papier ;
  • des copies d'écran et des images de webcam ;
  • des portefeuilles de cryptomonnaies ;
  • la liste des processus.

Évasion d'antivirus

Afin de ne pas lever d'alarmes, le sample va s'ajouter lui-même en exclusion de Windows Defender via la commande Add-MpPreference. Cette action nécessitant les droits d'administrateur de la machine, le binaire va utiliser un mécanisme connu de Bypass d'UAC (Contrôle d'accès de Windows) via l'utilisation de computerdefaults.exe. La méthode consiste à placer une commande dans la clé registre HKCU\Software\Classes\ms-settings\shell\open\command puis à appeler ComputerDefaults.exe. La commande sera exécutée dans le contexte de ComputerDefaults.exe qui sera lancé en administrateur sans présenter l'interface d'UAC si le compte courant le permet.

Figure 11 : code de mise en place de l'exclusion de Windows Defender dans le dropper de HiddenEyeZ HVNC

Mise en place de persistance

Le dropper met en place un moyen de persistance pour s'assurer d'être relancé au prochain redémarrage du système. Pour cela, il inscrit son exécutable dans la clé de registre HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce. Cette modification de la base de registre est déléguée à un script VBS placé dans %LOCALAPPDATA%\excecution.vbs.

Déploiement du composant principal de HiddenEyeZ HVNC

Ce sample embarque également un autre module, permettant de réaliser les actions typiques d'un RAT : HiddenEyeZ HVNC (voir la partie « HiddenEyeZ HVNC »). Il est contenu dans l'exécutable du sample du dropper, doublement encodé en base64.

Le malware HiddenEyeZ HVNC est lancé en utilisant une technique de process hollowing. Tout d'abord, l'exécutable cvtres.exe du framework .NET est démarré avec l'attribut suspendu. Par la suite, les sections de l'exécutable sont retirées de la mémoire du processus et les données du module du RAT sont placées en mémoire. Le processus sort alors de son état de pause pour commencer l'exécution et la méthode TryRun implémente le process hollowing.

De cette manière, HiddenEyeZ HVNC apparaitra comme une exécution légitime de cvtres.exe. Dans notre cas, voici la ligne de commande apparente : "cvtres.exe HiddenEyeZ_Client 5.75.162.221 8081 mPgxExkLE". On y remarque une référence à HiddenEyeZ et à l'adresse du serveur de contrôle. De plus, le dropper démarre le RAT dans un bureau Windows secondaire, ce qui permet de cacher à l'utilisateur les actions visuelles réalisées par HiddenEyeZ HVNC.

Figure 12 : code de déploiement du composant principal du malware HiddenEyeZ HVNC

HiddenEyeZ HVNC

Carte d'identité du malware

Type of file
PE
Language used
.NET
Compilation date
Sat Mar 25 03:59:41 2045 | Incoherent
Obfuscation
No
md5
3ebd5b7adb726ccd04079e3dc114063b
sha1
bf84a490838c741631ba641d0fd673f3043a5751
sha256
ba1615c7617f148228c587ffe7607ac841fd682ba4905f4af53e18d601b84102
ssdeep
3072:L6IxdMnKhwoa5riuHNTapbBgn4qBwS7YXzwIjD6ZGsp:pMnKa5rirpbGn4awS7YXzwIjuZGs

Présentation du malware

Ce sample est celui embarqué et exécuté par Install.exe. Cet exécutable est un sample du RAT HiddenEyeZ HVNC, développé, utilisé et vendu par le groupe HiddenEyeZ.

Ce malware est utilisé pour voler des informations sensibles des victimes (mots de passe, fichiers personnels, portefeuilles de cryptomonnaies, etc.). Pour cela, il possède deux capacités principales :

  • déployer le stealer Icarus (voir la partie « Icarus ») ;
  • donner un accès HVNC (Hidden VNC) qui est une fonctionnalité pour interagir via une interface graphique avec la machine cible. Ces interactions sont invisibles pour la victime (voir la partie « Bureau caché »).

Description détaillée du malware

Ce malware récupère ses ordres depuis son serveur de C2 dont l'adresse lui est communiquée par les arguments de sa ligne de commande. Les messages reçus du serveur permettent d'activer un ensemble de fonctionnalités :

  • désactivation de Windows Defender :
    • téléchargement et lancement de l'exécutable Highlander ;
  • lancement de logiciels sur un bureau caché :
    • navigateurs web en mettant en place du monitoring pour récupérer des données ;
    • clients mails ;
    • éditeurs de textes ;
    • logiciels de discussions (Skype, Discord, Telegram) ;
    • utilitaire de portefeuilles de cryptomonnaies ;
    • configuration du système Windows ;
    • explorateur Windows ;
    • consoles (cmd et PowerShell) ;
  • utilisation du bureau caché par le cyber-attaquant :
    • manipulation de fenêtres ;
    • clic sur la machine cible ;
    • écriture / récupération des données du copier / coller ;
  • récupération d'informations du système (FPS, résolution écran) utilisées pour le bureau caché ;
  • arrêt de processus :
    • un processus arbitraire (PID) ;
    • les navigateurs web ;
    • Putty ;
    • les clients mails ;
    • les logiciels de discussions (Skype, Discord, Telegram) ;
  • téléchargement et lancement d'un binaire arbitraire (via Powershell) ;
  • déploiement d'un stealer :
    • téléchargement et lancement du stealer Icarus ;
  • mise en place de persistance (téléchargement et lancement d'un outil dédié, AddStartupTask) :
    • création de tâches planifiées ;
    • ajout de persistance pour l'exécutable ;
  • mise en place de moyens de furtivité :
    • téléchargement, démarrage et arrêt du rootkit r77 ;
  • auto-désinstallation.
Organisation des composants

Une partie des fonctionnalités du malware n'est pas intégrée dans son code source, mais déléguée à d'autres outils qui sont téléchargés et déployés à la demande. Tous les téléchargements d'exécutables ou des bibliothèques .NET nécessaires à leur exécution sont réalisés depuis le site hxxps://hiddeneyez.com/icar/.

Figure 13 : listing des fichiers disponibles sur le dépôt /icar/ du malware HiddenEyeZ HVNC (non exhaustif)

Outil de génération

Le malware HiddenEyeZ HVNC est généré à partir d'un builder permettant de configurer et de générer le sample du malware. De nombreuses fonctionnalités peuvent être activées ou non suivant la volonté de l'utilisateur.

Voici une capture d'écran du builder permettant de choisir les fonctionnalités à incorporer dans l'exécutable généré.

Figure 14 : interface du builder permettant de configurer et de générer le sample du malware HiddenEyeZ

Bureau caché

Le malware HiddenEyeZ donne la possibilité à l'attaquant de lancer les logiciels sur un bureau secondaire, invisible sur le poste de la victime. Cela est possible par la création d'un bureau dédié aux actions malveillantes. L’intérêt d'une telle fonctionnalité est de permettre à l'attaquant d'exécuter des actions directement depuis le poste de la victime, en utilisant les informations volées à la victime (logins, mots de passe, etc. ou celles déjà présentes sur la machine comme les cookies de session, les mots de passes stockés dans le navigateur et autres). L'adresse IP de connexion de ce poste est sans doute déjà connue des services distants (type banque ou cryptomonnaies) qui ne lèveront pas d'alerte pour cause de connexions suspectes ou frauduleuses, comme ce serait le cas depuis un autre ordinateur.

Ainsi, l'attaquant peut avoir une vue graphique et y effectuer des actions sans que la victime ne s'en rende compte. Il a la capacité de naviguer sur le système et de lancer par exemple les navigateurs et les clients mail de la victime pour y retrouver davantage d’informations sensibles.

Voici quelques captures écrans communiquées par les développeurs du groupe pour présenter la console d'administration HiddenEyeZ HVNC. On y voit par exemple des listes de logiciels pris en charge dans le bureau caché.

Figure 15 : captures écran de l’interface de l’outil d'administration du malware HiddenEyeZ

Déploiement du stealer Icarus

Ce malware HiddenEyeZ propose de déployer un stealer tiers qui permet de récupérer automatiquement des données sensibles de la victime. Ce stealer est un autre malware connu : Icarus.

L'extrait de code suivant montre le téléchargement, l'écriture, le lancement et la suppression de l'exécutable du stealer.

Figure 16 : code de déploiement du stealer Icarus

Une fois l'exécution d'Icarus terminée, HiddenEyeZ HVNC exfiltre l'archive contenant toutes les données récupérées sur le poste de la victime.

r77

r77 est un rootkit récupéré sous les fichiers rt.jpg et remove.jpg sur hiddeneyez[.]com et sur le dépôt Github HiddenEyeZ par le dropper et HiddenEyeZ HVNC. Ces binaires constituent l'installateur (rt.jpg) et le désinstallateur (remove.jpg) du rootkit dont les sources sont disponibles ici : github.com/bytecode77/r77-rootkit.

Comme indiqué dans sa documentation, il s'agit d'un rootkit userland permettant de masquer :

  • des fichiers ou répertoires ;
  • des processus et l'utilisation du CPU ;
  • des clés de registres et leur valeur ;
  • des services ;
  • des connexions (TCP, UDP) ;
  • des tâches planifiées ;
  • des jonctions, des pipes nommés, et des tâches planifiées.

Son analyse semble toutefois montrer qu'il s'agit ici d'une version allégée, puisque toutes ces fonctionnalités ne sont pas présentes dans le sample analysé.

Ces deux fichiers étaient présents sur le dépôt encodé en base64 avec une extension .jpg, dans l'objectif d'éviter la détection via signature par les solutions de sécurité. Nous avons donc procédé à leur décodage avant de les analyser.

Installateur de r77

Carte d'identité
Type of file
PE
Language used
.NET
Compilation date
Wed Jul 13 17:30:36 2022
Obfuscation
No
md5
a532918af845ed035c6882d6ae173d03
sha1
7b0dadd2b5b6200676a7daf68f95d47319513f81
sha256
4604e501fb4efb5ce862e81232c61b29e4470b5313055efb291593d66f23af7e
ssdeep
24576:fBm2D0GlV7LJMLMVSBsalgydd4jnYnyeiRyi5+fEilGQ8Joz078UfJeOYyF42fQo:Q2D0mV76LMV1algAkYPY+78J04r4zzW

L'installateur de r77 est obtenu une fois le fichier rt.jpg, présent sur le dépôt, décodé.

Présentation

L'installation du rootkit est simple, le binaire contient dans ses ressources deux fichiers DLL : un 32 bits et un 64 bits. Le fichier DLL correspondant à la version du système d'exploitation ciblé (64 ou 32 bits) est récupéré dans les ressources ; puis copié dans le répertoire %APPDATA%.

La suite de sa mise en place consiste à référencer ces fichiers dans la clé de registre adéquate et d'en modifier deux autres :

Register value
Description
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWindowsLoadAppInit_DLLs
Value set to 1, enables the AppInit_DLLs mechanism
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWindowsRequireSignedAppInit_DLLs
Value set to 0 to load unsigned DLLs
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs
Contains the path to the DLL to be loaded (r77-x64.dll or r77-x86.dll)

Le chargement de ces DLLS malveillantes est réalisé automatiquement par user32.dll et, par conséquent, par chaque programme qui l'utilise. C'est à dire la plupart des programmes disposant d'une interface graphique.

La documentation précise qu'à partir de Windows 8, le mécanisme AppInit_DLLs est désactivé lorsque la fonctionnalité Secure Boot est activée, ce qui réduit le nombre de cibles potentielles.

Plus d'infos sur le mécanisme d'AppInit_DLLs sont à retrouver sur le site de Microsoft, dont voici un extrait : « AppInit_DLLs est un mécanisme qui permet de charger une liste arbitraire de DLL dans chaque processus en mode utilisateur sur le système. Microsoft modifie l’installation des DLL AppInit dans Windows 7 et Windows Server 2008 R2 pour ajouter une nouvelle exigence de signature de code. Cela aidera à améliorer la fiabilité et les performances du système, ainsi qu’à améliorer la visibilité sur l’origine du logiciel ».

Figure 17 : code de l'installation du rootkit r77

La modification de ces clés nécessitant des privilèges administrateur, la technique de contournement d'UAC vue précédemment (voir la partie « Dropper de HiddenEyeZ HVNC ») est réutilisée dans ce binaire.

Désinstalleur de r77

Carte d'identité
Type of file
PE
Language used
.NET
Compilation date
Thu Dec 6 16:06:38 2040 | Incoherent
Obfuscation
No
md5
d406a1906ed519562f2524a03bf2ff40
sha1
38b73304bfaf8db51b63946cd4ab29fa48c15816
sha256
6c1b2c9ae4887ff134bd098cab3e6c5ada1482f45a129ccc858733a545a10619
ssdeep
192:/MxThhi8bE8yM8MlrljlQ0ljgcR/ytyLabWW:/4fi8bE8yM8UR/lLabW

Voici quelques détails techniques complémentaires :

  • la version du framework .NET utilisée est la v4.0.30319, plutôt ancienne (~2010), mais présente systématiquement dans les OS Windows ;
  • la date de compilation est cette fois située dans le futur (6 décembre 2040), donc non exploitable. Néanmoins, cela permet d'indiquer que les exécutables n'ont pas tous été compilés de la même façon, voire par plusieurs personnes différentes ;
  • un chemin vers le fichier de débogage est également présent : C:\Users\dride\Desktop\New folder (3)\ICARUS3-main\ICARUS-main\Stubs\Stubs\and\rest\Of\mofos\Junk\and\Stolen\Code\remove\obj\Release\net40\Install.pdb
Présentation

Il s'agit du désinstallateur du rootkit r77. Le principe de désinstallation est minimaliste et brutal, car il consiste à supprimer la valeur de la clé de registre AppInit_DLLs permettant le chargement du fichier DLL malveillant.

Figure 18 : code de désinstallation du rootkit r77

On peut remarquer que si, lors de l'installation, trois clés de registres sont modifiées, seule la clé AppInit_DLLs est remise à zéro lors de la désinstallation. Cela constitue un indicateur de compromission non spécifique de r77 mais permanent de son passage sur le système. Par ailleurs, si la clé AppInit_DLLs était utilisée par un autre logiciel, ce paramétrage se fait retirer.

De plus, le script de désinstallation ne supprime pas les fichiers DLL déployés lors de l'installation ; ils restent donc dans ce dossier de façon permanente.

Code malveillant des fichiers DLL de r77

Carte d'identité
Type of file
PE
PE
Language used
C/C++
C/C++
Architecture
32 bits
64 bits
Compilation date
Wed Jul 13 17:29:32 2022
Wed Jul 13 17:29:27 2022
Obfuscation
no
no
md5
bf2ac81c25ebc55e88af9233c6c0e1b5
8d54e4abe1762f96134a0c874cfb8cdc
sha1
096d850244c31a9d4c1da7ac3b243e3f61b503d8
336f3fb4baa098ea4f54d881f2a2cf696e37c44e
sha256
ed3ee849ae71001941d03983a65eacdd726be75d91b076475a89a3a75e79d82e
2141974f665f4d8fecb6d8ea06add624b57f320f901368847175570ee716fd8e
ssdeep
24576:75+fEilGQ8Joz078UfJeOYyF42fQhz03:d+78J04r4zzW
24576:jBm2D0GlV7LJMLMVSBsalgydd4jnYnyeiRy:M2D0mV76LMV1algAkYP
Présentation

Chaque fichier DLL chargé via le mécanisme AppInit_DLLs renferme le rootkit en lui-même qui est chargé de dissimuler les activités malveillantes.

Pour atteindre cet objectif, la bibliothèque Detours (github.com/microsoft/detours) est utilisée. Il s'agit d'une bibliothèque permettant de placer des hooks en mémoire afin de détourner le flux d'exécution de programmes vers des fonctions définies par développeur, ici à des fins malveillantes.

Pose de hooks

Les appels systèmes NtQuerySystemInformation et zwQueryDirectoryFile sont hookés :

  • ZwQueryDirectoryFile est la fonction responsable de récupérer les informations sur les fichiers contenus dans un répertoire. Ce hook est utilisé ici pour dissimuler des fichiers ou dossiers et est placé uniquement dans la version 64 bits de la DLL.
  • NtQuerySystemInformation permet entre autres de renvoyer des informations sur les processus en cours d'exécution, cette fonction est donc modifiée pour dissimuler des processus.

Figure 19 : aperçu de la mise en place des hooks

Nous constatons la présence de "seulement" deux hooks, alors que la version la plus récente de r77 sur le projet Github.com en compte une dizaine. Comme l'indiquent les chemins des fichiers de débogages trouvés dans les fichiers DLL, il s'agit visiblement d'une version personnalisée du rootkit :

  • F:\r77-Custom-rootkit-masterVENOM\x64\Debug\r77-x64.pdb
  • F:\r77-Custom-rootkit-masterVENOM\Debug\r77-x86.pdb
  • F:\r77-Custom-rootkit-masterVENOM\Install\obj\Debug\Install.pdb

Icarus

Carte d'identité du stealer

Type of file
PE
Language used
.NET
Compilation date
Sun Nov 27 01:42:33 2022
Obfuscation
No
md5
712871412b0da86d7bc1f1601e1fa212
sha1
14a59ee663cd6ff1b816a62e2078aa434cdf1da5
sha256
6b4ea42c1de9777847d7b6f980976310abe46d2de9792045a6eba54b032b8520
ssdeep
49152:BNNm/5XhG34AiROEw+W7SCmnVQjkQxBA8hA:nU11lw/CFyA

Présentation du stealer

Icarus.exe est un stealer, proche fonctionnellement de StormKitty ou Prynt Stealer précédemment abordés, qui collecte de nombreuses informations :

  • données bancaires ;
  • cryptomonnaies ;
  • données de navigation (historique, cookies, mots de passe, téléchargements) pour les principaux navigateurs : Edge, Firefox, Chrome / Chromium ;
  • comptes de jeux vidéos : Steam, Battlenet, Uplay, Minecraft ;
  • données de messageries : Discord, Element, Icq, Outlook, Pidgin, Signal, Skype, Telegram, Tox ;
  • données système : applications installées, clé de licence Windows, informations système ;
  • codes wifi enregistrés ;
  • captures d'écrans ;
  • frappes clavier ;
  • accès VPNs (ProtonVPN, OpenVPN, NordVPN) ;
  • vol de fichiers selon leurs extensions.

Lors de la construction du sample, il est possible de sélectionner quels fichiers ou données doivent être collectés. Cette configuration est ensuite enregistrée dans le binaire.

Dans le cas précis de ce sample, les extensions de fichiers renseignées correspondent à des fichiers classiques : documents Microsoft Office, base de données de mots de passe, mais aussi plus spécifiques à certains secteurs tels que des fichiers de code source ou de bases de données métier. Le spectre d'utilisation est donc très large, il vise aussi bien les particuliers que les entreprises.

Une fonctionnalité "PornService" permet même de réaliser des captures d'écran et de webcam simultanément lorsque certains mots-clés sont repérés par le keylogger. Pas besoin de lister les mots-clés pour faire comprendre que l’objectif final est la sextorsion.

Ces données sont ensuite exfiltrées via différents canaux : chats Discord, sites de partage de fichiers (gofile, anonfile) ou encore canaux Telegram.

Figure 20 : code du formatage des données avant l'envoi sur Discord par le stealer Icarus

Mécanismes d’autoprotection du stealer

Ce binaire contient plusieurs moyens de se protéger contre des détections par des produits de sécurité :

  • l'autodestruction déclenchée par exemple si le serveur discord n'est pas joignable ;
  • la détection de sandbox et de machine virtuelle ;
  • la détection de débogage ;
  • la détection parmi les processus lancés si certains sont des outils habituellement utilisés par les analystes.

Figure 21 : code de blacklist de logiciels de sécurité par le stealer Icarus

Origine probable du stealer

Renommé Icarus dans les samples trouvés, le chemin de PDB se trouvant dans le binaire indique qu'il s'agit de Stealerium ou d'une variante, disponible en open source (github.com/Stealerium/Stealerium) :

H:\HVNCICARUS\Icarus\Icarus - Nocrypt\HVNC Source\Stealerium-Build_2022.06.08_22-08\Stub\obj\Debug\Icarus.pdb

Ci-dessous, une comparaison entre du code du sample décompilé et le code présent sur le dépôt de Stealerium où on peut noter une forte ressemblance :

Figure 22 : comparaison des codes entre le sample Icarus et le dépôt de Stealerium

Highlander

Carte d'identité

Type of file
PE
Language used
.NET
Compilation date
Sun Feb 27 23:06:01 2101 | Incoherent
Obfuscation
No
md5
b785943821261b267d3f3d686fc013e6
sha1
a2e4412c9e1cf33c668e786c2bdec35c2f86a688
sha256
a8361bd86b7859c0d93c8470975e9ffd20765c42ecb49491c029542213410a85
ssdeep
192:6QUlf6ETyQ7H3QxX5ARunnf0HD7mZoPfYIqL0HjvFYx:TU4ET9b3QV5Tnn3KH1yINY

Présentation

Cet outil, déployé par HiddenEyeZ HVNC, ne remplit qu'une seule fonctionnalité : désactiver Windows Defender.

Son fonctionnement est assez basique pour être décrit en intégralité :

  • démarrage du service TrustedInstaller : cette étape permet de s'assurer qu'un processus est en cours d'exécution sous le compte TrustedInstaller ;
  • tentative d'usurpation du compte SYSTEM via une impersonation : le malware tente d'ouvrir le token du processus Winlogon s'exécutant sous le compte SYSTEM et de s'impersonner avec pour objectif d'effectuer une première élévation de privilèges. À noter que cette opération nécessite des privilèges qui ne sont disponibles que pour les comptes administrateur ;
  • tentative d'usurpation du compte TrustedInstaller via une impersonation : le malware tente de réaliser la même action avec le compte TrustedInstaller pour se placer dans le contexte d'exécution de ce compte technique qui est utilisé pour gérer Windows Defender (démarrage ou arrêt de service, remplacement de fichiers, etc.) ;
  • arrêt du service Windows Defender : la dernière étape réalise l'objectif initial de l'outil en désactivant Windows Defender. Ainsi, la furtivité du reste de l'attaque est améliorée.

Voici l'implémentation de l'impersonation avec le compte TrustedInstaller.

Figure 23 : code de l'implémentation de l'impersonation avec le compte TrustedInstaller par l’outil Highlander

L'outil semble plus tenir d'une preuve de concept sans avoir le niveau de qualité nécessaire pour être déployé lors d'une attaque :

  • présence de nombreuses chaines de débogage ;
  • aucune vérification des échecs dans les différentes étapes.

Figure 24 : code de l’outil Highlander illustrant le manque de vérification du succès des différentes étapes

Toutes les actions seront effectuées mêmes si les précédentes échouent, ainsi elles échoueront elles aussi.

AddStartupTask

Carte d'identité

Type of file
PE
Language used
.NET
Compilation date
Fri Jul 8 11:52:00 2022
Obfuscation
No
md5
5368a0fe20ac61149f28dc1a3a9ff829
sha1
9127a299c46593f9e0de1f409b2a44e72aa5f6c4
sha256
469e25f46030d6fb3b04e83b095b5c8e09017e39c40bc584920e324fd87d0700
ssdeep
3072:mN1U+fpbH6rA0LZQy5hYajNFhEwQ6rKXSWdQqxfZ8heWycJ5DfwrxS4wr8isBhHC:21U+fs2ajNTOrlR4ithyT/TM2aa3

Présentation

Cet outil, déployé et utilisé par HiddenEyeZ HVNC, est responsable de la persistance de ce dernier. Il lui garantit un démarrage automatique, que ce soit à l'ouverture de session de l'utilisateur ou périodiquement une fois par jour à heure constante.

Pour cela, trois moyens de persistance sont utilisés :

  • la création d'une tâche planifiée périodique cherchant à se faire passer pour un élément de Windows :
    • Auteur : Microsoft
    • Description : This will keep your software up to date.
  • la création d'une tâche planifiée s'exécutant à l'ouverture d'une session utilisateur ;
  • l'enregistrement du binaire dans la clé registre HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.

Ce binaire gère la mise en place et la désinstallation des moyens de persistance pour le malware HiddenEyeZ HVNC.

Figure 25 : code d'installation du moyen de persistance AddStartupTask

Utilisation

Lors de son utilisation par le malware HiddenEyeZ HVNC, AddStartupTask est déposé à l'emplacement %TEMP%\proclog.exe. Il est ensuite lancé par l'intermédiaire d'un script %TEMP%\drive.bat. Suite à cette exécution, les deux fichiers sont supprimés du disque.

Figure 26 : code de HiddenEyeZ HVNC exécutant l’outil AddStartupTask

Les protections Stormshield face au malware HiddenEyeZ

Les protections Stormshield Network Security via flux réseau

L’accès au C2 HiddenEyeZ HVNC est bloqué, car catégorisé comme malware par nos bases de données de réputation d’IP. De plus, les firewalls Stormshield Network Security (SNS) ont la possibilité de filtrer les communications vers divers services, utilisés ici par l'attaquant :

Service / Malware
Signature
Serveur de C&C de StormKitty
http:client:header.226
Serveur Telegram
tcpudp:hostname.154 / ssl:client:sni.25
Serveur Discord
ssl:client:sni.24 / tcpudp:hostname.153 / ssl:server:certificate.102

Les protections Stormshield Network Security via l’antivirus intégré

Voici les signatures SNS détectant les différents samples via l’antivirus intégré :

Sample
Signature
Installer r77
Trojan.GenericKD.65601994
Dropper from HiddenEyeZ
Gen:Trojan.Heur.DNP.Gm0@aK1dYYi
r77 dll 64 bits
Trojan.GenericKD.65601994

Les protections Stormshield Network Security via Breach Fighter

Voici les signatures SNS détectant les différents samples via le service Breach Fighter :

Sample
Breach Fighter detection
Icarus
Malveillant Trojan:MSILZilla/25816
HiddenEyeZ HVNC dropper
Trojan:MSILZilla/11609
HiddenEyeZ HVNC
Trojan:MSILZilla/8938
highlander.exe
Variant:Marsilia/20527.1
r77 - installer
Variant:MSILHeracles/32317
r77 - dll x86
Variant:Cerbu/99363
r77 - dll x64
Trojan:GenericKD/65601994
r77 - uninstaller
SUSPECT
AddStartupTask.exe
Variant:Razy/592822
StormKitty / Prynt Stealer
Trojan:MSILZilla/24027

Les protections Stormshield Endpoint Security Evolution

Voici pour chaque exécutable analysé, les protections apportées par Stormshield Endpoint Securtity Evolution (SES).

Sample
Rules set
Protection
Dropper de HiddenEyeZ HVNC
Baseline protection
Blocking the execution
StormKitty / Prynt Stealer
Data Leak Prevention
Blocking the recovery of protected sensitive data
HiddenEyeZ HVNC
No blocking without explicit action by the attacker
Installer r77
Baseline protection
Blocking the execution
Uninstall r77
Baseline protection
Blocking the execution
Icarus
Data Leak Prevention
Blocking the recovery of protected sensitive data
Highlander
Baseline protection
Blocking the execution

Malware HiddenEyeZ & IoC

Fichiers

File names
SHA-256
Sample
svchost.exe
fede8f2bc1985107197319816287218a3631460e2f8205cf119ce406d7c3b2d7
StormKitty / Prynt Stealer
AddTaskStartUp.exe
469e25f46030d6fb3b04e83b095b5c8e09017e39c40bc584920e324fd87d0700
AddStartupTask
svchost.exe
6b4ea42c1de9777847d7b6f980976310abe46d2de9792045a6eba54b032b8520
Icarus
a8361bd86b7859c0d93c8470975e9ffd20765c42ecb49491c029542213410a85
Highlander
Installs.exe
bb86e41bb6d5eccad1ff84ab343506f4f5fcd78b0618966edc0ae0e05fcc8683
HiddenEyeZ HVNC Dropper
rk.exe
4604e501fb4efb5ce862e81232c61b29e4470b5313055efb291593d66f23af7e
r77 (Install)
rkd.exe
6c1b2c9ae4887ff134bd098cab3e6c5ada1482f45a129ccc858733a545a10619
r77 (Uninstall)
r77-x64.dll
2141974f665f4d8fecb6d8ea06add624b57f320f901368847175570ee716fd8e
r77 (Dll 64 bits)
r77-x86.dll
ed3ee849ae71001941d03983a65eacdd726be75d91b076475a89a3a75e79d82e
r77 (Dll 32 bits)
ba1615c7617f148228c587ffe7607ac841fd682ba4905f4af53e18d601b84102
HiddenEyeZ HVNC
rescale.ps1
a10479eea5f9d85ac00db77c0e090de2db64cdb163055e7b42fbcb2c97a66898
HiddenEyeZ HVNC
Path
Sample
%TEMP%proclog.exe
HiddenEyeZ HVNC
%TEMP%drive.bat
HiddenEyeZ HVNC
%TEMP%HiddenEyeZ.zip
Icarus
%TEMP%svchost.exe
HiddenEyeZ HVNC Dropper / HiddenEyeZ HVNC
%TEMP%svchost.bat
HiddenEyeZ HVNC Dropper / HiddenEyeZ HVNC
rescale.ps1
HiddenEyeZ HVNC Dropper / HiddenEyeZ HVNC
MessengerDiscordtokens.txt
StormKitty / Prynt Stealer
HiddenEyeZlockfile
StormKitty / Prynt Stealer
%TEMP%rkd.exe
r77
%TEMP%rk.exe
r77
%APPDATA%r77-x64.dll
r77
%APPDATA%r77-x86.dll
r77

URL/IP

Address
Sample
5[.]75.162.22
HiddenEyeZ HVNC
hxxp://hiddeneyez.com/icar/
HiddenEyeZ HVNC
hxxps://api.telegram.org/bot5905672828:AAGUnoGz8ijN7mSXpHHKho9sOEnmiUyuoC0/
StormKitty / Prynt Stealer
hxxp://193.31.116.239/crypt/public/Update_Downloads/patata.jpg
HiddenEyeZ HVNC Dropper
hxxps://raw.githubusercontent.com/HiddenEyeZ/tg/main/rt.jpg
HiddenEyeZ HVNC Dropper
hxxps://i.ibb.co/kDLd65M/dcicon.png
Icarus
hxxps://i.ibb.co/RvwvG2z/icaruwsdr-athens.png
Icarus
hxxps://discord.com/api/webhooks/995609071304593409/IOLhP3ykqEdZcTv7nJgfKJfoNaRwLOZX3dgmUFTXow93vFkbG4e9gVYaDjfaHkGc3x6M
Icarus
208.95.113.1
Icarus

Commandes

Commands
Sample
cvtres.exe HiddenEyeZ_Client 5.75.162.221 8081 mPgxExkLE
HiddenEyeZ HVNC Dropper
cmd /k start /b powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath cvtres.exe
HiddenEyeZ HVNC Dropper
cmd.exe /c start computerdefaults.exe
Dropper from HiddenEyeZ HVNC , Install/uninstall r77
cmd /c schtasks /create /f /sc onlogon /rl highest /tn "proclog"" /tr [...]
HiddenEyeZ HVNC

Partager sur

[juiz_sps buttons="facebook, twitter, linkedin, mail"]
Notre équipe de Threat Intelligence remplit deux missions principales : étudier les menaces cyber pour les comprendre et améliorer en continu les protections des produits de Stormshield. Le tout, dans l’optique de contribuer à l’effort de la communauté de la cybersécurité pour faire face aux menaces cyber.