Numando : Comptez une fois, codez deux fois

Découvrez le (probablement) avant-dernier article de notre série occasionnelle démystifiant les trojans bancaires d'Amérique latine.

Découvrez le (probablement) avant-dernier article de notre série occasionnelle démystifiant les trojans bancaires d’Amérique latine.

Avant de conclure notre série, il y a encore un trojan bancaire latino-américain qui mérite qu’on s’y attarde : Numando. L’acteur de la menace derrière cette famille de logiciels malveillants est actif depuis au moins 2018. Même s’il est loin d’être aussi vif que Mekotio ou Grandoreiro, il a été utilisé de manière constante depuis que nous avons commencé à le suivre, apportant de nouvelles techniques intéressantes au pool d’astuces des trojans bancaires d’Amérique latine, comme l’utilisation d’archives ZIP apparemment inutiles ou le regroupement de charges utiles avec des images BMP leurres. Géographiquement, il se concentre presque exclusivement sur le Brésil, avec de rares campagnes au Mexique et en Espagne.

Caractéristiques

Comme tous les autres chevaux de Troie bancaires d’Amérique latine décrits dans cette série, Numando est écrit en Delphi et utilise de fausses fenêtres superposées pour attirer les informations sensibles de ses victimes. Certaines variantes de Numando stockent ces images dans une archive ZIP chiffrée à l’intérieur de leur section .rsrc, tandis que d’autres utilisent une DLL Delphi distincte uniquement pour ce stockage.

Les capacités de backdoor permettent à Numando de simuler les actions de la souris et du clavier, de redémarrer et d’arrêter la machine, d’afficher des fenêtres superposées, de faire des captures d’écran et de tuer les processus du navigateur. Cependant, contrairement aux autres chevaux de Troie bancaires latino-américains, les commandes sont définies sous forme de nombres et non de chaînes (voir la figure 1), ce qui nous a inspiré le nom de cette famille de logiciels malveillants.

Figure 1. Traitement de la commande Numando – partie du traitement de la commande 9321795 (en rouge)

Les chaînes de caractères sont chiffrées par l’algorithme le plus courant parmi les chevaux de Troie bancaires d’Amérique latine (voir la Figure 5 de notre article sur Casbaneiro) et ne sont pas organisées dans une table de chaînes de caractères. Numando collecte la version de Windows et le bitness de la machine victime.

Contrairement à la plupart des autres chevaux de Troie bancaires latino-américains traités dans cette série, Numando ne montre pas de signes de développement continu. Il y a bien quelques modifications mineures de temps en temps, mais dans l’ensemble, les binaires n’ont pas tendance à changer beaucoup.

Distribution et exécution

Numando est distribué presque exclusivement par spam. D’après nos données télémétriques, ses campagnes touchent tout au plus quelques centaines de victimes, ce qui le rend nettement moins efficace que les chevaux de Troie bancaires les plus répandus en Amérique latine, tels que Mekotio et Grandoreiro. Les campagnes récentes ajoutent simplement une pièce jointe ZIP contenant un programme d’installation MSI à chaque message de spam. Ce programme d’installation contient une archive CAB avec une application légitime, un injecteur et une DLL chiffrée du trojan bancaire Numando. Si la victime potentielle exécute le MSI, elle finit par exécuter également l’application légitime, ce qui entraîne le chargement latéral de l’injecteur. L’injecteur localise la charge utile, puis la déchiffre à l’aide d’un simple algorithme XOR avec une clé à plusieurs octets, comme dans l’aperçu de ce processus illustré à la figure 2.

Figure 2. MSI Numando et son contenu distribué dans les dernières campagnes

Pour Numando, la charge utile et l’injecteur sont généralement nommés de manière identique – l’injecteur avec l’extension .dll et la charge utile sans extension (voir Figure 3) – ce qui permet à l’injecteur de localiser facilement la charge utile chiffrée. Il est surprenant de constater que l’injecteur n’est pas écrit en Delphi, ce qui est très rare parmi les chevaux de Troie bancaires d’Amérique latine. Les IoC à la fin de ce billet contiennent une liste d’applications légitimes dont nous avons observé l’abus par Numando.

Figure 3. Fichiers utilisés pour l’exécution de Numando. Application légitime (Cooperativa.exe), injecteur (Oleacc.dll), charge utile chiffrée (Oleacc) et DLL légitimes.

Leurre ZIP et BMP superposé

Il existe une chaîne de distribution intéressante datant d’un passé récent qui mérite d’être mentionnée. Cette chaîne commence par un téléchargeur Delphi qui télécharge une archive ZIP leurre (voir Figure 4). Le téléchargeur ignore le contenu de l’archive et extrait une chaîne chiffrée codée en hexadécimal du commentaire du fichier ZIP, un composant facultatif du fichier ZIP stocké à la fin du fichier. Le téléchargeur n’analyse pas la structure du fichier ZIP, mais recherche plutôt le dernier caractère { (utilisé comme marqueur) dans l’ensemble du fichier. Le déchiffrement de la chaîne de caractères donne lieu à une URL différente qui mène à l’archive réelle de la charge utile.

Figure 4. Le leurre est un fichier ZIP valide (structures ZIP encadrées en vert) avec une URL chiffrée incluse dans un commentaire du fichier ZIP à la fin de l’archive (en rouge).

La deuxième archive ZIP contient une application légitime, un injecteur et une image BMP de taille suspecte. Le téléchargeur extrait le contenu de cette archive et exécute l’application légitime, qui charge latéralement l’injecteur qui, à son tour, extrait le cheval de Troie bancaire Numando de l’image BMP superposée et l’exécute. Le processus est illustré à la figure 5.

Figure 5. Chaîne de distribution de Numando utilisant une archive ZIP leurre

Ce fichier BMP est une image valide et peut être ouvert dans la majorité des visionneurs et éditeurs d’images sans problème, car la superposition est simplement ignorée. La figure 6 montre certaines des images leurres utilisées par l’acteur de menace Numando.

Figure 6. Quelques images BMP utilisées par Numando comme leurres pour transporter sa charge utile

Configuration à distance

Comme de nombreux autres chevaux de Troie bancaires latino-américains, Numando utilise des services publics pour stocker sa configuration à distance – YouTube et Pastebin dans ce cas. La figure 7 montre un exemple de configuration stockée sur YouTube – une technique similaire à celle de Casbaneiro, bien que beaucoup moins sournoise. Google a rapidement retiré les vidéos suite à la notification d’ESET.

Figure 7. Configuration distante de Numando sur YouTube

The format is simple – three entries delimited by “:” between the DATA:{ and } markers. Each entry is encrypted separately the same way as other strings in Numando – with the key hardcoded in the binary. This makes it difficult to decrypt the configuration without having the corresponding binary, however Numando does not change its decryption key very often, making decryption possible.

Le format est simple : trois entrées délimitées par des doubles points (« : ») entre les marqueurs  DATA:{ and }. Chaque entrée est chiffrée séparément de la même manière que les autres chaînes de Numando – avec la clé codée en dur dans le binaire. Cela rend difficile le déchiffrement de la configuration sans avoir le binaire correspondant, cependant Numando ne change pas sa clé de déchiffrement très souvent, rendant le déchiffrement possible.

Conclusion

Numando est un cheval de Troie bancaire latino-américain écrit en Delphi. Il cible principalement le Brésil avec de rares campagnes au Mexique et en Espagne. Il est similaire aux autres familles décrites dans notre série : il utilise de fausses fenêtres superposées, contient des fonctionnalités de porte dérobée et utilise MSI.

Nous avons couvert ses caractéristiques les plus typiques, ses méthodes de distribution et sa configuration à distance. Il s’agit du seul cheval de Troie bancaire LATAM écrit en Delphi qui utilise un injecteur non Delphi et son format de configuration à distance est unique, ce qui en fait deux facteurs fiables pour identifier cette famille de malwares.

Pour toute question, contactez-nous à l’adresse threatintel@eset.com. Les Indicateurs de compromission peuvent également être trouvés dans notre répertoire GitHub.

Indicateurs de compromission (IoCs)

Hashes

SHA-1DescriptionESET detection name
E69E69FBF438F898729E0D99EF772814F7571728MSI downloader for “decoy ZIP”Win32/TrojanDownloader.Delf.CQR
4A1C48064167FC4AD5D943A54A34785B3682DA92MSI installerWin32/Spy.Numando.BA
BB2BBCA6CA318AC0ABBA3CD53D097FA13DB85ED0Numando banking trojanWin32/Spy.Numando.E
BFDA3EAAB63E23802EA226C6A8A50359FE379E75Numando banking trojanWin32/Spy.Numando.AL
9A7A192B67895F63F1AFDF5ADF7BA2D195A17D80Numando banking trojanWin32/Spy.Numando.AO
7789C57DCC3520D714EC7CA03D00FFE92A06001ADLL with overlay window imagesWin32/Spy.Numando.P

Applications légitimes abusées

Example SHA-1EXE nameDLL name
A852A99E2982DF75842CCFC274EA3F9C54D22859nvsmartmaxapp.exenvsmartmax.dll
F804DB94139B2E1D1D6A3CD27A9E78634540F87CVBoxTray.exempr.dll
65684B3D962FB3483766F9E4A9C047C0E27F055EDumpsender.exeOleacc.dll

Serveurs C&C

  • 138.91.168[.]205:733
  • 20.195.196[.]231:733
  • 20.197.228[.]40:779

URL de livraison

  • https://enjoyds.s3.us-east-2.amazonaws[.]com/H97FJNGD86R.zip
  • https://lksluthe.s3.us-east-2.amazonaws[.]com/B876DRFKEED.zip
  • https://procjdcals.s3.us-east-2.amazonaws[.]com/HN97YTYDFH.zip
  • https://rmber.s3.ap-southeast-2.amazonaws[.]com/B97TDKHJBS.zip
  • https://sucessmaker.s3.us-east-2.amazonaws[.]com/JKGHFD9807Y.zip
  • https://trbnjust.s3.us-east-2.amazonaws[.]com/B97T908ENLK.zip
  • https://webstrage.s3.us-east-2.amazonaws[.]com/G497TG7UDF.zip

Techniques MITRE ATT&CK

Note : Ce tableau a été construit en utilisant la version 9 de MITRE ATT&CK.

TacticIDNameDescription
Resource Development T1583.001Acquire Infrastructure: DomainsNumando operators register domains to be used as C&C servers.
T1587.001

Develop Capabilities: MalwareNumando is likely developed by its operator.
Initial Access T1566Phishing: Spearphishing AttachmentNumando is distributed as a malicious email attachment.
Execution T1204.002User Execution: Malicious FileNumando relies on the victim to execute the distributed MSI file.
Defense Evasion T1140

Deobfuscate/Decode Files or InformationNumando encrypts its payload or hides it inside a BMP image file, and some variants encrypt and hex encode their main payload URLs in a comment in decoy ZIP files.
T1574.002Hijack Execution Flow: DLL Side-LoadingNumando is often executed by DLL side-loading.
T1027.002Obfuscated Files or Information: Software PackingSome Numando binaries are packed with VMProtect or Themida.
T1218.007Signed Binary Proxy Execution: MsiexecNumando uses the MSI format for execution.
Discovery T1010Application Window DiscoveryNumando monitors the foreground windows.
T1082
System Information DiscoveryNumando collects the Windows version and bitness.
Collection T1113Screen CaptureNumando can take screenshots.
Command and Control T1132.002Data Encoding: Non-Standard EncodingNumando uses custom encryption.
Exfiltration T1041Exfiltration Over C2 ChannelNumando exfiltrates data via a C&C server.

Infolettre

Discussion