Fin 2017, un groupe de chercheurs du laboratoire de logiciels malveillants d'ESET à Prague a décidé d'examiner de plus près les fameux chevaux de Troie bancaires écrits par Delphi qui sont connus pour cibler le Brésil. Nous avons étendu notre attention à d'autres régions d'Amérique latine (comme le Mexique et le Chili) peu de temps après, car nous avons remarqué que bon nombre de ces chevaux de Troie bancaires visent également ces pays. Notre objectif principal était de découvrir s'il existe un moyen de classer ces chevaux de Troie bancaires et d'en savoir plus sur leur comportement en général.
Nous avons beaucoup appris - nous avons identifié plus de 10 nouvelles familles de logiciels malveillants, étudié les chaînes de distribution et les avons reliées aux nouvelles familles en conséquence, et disséqué le comportement interne des troyens bancaires. Dans ce premier article de la série, nous commencerons par décrire ce type de cheval de Troie bancaire en général, puis nous traiterons de la première famille de logiciels malveillants nouvellement identifiée, Amavaldo.
Qu'est-ce qui distingue les chevaux de Troie bancaires d’Amérique latine?
Avant d'aller plus loin, définissons les caractéristiques de ce type de cheval de Troie bancaire :
- Il est écrit dans le langage de programmation Delphi
- Il contient une fonctionnalité de porte dérobée
- Il utilise de longues chaînes de distribution
- Il peut diviser sa fonctionnalité en plusieurs composants
- Il abuse généralement d'outils et de logiciels légitimes
- Il cible aux pays hispanophones ou lusophones.
Nous avons observé d'autres caractéristiques communes au cours de nos recherches. La plupart des chevaux de Troie bancaires latino-américains que nous avons analysés se connectent au serveur C&C et restent connectés, en attendant les commandes que le serveur envoie. Après avoir reçu une commande, ils l'exécutent et attendent la suivante. Les commandes sont probablement menées manuellement par l'attaquant. Vous pouvez considérer cette approche comme un salon de discussion où tous les membres réagissent à ce que l'administrateur écrit.
L'adresse du serveur C&C semble être la ressource que ces auteurs de logiciels malveillants protègent le plus. Nous avons rencontré de nombreuses approches différentes pour cacher l'adresse réelle, que nous allons discuter dans cette série d’articles. Outre le serveur C&C, une URL unique est utilisée par le logiciel malveillant pour soumettre les informations d'identification des victimes. Cela aide les attaquants à suivre leurs victimes.
Les chevaux de Troie bancaires d'Amérique latine utilisent généralement des algorithmes cryptographiques peu connus et il est courant que différentes familles utilisent les mêmes algorithmes. Nous avons identifié un livre et une librairie de freeware (ou gratuiciels) Delphi, dont les auteurs se sont apparemment inspirés.
Le fait que ce logiciel malveillant soit écrit en Delphi indique que les fichiers exécutables ont une taille d'au moins quelques mégaoctets car le noyau Delphi est présent dans chaque binaire. En outre, la plupart des chevaux de Troie bancaires latino-américains contiennent un grand nombre de ressources, ce qui augmente encore la taille du fichier. Nous avons même rencontré des échantillons avec des tailles de fichiers atteignant plusieurs centaines de mégaoctets. Dans ces cas, la taille du fichier a été délibérément augmentée afin d'éviter la détection.
Découvrir les familles de logiciels malveillants
En analysant un tel exécutable, il n'est généralement pas très difficile de décider rapidement qu'il s'agit d'un cheval de Troie bancaire malveillant. Outre les caractéristiques susmentionnées, les auteurs ont tendance à copier le travail des uns et des autres ou à tirer leurs logiciels malveillants d'une source commune. En conséquence, la plupart des chevaux de Troie bancaires latino-américains se ressemblent. C'est la raison principale pour laquelle nous n’en observons généralement que des détections génériques.
Nos recherches ont commencé par l'identification des caractéristiques fortes qui nous permettraient d'établir des familles de logiciels malveillants. Au fil du temps, nous avons été en mesure de le faire et en avons identifié plus de 10 nouvelles. Les caractéristiques que nous avons utilisées étaient principalement la façon dont les chaînes de caractères sont stockées, comment l'adresse du serveur C&C est obtenue et d'autres similarités de code.
Suivre les chaînes de distribution
La façon la plus simple de distribuer ces familles de logiciels malveillants est d'utiliser un seul téléchargeur (ou downloader, un fichier exécutable Windows) spécifique à cette famille. Ce téléchargeur se fait parfois passer pour un installateur de logiciel légitime. Cette méthode est simple, mais elle est aussi la moins courante.
Il est beaucoup plus courant d'utiliser une chaîne de distribution en plusieurs étapes qui emploie généralement plusieurs couches de téléchargeurs écrits dans des langages de script tels que JavaScript, PowerShell et Visual Basic Script (VBS). Une telle chaîne se compose généralement d'au moins trois étapes. La charge utile finale est généralement livrée dans une archive zip qui ne contient que le cheval de Troie bancaire ou d'autres composants avec lui. Le principal avantage de cette méthode, pour les auteurs de logiciels malveillants, est qu'il est assez compliqué pour les chercheurs d'atteindre la toute fin de la chaîne et d'analyser ainsi la charge utile finale. Cependant, il est également beaucoup plus facile pour un produit de sécurité d'arrêter la menace parce qu'il n'a besoin de briser qu'un seul maillon de la chaîne.
Stratégie de subtilisation d'argent
Contrairement à la plupart des chevaux de Troie bancaires, ceux d'Amérique latine n'utilisent pas de techniques d’injection en ligne, mais une forme d'ingénierie sociale. Ils détectent en permanence les fenêtres actives sur l'ordinateur de la victime et dès qu’ils en détectent une liée à une banque, ils lancent leur attaque.
Le but de l'attaque est presque toujours de persuader l'utilisateur qu'une action spéciale, urgente et nécessaire est requise. Il peut s'agir d'une mise à jour de l'application bancaire utilisée par la victime, d'une vérification des informations relatives à sa carte de crédit ou de ses identifiants bancaires. Une fausse fenêtre contextuelle vole alors les données une fois que la victime les a entrées (un exemple est illustré à la Figure 1) ou un clavier virtuel agit comme un enregistreur de frappe, ce qu’illustre la Figure 2. Les informations sensibles sont ensuite envoyées aux attaquants qui peuvent en abuser de la manière qu'ils jugent appropriée.
Amavaldo
Nous avons nommé la famille de logiciels malveillants décrite dans la suite de ce billet Amavaldo. Cette famille est toujours active et en cours de développement - la dernière version que nous avons observée (10.7) a un horodatage de compilation du 10 juin 2019.
Il s'agit d'un exemple de logiciel malveillant modulaire dont l'archive ZIP de la charge utile finale contient trois composants :
- Une copie d'une demande légitime (EXE)
- Un injecteur (DLL)
- Un cheval de Troie bancaire chiffré (déchiffrage en DLL).
La figure 3 montre le contenu d'un exemple d'archive ZIP de charge utile finale Amavaldo.
Le téléchargeur stocke tout le contenu de l'archive ZIP sur le disque dur dans le même dossier. L'injecteur a un nom choisi pour correspondre à celui d'une DLL utilisée par l'application groupée et légitime. Avant que le téléchargeur ne quitte, il exécute l'application légitime. Alors :
- L'injecteur est exécuté via DLL Side-Loading
- L'injecteur s'injecte dans wmplayer.exe ou iexplore.exe
- L'injecteur recherche le cheval de Troie bancaire chiffré (un fichier sans extension dont le nom correspond à celui de la DLL de l'injecteur)
- Si un tel fichier est trouvé, l'injecteur décrypte et exécute le cheval de Troie bancaire.
Caractéristiques
Outre la structure modulaire, la caractéristique d'identification la plus forte est le schéma de cryptage personnalisé utilisé pour l'obscurcissement des chaînes (Figure 4). Comme vous pouvez le voir, à part la clé (en vert) et les données chiffrées (en bleu), le code est également rempli de chaînes de caractères de déchets (en rouge) qui ne sont jamais utilisées. Nous fournissons un pseudocode simplifié à la figure 5 pour mettre en évidence la logique de l'algorithme. Cette routine de manipulation des chaînes de caractères est utilisée par le cheval de Troie bancaire lui-même, l'injecteur et même le téléchargeur que nous allons décrire plus loin. Contrairement à beaucoup d'autres chevaux de Troie bancaires latino-américains, cette routine ne semble pas s'inspirer du livre mentionné précédemment.
De plus, les dernières versions de cette famille peuvent être identifiées par un mutex qui semble avoir le nom constant{D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}.
Amavaldo recueille d'abord des informations sur la victime, soit :
- Identification de l'ordinateur et du système d'exploitation
- Quel genre de protection bancaire la victime a installé. L'information est recueillie en recherchant les chemins du système de fichiers suivants :
- %ProgramFiles%\Diebold\Warsaw
- %ProgramFiles%\GbPlugin\
- %ProgramFiles%\scpbrad\
- %ProgramFiles%\Trusteer
- %ProgramFiles%\AppBrad\
- %LocalAppData%\Aplicativo Itau
Les versions plus récentes communiquent via SecureBridge, une librairie Delphi qui fournit des connexions SSH/SSL.
Comme beaucoup d'autres chevaux de Troie bancaires de ce type, Amavaldo prend en charge plusieurs commandes de backdoor. Les capacités de ces commandes incluent :
- Obtenir des captures d'écran
- Capturer des photos de la victime via webcam
- Enregistrer les frappes au clavier
- Télécharger et exécuter d'autres programmes
- Restreindre l'accès à divers sites Web bancaires
- Simulation de souris et de clavier
- Mise à jour automatique.
Amavaldo utilise une technique intelligente pour lancer l'attaque sur sa victime qui est similaire à celle de Windows UAC. Après avoir détecté une fenêtre liée au domaine bancaire, il prend une capture d'écran du bureau et la fait ressembler au nouveau fond d'écran. Ensuite, il affiche une fausse fenêtre popup choisie en fonction du texte de la fenêtre active tout en désactivant plusieurs raccourcis clavier et en empêchant la victime d'interagir avec autre chose que la fenêtre popup.
Seules les banques brésiliennes avaient été ciblées lorsque nous avons rencontré pour la première fois cette famille de logiciels malveillants, mais elle a étendu sa portée depuis avril 2019 aux banques mexicaines également. Même si les cibles brésiliennes utilisées précédemment sont toujours présentes dans les logiciels malveillants, d'après notre analyse, les auteurs se concentrent maintenant uniquement sur le Mexique.
Distribution
Nous avons pu observer deux chaînes de distribution, l'une au début de cette année et l'autre depuis avril.
Première chaîne de distribution : Cibler le Brésil
Nous avons observé cette chaîne, qui cible les victimes au Brésil, pour la première fois en janvier 2019. Les auteurs ont décidé d'utiliser un installateur MSI, VBS, XSL (Extensible Stylesheet Language) et PowerShell pour la distribution.
Toute la chaîne commence avec un programme d'installation MSI qui est sensé, selon la victime, installer Adobe Acrobat Reader DC. Il utilise deux exécutables légitimes : AICustAct.dll (pour vérifier si une connexion Internet est disponible) et VmDetect.exe (pour détecter les environnements virtuels).
Une fois le faux programme d'installation exécuté, il utilise un fichier intégré qui, en plus des chaînes de caractères, contient un téléchargeur VBS compressé (Figure 7). Après avoir décompressé (Figure 8), il télécharge encore un autre téléchargeur VBS (Figure 9). Notez que le deuxième téléchargeur VBS abuse du fichier Microsoft Windows WMIC.exe pour télécharger l'étape suivante - un script XSL (Figure 10) avec PowerShell intégré et encodé. Enfin, le script PowerShell (Figure 11) est responsable du téléchargement de la charge utile finale - une archive zip contenant plusieurs fichiers, comme indiqué dans le Tableau 1. Il assure également la persistance en créant une tâche planifiée nommée GoogleBol.
Tableau 1. Contenu des archives finales de la charge utile et leur description
nvsmartmaxapp.exe | Legitimate application 1 |
---|---|
NvSmartMax.dll | Injector 1 |
NvSmartMax | Payload 1 |
Gup.exe | Legitimate application 2 |
libcurl.dll | Injector 2 |
Libcurl | Payload 2 |
gup.xml | Configuration file for gup.exe |
Dans le Tableau 1, vous pouvez voir deux ensembles de charges utiles et d'injecteurs, tous deux utilisant la méthode d'exécution décrite précédemment. NvSmartMax[.dll] a été utilisé pour exécuter Amavaldo. libcurl[.dll] n'est pas directement liée à Amavaldo, puisqu'elle exécute un outil qui est utilisé pour enregistrer automatiquement un grand nombre de nouveaux comptes de messagerie en utilisant la plateforme de messagerie de Brasil Online (BOL). Ces identifiants et mots de passe créés sont renvoyés à l'attaquant. Nous pensons qu'il s'agit d'un piège pour une nouvelle campagne de courrier indésirable.
Deuxième chaîne de distribution : Cibler le Mexique
La chaîne de distribution la plus récente que nous avons observée commence avec un installateur MSI très similaire. La différence est que cette fois-ci, il contient un fichier exécutable Windows intégré qui sert de téléchargeur. Le programme d'installation se termine par un faux message d'erreur (Figure 12). Juste après, le téléchargeur est exécuté. La persistance est assurée par la création d'une tâche planifiée (comme dans la première chaîne), cette fois nommée Adobe Acrobat TaskB (Figure 13). Ensuite, il télécharge tous les composants Amavaldo (aucun outil de messagerie n'a été observé cette fois) et exécute le cheval de Troie bancaire.
Nous croyons que les entreprises sont ciblées par le biais d'une campagne de spam par cette méthode. Les fichiers initiaux sont nommés CurriculumVitae[…].msi ou FotosPost[…].msi. Nous pensons que les victimes sont trompées en cliquant sur un lien dans un message électronique qui les amène à télécharger ce qu'elles croient être un CV. Puisqu'il doit s'agir d'un fichier PDF, l'exécution d'une installation apparente d'Adobe Acrobat Reader DC peut également sembler légitime.
Comme les auteurs ont décidé d'utiliser le raccourcisseur d'URL bit.ly, nous pouvons observer des informations supplémentaires sur leurs campagnes (figures 14 et 15). Comme nous pouvons le constater, la grande majorité des clics sur ces URL ont été géolocalisés au Mexique. Le fait que le courrier électronique soit le moyen de référence le plus fréquent confirme notre hypothèse selon laquelle le vecteur de distribution serait l'envoi de spam.
Conclusion
Dans ce blogue, nous avons présenté notre recherche sur les chevaux de Troie bancaires d'Amérique latine. Nous avons décrit ce qui est typique de ces logiciels malveillants et comment ils fonctionnent. Nous avons également présenté les principales fonctionnalités que nous avons utilisées pour définir ces familles de logiciels malveillants.
Nous avons décrit la première famille de logiciels malveillants - Amavaldo - ses caractéristiques et ses cibles les plus typiques, et analysé en détail les chaînes de distribution récentes. Amavaldo partage de nombreuses caractéristiques typiques des chevaux de Troie bancaires d'Amérique latine. Il divise sa fonctionnalité en plusieurs composants, de sorte qu'avoir un seul composant n'est pas suffisant pour l'analyse. Il abuse des applications légitimes pour s'exécuter et détecter les environnements virtuels. Il tente de voler les informations bancaires de banques brésiliennes et mexicaines et contient également des fonctionnalités de porte dérobée.
Pour toute demande d'information, contactez-nous à l'adresse threatintel@eset.com Des indicateurs de compromis peuvent également être trouvés sur notre GitHub.
Indicateurs de compromission (IoC)
Hashes
Hashes de la première chaîne de distribution (du Brésil)
SHA-1 | Description | ESET detection name |
---|---|---|
E0C8E11F8B271C1E40F5C184AFA427FFE99444F8 | Downloader (MSI installer) | Trojan.VBS/TrojanDownloader.Agent.QSL |
12C93BB262696314123562F8A4B158074C9F6B95 | Abuse legitimate application (NvSmartMaxApp.exe) | Clean file |
6D80A959E7F52150FDA2241A4073A29085C9386B | Injector for Amavaldo (NvSmartMax.dll) | Win32/Spy.Amavaldo.P trojan |
B855D8B1BAD07D578013BDB472122E405D49ACC1 | Amavaldo (decrypted NvSmartMax) | Win32/Spy.Amavaldo.N trojan |
FC37AC7523CF3B4020EC46D6A47BC26957E3C054 | Abused legitimate application (gup.exe) | Clean file |
4DBA5FE842B01B641A7228A4C8F805E4627C0012 | Injector for email tool (libcurl.dll) | Win32/Spy.Amavaldo.P trojan |
9A968341C65AB47BF5C7290F3B36FCF70E9C574B | Email tool (decrypted libcurl) | Win32/Spy.Banker.AEGH trojan |
Hashes de la deuxième chaîne de distribution (du Mexique)
SHA-1 | Description | ESET detection name |
---|---|---|
AD1FCE0C62B532D097DACFCE149C452154D51EB0 | Downloader (MSI installer) | Win32/TrojanDownloader.Delf.CSG trojan |
6C04499F7406E270B590374EF813C4012530273E | Abused legitimate application (ctfmon.exe) | Clean file |
1D56BAB28793E3AB96E390F09F02425E52E28FFC | Injector for Amavaldo (MsCtfMonitor.dll) | Win32/Spy.Amavaldo.U trojan |
B761D9216C00F5E2871DE16AE157DE13C6283B5D | Amavaldo (decrypted MsCtfMonitor) | Win32/Spy.Amavaldo.N trojan |
Autre
SHA-1 | Description | ESET detection name |
---|---|---|
B191810094DD2EE6B13C0D33458FAFCD459681AE | VmDetect.exe – a tool for detecting virtual environment | Clean file |
B80294261C8A1635E16E14F55A3D76889FF2C857 | AICustAct.dll – a tool for checking internet connectivity | Clean file |
Mutex
- {D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}
Noms de fichiers
- %LocalAppData%\%RAND%\NvSmartMax[.dll]
- %LocalAppData%\%RAND%\MsCtfMonitor[.dll]
- %LocalAppData%\%RAND%\libcurl[.dll]
Tâche planifiée
- GoogleBol
- Adobe Acrobat TaskB
Serveurs C&C
- clausdomain.homeunix[.]com:3928
- balacimed.mine[.]nu:3579
- fbclinica.game-server[.]cc:3351
- newcharlesxl.scrapping[.]cc:3844
Techniques MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1192 | Spearphishing Link | The initial attack vector is a malicious link in an email that leads the victim to a web page the downloader is obtained from. |
Execution | T1073 | DLL Side-Loading | The injector component is executed by abusing a legitimate application with this technique. |
T1086 | PowerShell | The first distribution chain uses PowerShell in its last stage. | |
T1047 | Windows Management Instrumentation | The first distribution chain abuses WMIC.exe to execute the third stage. | |
Persistence | T1053 | Scheduled Task | Persistence is ensured by a scheduled task. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | The actual banking trojan needs to be decrypted by the injector component. |
T1036 | Masquerading | The injector masks itself as a DLL imported by the abused legitimate application. The downloader masks itself as an installer for Adobe Acrobat Reader DC. | |
T1055 | Process Injection | The injector injects itself into wmplayer.exe or iexplore.exe. | |
T1064 | Scripting | VBS, PowerShell and XSL are used in the first distribution chain. | |
T1220 | XSL Script Processing | The first distribution chain uses XSL processing in its third stage. | |
T1497 | Virtualization/Sandbox Evasion | Downloader of Amavaldo uses third-party tools to detect virtual environment. | |
Credential Access | T1056 | Input Capture | Amavaldo contains a command to execute a keylogger. It also steals contents from fake windows it displays. |
Discovery | T1083 | File and Directory Discovery | Amavaldo searches for various filesystem paths in order to determine what banking protection applications are installed on the victim machine. |
T1082 | System Information Discovery | Amavaldo extracts information about the operating system. | |
Collection | T1113 | Screen Capture | Amavaldo contains a command to take screenshots. |
T1125 | Video Capture | Amavaldo contains a command to capture photos of the victim via webcam. | |
Command and Control | T1024 | Custom Cryptographic Protocol | Amavaldo uses a unique cryptographic protocol. |
T1071 | Standard Application Layer Protocol | Amavaldo uses the SecureBridge Delphi library to perform SSH connections. | |
Exfiltration | T1041 | Exfiltration Over Command and Control Channel | Amavaldo sends the data it collects to its C&C server. |