Enquête : Le groupe APT EvilNum cible les Fintech en Europe avec son nouveau Trojan Pyvil

1
134

L’équipe de recherches sur les cybermenaces, Nocturnus, de Cybereason alerte sur une nouvelle menace, un cheval de Troie / Trojan (Remote Access Trojan) développé par le groupe APT EvilNum, ciblant actuellement le secteur bancaire, en particulier les Fintechs, en Europe.

Enquête par Tom Fakterman – Cybereason suit le groupe EvilNum depuis 2018. Les analystes de l’équipe Nocturnus ont récemment observé un regain d’activité du groupe et des évolutions dans leurs méthodes (TTPs) et outils (infra, nouveau trojan). EvilNum utilise un nouveau Remote Access Trojan, nommé PyVil par Cybereason, qui cible fortement le secteur bancaire/fintechs en Europe.  EvilNum diffuse son cheval de Troie via des mails de phishing, abusant des process très utilisés dans le secteur bancaire de vérification des identités des clients, Know Your Customer / KYC. Le but final étant de voler des données et informations sensibles.

Au cours des derniers mois, l’équipe Cybereason Nocturnus a enquêté sur l’activité du groupe Evilnum. Le groupe a vu le jour en 2018, et depuis lors, l’activité d’Evilnum a été variée, avec des rapports récents utilisant différents composants écrits en Javascript et C# ainsi que des outils achetés auprès du fournisseur de logiciels malveillants en tant que service Golden Chickens.

Les opérations du groupe semblent être très ciblées, par opposition à une opération de phishing généralisée, avec un accent sur le marché FinTech en abusant de la réglementation Know Your Customer (KYC), des documents contenant des informations fournies par les clients lors de leurs activités. Depuis sa première découverte, le groupe a principalement ciblé différentes entreprises à travers l’UE.

Ces dernières semaines, l’équipe Nocturnus a observé une nouvelle activité du groupe, y compris plusieurs changements notables par rapport aux tactiques observées précédemment. Ces variations incluent un changement dans la chaîne d’infection et de persistance, une nouvelle infrastructure qui se développe au fil du temps et l’utilisation d’un nouveau cheval de Troie d’accès à distance (RAT) avec un script Python baptisé PyVil RAT.

PyVil RAT possède différentes fonctionnalités, et permet aux attaquants d’exfiltrer des données, d’effectuer un keylogging et la prise de captures d’écran, et le déploiement de plus d’outils tels que LaZagne afin de voler des identifiants.

Dans cet article, nous plongeons dans l’activité récente du groupe Evilnum et explorons sa nouvelle chaîne d’infection et ses nouveaux outils.

Principales conclusions

Evilnum : L’équipe Cybereason Nocturnus suit les opérations du groupe Evilnum, qui est actif depuis deux ans, à l’aide de divers outils.

Ciblage du secteur financier : le groupe est connu pour cibler les entreprises FinTech et abuse de l’utilisation de la procédure Know Your Customer (KYC) pour déclencher l’infection.

Nouvelles astuces : Dans cette recherche, nous constatons un écart par rapport à la chaîne d’infection, la persistance, l’infrastructure et les outils observés précédemment, notamment :

  • Versions modifiées d’exécutables légitimes utilisées pour tenter de ne pas être détectées par les outils de sécurité.
  • Transfert de la chaîne d’infection d’un cheval de Troie JavaScript avec des capacités de porte dérobée à une procédure de livraison multi-processus de la charge utile.
  • Un RAT à script Python nouvellement découvert appelé PyVil RAT qui a été compilé avec py2exe, qui a la capacité de télécharger de nouveaux modules pour étendre les fonctionnalités.

Vue d’ensemble du groupe

Il a été rapporté que le groupe Evilnum cible les sociétés de technologie financière, principalement situées au Royaume-Uni et dans d’autres pays de l’UE. L’objectif principal du groupe est d’espionner ses cibles infectées et de voler des informations telles que des mots de passe, des documents, des cookies de navigateur, des informations d’identification de courrier électronique, etc.

Outre les outils propriétaires du groupe, Evilnum a été observé déployant des outils Golden Chickens dans certains cas, comme indiqué dans le passé. Golden Chickens est un fournisseur de Malware-as-a-Service (MaaS) qui est connu pour avoir été utilisé par des groupes tels que FIN6 et Cobalt Group. Parmi les outils utilisés par le groupe Evilnum figurent More_eggs, TerraPreter, TerraStealer et TerraTV.

L’activité du groupe Evilnum a été identifiée pour la première fois en 2018, lorsqu’ils ont utilisé la première version de leur tristement célèbre cheval de Troie JavaScript. Le script extrait les adresses C2 de sites tels que GitHub, DigitalPoint et Reddit en interrogeant des pages spécifiques créées à cet effet. Cette technique permet aux attaquants de changer facilement l’adresse C2 des agents déployés tout en gardant les communications masquées au fur et à mesure que les requêtes sont faites à des sites connus légitimes.

Depuis lors, le groupe a été mentionné à plusieurs reprises, dans différentes attaques, mettant à chaque fois à niveau son ensemble d’outils avec de nouvelles fonctionnalités ainsi que l’ajout de nouveaux outils à l’arsenal du groupe.

Le vecteur d’infection initial d’Evilnum commence généralement par des e-mails de spear phishing, dans le but de fournir des archives ZIP contenant des fichiers LNK se faisant passer pour des photos de différents documents tels que les permis de conduire, les cartes de crédit et les factures de services publics. Ces documents sont susceptibles d’être volés et appartiennent à de vraies personnes.

Une fois qu’un fichier LNK est ouvert, il déploie le cheval de Troie JavaScript, qui à son tour remplace le fichier LNK par un fichier image réel, rendant toute cette opération invisible pour l’utilisateur.

À ce jour, comme décrit dans cette publication, six itérations différentes du cheval de Troie JavaScript ont été observées dans la nature, chacune avec de petits changements qui n’altèrent pas les fonctionnalités de base. L’agent JavaScript a des fonctionnalités telles que télécharger et télécharger des fichiers, voler des cookies, collecter des informations antivirus, exécuter des commandes, etc.

En plus du composant JavaScript, comme décrit dans une recherche précédente, le groupe a été observé en train de déployer un cheval de Troie C#, qui possède des fonctionnalités similaires à l’ancien composant JavaScript.

Nouvelle chaîne d’infection

Dans le passé, la chaîne d’infection d’Evilnum commençait avec des e-mails de spear phishing, fournissant des archives zip contenant des fichiers LNK se faisant passer pour des images. Ces fichiers LNK supprimeront un cheval de Troie JavaScript avec différentes capacités de porte dérobée comme décrit ci-dessus.

Ces dernières semaines, nous avons observé un changement dans cette procédure d’infection: d’abord, au lieu de livrer quatre fichiers LNK différents dans une archive zip qui à son tour sera remplacée par un fichier JPG, un seul fichier est archivé. Ce fichier LNK se fait passer pour un PDF dont le contenu comprend plusieurs documents, tels que des factures de services publics, des photos de cartes de crédit et des photos de permis de conduire. Lorsque le fichier LNK est exécuté, comme dans les versions précédentes, un fichier JavaScript est écrit sur le disque et exécuté, remplaçant le fichier LNK par un PDF.

Contrairement aux versions précédentes qui possédaient un éventail de fonctionnalités, cette version du JavaScript agit principalement comme un compte-gouttes et ne dispose d’aucune capacité de communication C2. Ce JavaScript est la première étape de cette nouvelle chaîne d’infection, culminant avec la livraison de la charge utile, un RAT écrit en Python compilé avec py2exe que les chercheurs de Nocturnus ont surnommé PyVil RAT :

Cybereason est parvenu à visualiser l’arborescence des processus et l’extraction du JavaScript à partir du fichier LNK :

Le JavaScript est extrait en sortant toutes les lignes contenant la chaîne «END2» (commentée dans le script) dans un fichier nommé «0.js» dans le dossier temporaire et le LNK est copié dans le dossier temporaire sous la forme «1.lnk».

Le fichier JavaScript utilise un chemin similaire à celui des versions précédentes pour supprimer les binaires (“% localappdata% \\ Microsoft \\ Credentials \\ MediaPlayer \\”). Une fois que le script a remplacé le fichier LNK par le vrai PDF, le fichier JS est copié dans «% localappdata% \ Microsoft \ Credentials \ MediaPlayer \ VideoManager \ media.js» et est à nouveau exécuté.

Dans cette deuxième exécution du script, un fichier exécutable nommé «ddpp.exe» qui est intégré dans le fichier LNK est extrait et enregistré dans «% localappdata% \ Microsoft \ Credentials \ MediaPlayer \ ddpp.exe».

Contrairement aux versions précédentes où le logiciel malveillant utilisait la clé de registre Exécuter pour la persistance, dans cette nouvelle version, une tâche planifiée nommée «Dolby Selector Task» pour ddpp.exe est créée à la place.

Avec cette tâche planifiée, la deuxième étape de récupération de la charge utile commence :

Cybereason montre la tentative de vidage des informations d’identification par la charge utile :

ddpp.exe: programme Tojanzed

L’exécutable ddpp.exe semble être une version de «Java (™) Web Start Launcher» modifiée pour exécuter du code malveillant. En comparant l’exécutable du malware avec l’exécutable Oracle d’origine, nous pouvons voir les métadonnées similaires entre les fichiers. La principale différence à première vue est que l’exécutable Oracle d’origine est signé, alors que le malware ne l’est pas.

Selon le moteur Intezer, il existe une énorme quantité de code partagé entre l’exécutable du malware et le fichier légitime d’Oracle Corporation.

Fonctionnalité ddpp.exe

L’exécutable ddpp.exe fonctionne comme un téléchargeur pour les prochaines étapes de l’infection. Il est exécuté par la tâche planifiée avec trois arguments :

  • L’UUID codé de la machine infectée
  • Une liste codée des produits antivirus installés
  • Le chiffre 0

Lorsque ddpp.exe est exécuté, il décompresse le shellcode. Le shellocode se connecte au C2 à l’aide d’une requête GET, envoyant dans l’URI les trois paramètres reçus qui ont été décrits ci-dessus. À son tour, le logiciel malveillant reçoit en retour un autre exécutable chiffré, qui est enregistré sur le disque sous le nom «fplayer.exe» et est exécuté à l’aide d’une nouvelle tâche planifiée.

fplayer.exe

fplayer.exe fonctionne comme un autre téléchargeur. La charge utile téléchargée est ensuite chargée par fplayer.exe dans la mémoire et sert de RAT sans fichier. Le fichier est enregistré dans «% localappdata% \ microsoft \ media player \ player \ fplayer.exe» et est exécuté avec une tâche planifiée nommée «Adobe Update Task».

Fplayer.exe est également exécuté avec plusieurs arguments :

  • L’UUID codé de la machine infectée
  • Trois arguments qui seront utilisés par le PyVil RAT à un stade ultérieur :-m (nom de tâche planifiée) / -f (lancement d’analyse d’arguments de PyVil RAT) / -t (mise à jour de la tâche).

De la même manière que ddpp.exe, fplayer.exe semble être une version modifiée de «Stereoscopic 3D driver Installer». Ici aussi, nous pouvons voir les métadonnées similaires entre les fichiers, la différence étant que l’exécutable Nvidia d’origine est signé, alors que le malware ne l’est pas. Cette fois également, selon le moteur Intezer, il existe un pourcentage élevé de similitudes de code avec Nvidia Corporation.

Lorsque fplayer.exe est exécuté, il décompresse également le shellcode. Le shellcode se connecte au C2 en utilisant une requête GET, cette fois en envoyant dans l’URI le seul UUID encodé. fplayer.exe a reçu un autre exécutable chiffré, qui est enregistré sous «% localappdata% \ Microsoft \ Media Player \ Player \ devAHJE.tmp».

Le processus déchiffre l’exécutable reçu et le mappe à la mémoire, en lui passant l’exécution.

Le fichier déchiffré est un exécutable py2exe compilé. py2exe est une extension Python qui convertit les scripts Python en exécutables Microsoft Windows.
PyVil: un nouveau Python RAT.

Le code Python à l’intérieur de py2exe est obscurci par des couches supplémentaires, afin d’éviter la décompilation de la charge utile à l’aide des outils existants. À l’aide d’un vidage de la mémoire, nous avons pu extraire la première couche de code Python. Le premier morceau de code décode et décompresse la deuxième couche de code Python.

La deuxième couche de code Python décode et charge en mémoire le RAT principal et les bibliothèques importées.

Le PyVil RAT possède plusieurs fonctionnalités dont :

  • Enregistreur de frappe
  • Exécution des commandes cmd
  • Prendre des captures d’écran
  • Télécharger plus de scripts Python pour des fonctionnalités supplémentaires
  • Déposer et télécharger des exécutables
  • Ouverture d’un shell SSH
  • Collecter des informations telles que les produits antivirus installés, les périphériques USB connectés, les version de Chrome.

Les variables globales de PyVil RAT donnent une compréhension claire des capacités du malware. PyVil RAT a un module de configuration qui contient la version du malware, les domaines C2 et les agents utilisateurs à utiliser lors de la communication avec le C2.

Les communications C2 de PyVil RAT sont effectuées via des requêtes HTTP POST et sont cryptées RC4 à l’aide d’une clé codée en dur encodée en base64. Ces données chiffrées contiennent un Json de différentes données collectées à partir de la machine et de la configuration.

Field

Usage

type

Not clear

xmode

Not clear

req_type

Request type

svc_ver

Malware version in the configuration

ext_ver

A version of an executable the malware may download (-2 means the  executables folder does not exist)

ext_exists

Checks for the existence of a particular executable

svc_name

Appears to be a name used to identify the malware by the C2.

ext_uuid

Encoded machine UUID

svc_uuid

machine UUID

host

Hostname

uname

User name

ia

Is user admin

wv

Windows version

dt

Current date and time

avs

List of installed anti-virus products

gc

Dictionary of different configuration

sc_secs_min

Minimum sleep time between sending screenshots

sc_secs_max

Maximum sleep time between sending  screenshots

kl_secs_min

Minimum sleep time between sending keylogging data

kl_secs_max

Maximum sleep time between sending keylogging data

kl_run

Is keylogger activated

klr

Is keylogger activated

tc

Is USB connected

cr

Is chrome.exe is running

ct

Type of downloaded  module to run: executable or Python module

cn

Module name corresponding to “ct”

imp

Execute the downloaded module (corresponds with “ct”)

pwds

Extracted passwords

cooks

Cookies information

 

Lors de l’analyse de PyVil RAT, à plusieurs reprises, le malware a reçu du C2 un nouveau module Python à exécuter. Ce module Python est une version personnalisée du projet LaZagne que le groupe Evilnum a utilisé dans le passé. Le script essaiera de vider les mots de passe et de collecter des informations sur les cookies à envoyer au C2.

Expansion de l’infrastructure

Dans les campagnes précédentes du groupe, les outils d’Evilnum évitaient d’utiliser des domaines dans les communications avec le C2, en utilisant uniquement des adresses IP. Ces dernières semaines, nous avons rencontré une tendance intéressante avec l’infrastructure croissante d’Evilnum.

En suivant la nouvelle infrastructure d’Evilnum que le groupe a construite au cours des dernières semaines, une tendance à l’expansion peut être observée. Alors que l’adresse IP C2 change toutes les quelques semaines, la liste des domaines associés à cette adresse IP ne cesse de s’allonger. Il y a quelques semaines, trois domaines associés au malware ont été résolus vers la même adresse IP : 5.206.227[.]81.

Peu de temps après, l’adresse IP C2 des trois domaines a changé. De plus, trois nouveaux domaines ont été enregistrés avec la même adresse IP et ont été utilisés par le malware : 185.236.230[.]25.

Quelques semaines plus tard, ce changement s’est produit à nouveau. L’adresse de résolution de tous les domaines a changé en l’espace de quelques jours, avec l’ajout de trois nouveaux domaines : 193.56.28[.]201.

Conclusion

Dans cet article, nous avons examiné une nouvelle chaîne d’infection par le groupe Evilnum – des acteurs de la menace qui ont commencé à se faire un nom. Depuis les premiers rapports en 2018 jusqu’à aujourd’hui, les TTP du groupe ont évolué avec différents outils tandis que le groupe a continué à se concentrer sur les objectifs de la FinTech.

Le groupe Evilnum a utilisé différents types d’outils tout au long de sa carrière, notamment des chevaux de Troie JavaScript et C #, des logiciels malveillants achetés auprès des logiciels malveillants en tant que service Golden Chickens et d’autres outils Python existants. Avec tous ces différents changements, la méthode principale pour obtenir un accès initial à leurs cibles FinTech est restée la même: utiliser de faux documents Know your customer (KYC) pour inciter les employés du secteur financier à déclencher le malware.

Ces dernières semaines, nous avons observé un changement significatif dans la procédure d’infection du groupe, s’éloignant des capacités de porte dérobée JavaScript, en l’utilisant plutôt comme un compte-gouttes de première étape pour de nouveaux outils sur toute la ligne. Pendant la phase d’infection, Evilnum a utilisé des versions modifiées d’exécutables légitimes pour tenter de rester furtif et de ne pas être détecté par les outils de sécurité.

Le groupe a déployé un nouveau type de Python RAT que les chercheurs de Nocturnus ont surnommé PyVil RAT, qui possède des capacités pour collecter des informations, prendre des captures d’écran, des données de keylog, ouvrir un shell SSH et déployer de nouveaux outils. Ces outils peuvent être un module Python tel que LaZagne ou un exécutable, ajoutant ainsi plus de fonctionnalités pour l’attaque selon les besoins. Cette innovation dans les tactiques et les outils est ce qui a permis au groupe de rester sous le radar, et nous nous attendons à en voir plus à l’avenir alors que l’arsenal du groupe Evilnum continue de croître.

Les commentaires sont fermés.