Nova Stealer, le malware made in France

Grâce à notre outil de Cyber Threat Intelligence, LastInfoSec, notre équipe Purple a trouvé une menace venant d’un nouveau groupe cybercriminel. Nous avons décidé de l’étudier et de compiler nos recherches dans ce rapport.

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é.

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
Boutique Du Groupe Nova Sentinel Vendant Un Accès Au Nova Stealer

 

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
Bouton Hawkish Grabber Permettant La Création De Son Url D’api

 

Après Avoir Fourni Un Webhook Discord, L’utilisateur Récupère L’url à Rentrer Lors Du Build De Son Stealer.
Après Avoir Fourni Un Webhook Discord, L’utilisateur Récupère L’url à Rentrer Lors Du Build De Son Stealer.

 

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
Exemple De Résultats Reçu Sur Un Canal Discord

 

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
Arborescence Du Fichier Zip Contenant Les Informations Volées De La Victime

 

​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
Récupération Des Informations Sur Le Fichier De Base Et Après Extraction

 

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
Processus De Décompression Pour Récupérer Le Fichier App.asar

 

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
Processus De Récupération Du Code Source

 

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 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é
Partie Du Code Obfusqué

 

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
Partie Du Code Obfusqué Contenant Du Code Javascript En Clair

 

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

 

 

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
Page De Connexion Au Builder

 

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
Code Source Pour L’authentification Au Service Du Builder

 

Cependant, un “nova token” permet d’accéder aux fonctionnalités du builder.

Code Source Montrant La Vérification Du Nova Token
Code Source Montrant La Vérification Du Nova Token

 

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
Première Page Du Builder
Deuxième Page Du Builder
Deuxième Page Du Builder
Troisième Page Du Builder
Troisième Page Du Builder

 

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
Hiérarchie De Nova Sentinel

 

IOCs

Ioc

 

 

Auteur : Nicolas M. F., Purple Team