Nova Stealer, le malware made in France
Au vu du changement constant des techniques utilisées par le groupe étudié, cet article peut mentionner des informations qui ne sont plus d’actualité.
![](https://www.gatewatcher.com/wp-content/uploads/2023/11/le-lab-gatewatcher-d.png)
Introduction
Nova Sentinel est un groupe cybercriminel proposant un service de StaaS (Stealer as a Service), commercialisant un “information stealer” (voir notre Cyber Threat Barometer 2023) développé par eux-mêmes, et distribuant différents malwares en open source. D’après la date de création de leur canal Telegram, le groupe semble être actif au moins depuis le 9 août 2020. Ce dernier communique en grande partie en anglais mais les acteurs principaux semblent être français, ou au moins francophones, en témoignent les discussions sur leur canal Telegram.
Étude d’une souche de Nova Stealer
Nova Stealer est une information stealer développée – et commercialisée – par le groupe Nova Sentinel en JavaScript et utilisant le framework Electron pour la compilation du code. Ses capacités sont étendues et comprennent le vol d’identifiants stockés dans la plupart des navigateurs, le vol de session pour des plateformes telles que Discord et Steam, ainsi que le vol d’informations liées aux portefeuilles de crypto-monnaies.
Ce stealer étant commercialisé en tant que service, une boutique est disponible pour l’achat de licences : anciennement sur la plateforme Sellix (https://novasentinel[.]mysellix.io) puis, après fermeture de la boutique, sur la plateforme Sellpass (https://novasentinel[.]sellpass.io/products).
![Boutique Du Groupe Nova Sentinel Vendant Un Accès Au Nova Stealer](https://www.gatewatcher.com/wp-content/uploads/2024/06/Boutique-du-groupe-Nova-Sentinel-vendant-un-acces-au-Nova-Stealer.png)
Pour l’étude d’une souche de ce stealer, nous utiliserons un exécutable se faisant passer pour un jeu, et disponible sur dualcorps[.]fr (attention, ce site récupère l’adresse IP de tous les utilisateurs visitant la page).
Ce site se fait donc passer pour une plateforme permettant de télécharger un jeu gratuitement, derrière lequel se cache en fait notre info stealer.
Le stealer envoie ensuite les informations trouvées vers un webhook Discord. Un webhook est une méthode permettant à une application de fournir des informations en temps réel à une autre application. Contrairement aux API traditionnelles qui nécessitent que le client interroge le serveur pour obtenir des données, un webhook permet au serveur d’envoyer des données au client dès qu’un certain événement se produit.
Analyse dynamique
L’analyse dynamique d’un malware permettra de comprendre son comportement en temps réel lorsqu’il s’exécute dans un environnement contrôlé.
En regardant rapidement l’analyse, le malware va créer un grand nombre de processus, permettant une obfuscation de ses actions. Pour faire court, ces processus vont récupérer quelques informations sur le système infecté et récupérer la solution antivirus disponible sur la machine.
Nous voyons aussi des connexions vers ipinfo.io (récupération de l’IP de la victime), github.com (récupérations de scripts tiers, comme PowerShell-Red-Team) mais surtout vers hawkish[.]fr (extraction des données). A noter que toutes les connexions sont chiffrées.
Extraction des données
Lorsque nous visitons le site hawkish[.]fr, nous tombons sur un simple site de type Capture The Flag. Pourtant, en créant un compte, nous accédons à une partie tierce du site, offrant la possibilité de saisir un webhook Discord. Cette action génère un endpoint d’API à intégrer lors de la compilation du stealer.
![Bouton Hawkish Grabber Permettant La Création De Son Url D’api](https://www.gatewatcher.com/wp-content/uploads/2024/06/Bouton-Hawkish-Grabber-permettant-la-creation-de-son-url-dAPI.png)
![Après Avoir Fourni Un Webhook Discord, L’utilisateur Récupère L’url à Rentrer Lors Du Build De Son Stealer.](https://www.gatewatcher.com/wp-content/uploads/2024/06/Apres-avoir-fourni-un-webhook-discord-lutilisateur-recupere-lurl-a-rentrer-lors-du-build-de-son-stealer.png)
Cela permet d’anonymiser tous les retours, en passant d’abord par l’API détenue par le groupe Nova Sentinel.
La problématique avec cette méthode est que le groupe a, en théorie, la possibilité d’accéder à l’ensemble des données collectées par le stealer des utilisateurs. Le site hawkish[.]fr faisant l’intermédiaire entre le stealer et l’utilisateur malveillant, nous ne pouvons que faire l’hypothèse que tout ce qui passe par le site de Nova Sentinel est stocké.
Lors de la réception des données, l’utilisateur peut voir l’adresse IP de la victime, sa localisation, des informations sur le système infecté et un résumé de ce qui a été récupéré. Enfin, un lien est disponible pour télécharger les résultats en passant par la plateforme GoFile.
![Exemple De Résultats Reçu Sur Un Canal Discord](https://www.gatewatcher.com/wp-content/uploads/2024/06/Exemple-de-resultats-recu-sur-un-canal-discord.png)
Le nom du fichier à télécharger est défini selon la méthode suivante :
<COUNTRY_CODE>_NOVA_<victim_username>.zip
Et l’url sous la forme : https://gofile.io/d/XXXXXX
Voici un exemple de ce qui peut être récupéré sur une victime :
![Arborescence Du Fichier Zip Contenant Les Informations Volées De La Victime](https://www.gatewatcher.com/wp-content/uploads/2024/06/Arborescence-du-fichier-zip-contenant-les-informations-volees-de-la-victime.png)
L’objectif principal d’un infostealer est de récupérer les mots de passe et cookies stockés dans les navigateurs de la victime. Cependant, Nova dépasse ses fonctionnalités basiques. En effet, ce stealer va aussi récupérer les fichiers de configuration de certains jeux et de leurs gestionnaires installés sur l’ordinateur. De plus, dans le dossier système, le malware retourne la liste des antivirus installés sur la machine, et des informations sur le système, comme le matériel, le système d’exploitation, l’IP et même la clé Windows enregistrée. Une capture d’écran de l’écran de la victime au moment où le fichier malveillant est exécuté est aussi présente.
Etude statique : Reverse Engineering
L’analyse statique d’un malware permettra d’examiner son code source et sa structure sans exécution, pour identifier des signatures ou des indicateurs de compromission.
Lors de l’analyse statique du fichier « Dual Corps.exe » en utilisant l’outil Detect It Easy, nous voyons qu’il s’agit d’un exécutable d’installation. En extrayant l’exécutable après installation, il est remarqué que le framework Electron a été utilisé pour le développement du stealer.
![Récupération Des Informations Sur Le Fichier De Base Et Après Extraction](https://www.gatewatcher.com/wp-content/uploads/2024/06/Recuperation-des-informations-sur-le-fichier-de-base-et-apres-extraction.png)
Avec ces informations à disposition, il est alors relativement facile de récupérer le code source de l’application : il suffit de décompresser le fichier.
![Processus De Décompression Pour Récupérer Le Fichier App.asar](https://www.gatewatcher.com/wp-content/uploads/2024/06/Processus-de-decompression-pour-recuperer-le-fichier-app.asar_.png)
Nous restons enfin avec « app.asar », qui contient le code javascript de l’exécutable. Pour le récupérer, il est possible d’utiliser un plugin 7zip.
![Processus De Récupération Du Code Source](https://www.gatewatcher.com/wp-content/uploads/2024/06/Processus-de-recuperation-du-code-source.png)
En ouvrant le fichier bundle.js, nous accédons au code source de l’application, ce dernier étant obfusqué.
Tout ce procédé manuel peut être automatisé grâce à un unpacker développé par nos soins : https://github.com/Gatewatcher/nova_unpacker
Désobfuscation du code
La désobfuscation est un processus lent et fastidieux, censé ralentir l’étude d’un code source. Par conséquent, nous ne rentrerons pas dans les détails.
![Partie Du Code Obfusqué](https://www.gatewatcher.com/wp-content/uploads/2024/06/Partie-du-code-obfusque.png)
Après désobfuscation manuelle, nous nous retrouvons avec un script JS composé de plus de 500 lignes de code longues et complexes. Cependant, seule une partie du code désobfusqué est réellement pertinente pour notre analyse.
![Partie Du Code Obfusqué Contenant Du Code Javascript En Clair](https://www.gatewatcher.com/wp-content/uploads/2024/06/Partie-du-code-obfusque-contenant-du-code-javascript-en-clair.png)
Nous remarquons dans cette portion du code plus ou moins lisible, qu‘il s’agit en fait de modules tiers chargés dans des variables qui seront par la suite utilisées.
Une analyse dynamique du code a permis de récupérer 21 modules complémentaires, entièrement en clair. Le module admin.js permet enfin de récupérer la configuration du stealer :
![Config](https://www.gatewatcher.com/wp-content/uploads/2024/06/config.png)
Explication de la configuration : Etude du builder
Le builder – logiciel utilisé pour créer et personnaliser un logiciel malveillant en générant des variantes uniques avec différentes fonctionnalités et techniques d’évasion – étant aussi développé en utilisant la librairie Electron, la récupération du code source suit le même procédé que celui vu précédemment. De plus, le code n’est cette fois-ci pas obfusqué, facilitant grandement sa compréhension.
![Page De Connexion Au Builder](https://www.gatewatcher.com/wp-content/uploads/2024/06/Page-de-connexion-au-builder.png)
Lors de l’exécution du builder, une authentification est nécessaire. A priori, la soumission de l’ID Discord n’a pas d’utilité, comme semble le prouver le code JavaScript présent sur la page.
![Code Source Pour L’authentification Au Service Du Builder](https://www.gatewatcher.com/wp-content/uploads/2024/06/Code-source-pour-lauthentification-au-service-du-builder.png)
Cependant, un “nova token” permet d’accéder aux fonctionnalités du builder.
![Code Source Montrant La Vérification Du Nova Token](https://www.gatewatcher.com/wp-content/uploads/2024/06/Code-source-montrant-la-verification-du-nova-token.png)
Ce dernier est envoyé à l’url https://hawkish[.]fr/grabber/nova/login_by_token, qui va vraisemblablement tester le code, et si celui-ci est valable, emmener l’utilisateur vers le builder.
![Première Page Du Builder](https://www.gatewatcher.com/wp-content/uploads/2024/06/Premiere-page-du-builder.png)
![Deuxième Page Du Builder](https://www.gatewatcher.com/wp-content/uploads/2024/06/Deuxieme-page-du-builder.png)
![Troisième Page Du Builder](https://www.gatewatcher.com/wp-content/uploads/2024/06/Troisieme-page-du-builder.png)
Nous retrouvons ici quelques variables visibles dans la configuration du stealer.
Après avoir entré ces informations, ces dernières sont envoyées à http://87[.]106.121.77:3000/cacagrossebite/kschleplusbeau/mazette. Un lien de téléchargement de l’exécutable est enfin renvoyé.
Buts du groupe
Le but premier du groupe est donc vraisemblablement financier, à l’instar de tout groupe proposant un MaaS (Malware As A Service). Cependant, il est aussi à noter qu’il est en théorie possible que le groupe ait accès à toutes les informations récupérées par le stealer. En commercialisant Nova Stealer, Nova Sentinel pourrait donc avoir accès à un grand nombre d’informations privées sur les victimes du stealer, tout en générant des revenus par la vente d’accès à l’API.
Annexes
Hiérarchie Nova Sentinel
![Hiérarchie De Nova Sentinel](https://www.gatewatcher.com/wp-content/uploads/2024/06/Hierarchie-de-Nova-Sentinel.png)
IOCs
![Ioc](https://www.gatewatcher.com/wp-content/uploads/2024/06/IOC.png)
Auteur : Nicolas M. F., Purple Team