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.

Figure 1 - Fausse fenêtre popup qui tente de voler un code d'autorisation (Traduction : « Outil anti-intrusion. Votre sécurité est notre première priorité. Entrez votre signature »)

Figure 2 - Clavier virtuel avec keylogger (Traduction : « Mot de passe de la carte. Entrez le mot de passe de votre carte en cliquant sur les boutons »)

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 :

  1. Une copie d'une demande légitime (EXE)
  2. Un injecteur (DLL)
  3. 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.

Figure 3 - Composants Amavaldo extraits dans un dossier. Les composants sont : ctfmon.exe (application légitime), MsCtfMonitor (cheval de Troie bancaire chiffré), MsCtfMonitor.dll (injecteur)

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.

Figure 4 – Chaînes d’obfuscation d’Amavaldo

Figure 5 - Pseudocode de déchiffrage de chaîne Amavaldo. Cet algorithme ne semble pas inspiré 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).

Figure 6 - Message d'erreur lorsque le téléchargeur est démarré sur une machine virtuelle (à gauche) ou non-connectée à Internet (à droite)

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.

Figure 7 - La première étape. Un téléchargeur VBS compressé (surligné en rouge) intégré dans l'installateur MSI

Figure 8 - La première étape déballée (unpacked)

Figure 9 - La deuxième étape déballée. Un abus de WMIC.exe permet d’exécuter l'étape suivante

Figure 10 - La troisième étape. Un grand script XSL qui contient un script PowerShell encodé et intégré (surligné en rouge)

Figure 11 - La quatrième (et dernière) étape. Un script PowerShell obscurci qui télécharge la charge utile finale et l'exécute

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.

Figure 12 - Le faux message d'erreur affiché par l'installateur

Figure 13 - Tâche planifiée créée par le téléchargeur

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.

Figure 14 - Statistiques pour une récente campagne Amavaldo ciblant le Mexique (1)

Figure 15 - Statistiques pour une récente campagne Amavaldo ciblant le Mexique (2)

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.