ESET a découvert de nouvelles versions du cheval de Troie DanaBot

Le cheval de Troie modulaire à croissance rapide DanaBot a subi de nouveaux changements. La version publiée fin janvier 2019 implémente un tout nouveau protocole de communication qui ajoute plusieurs niveaux de cryptage à la communication du cheval de Troie et de son serveur C&C. De plus, l'architecture et les identifiants de campagne de DanaBot ont été modifiés.


DanaBot Evolution


Après avoir été découvert en mai 2018 dans le cadre d'une campagne de spam ciblant l'Australie, DanaBot est apparu dans un certain nombre d'autres attaques, notamment une campagne de spam en Pologne, en Italie, en Allemagne, en Autriche et en Ukraine , ainsi qu'aux États-Unis . Dans les campagnes européennes, la fonctionnalité du cheval de Troie a été améliorée avec de nouveaux plugins et des capacités de spam .

Le 25 janvier, nous avons trouvé des fichiers exécutables inhabituels liés à DanaBot dans les données de télémétrie. Une vérification supplémentaire a révélé que ces fichiers binaires sont en effet des versions de DanaBot, mais qu'ils utilisent un protocole de communication différent pour communiquer avec le serveur C & C. Depuis le 26 janvier, les opérateurs du cheval de Troie ont cessé d'assembler des fichiers binaires avec l'ancien protocole.

Au moment de la rédaction du présent document, la nouvelle version de DanaBot était distribuée selon deux scénarios:

  1. en tant que «mises à jour» fournies aux victimes de DanaBot;
  2. par courrier indésirable (en Pologne).

Nouveau protocole de communication


Dans le protocole, qui a été utilisé jusqu'au 25 janvier, les paquets n'étaient pas chiffrés, comme le montre la figure 1.


Figure 1. Une capture de paquet montrant l'ancien protocole avec des données sous forme non cryptée

Une fois terminé, DanaBot utilise des algorithmes de chiffrement AES et RSA en communication avec le serveur C & C. Le nouveau protocole de communication est plus complexe car il utilise plusieurs niveaux de cryptage, comme illustré dans la figure ci-dessous.


Figure 2. Schéma du nouveau protocole de communication DanaBot

Ces modifications évitent la détection à l'aide des signatures réseau existantes et rendent difficile l'écriture de nouvelles règles pour les systèmes de détection et de prévention des intrusions. De plus, sans accès aux clés RSA correspondantes, il n'est pas possible de décoder les paquets envoyés ou reçus; ainsi, les fichiers RSAP provenant de systèmes d'analyse basés sur le cloud (tels que ANY.RUN ) ne conviennent pas à la recherche.


Figure 3. Capturez un paquet avec un nouveau protocole de communication

Chaque paquet envoyé par le client a un en-tête de 24 (0x18) octets:



Pour chaque paquet, l'en-tête est suivi des données du paquet chiffrées par AES, puis d'une valeur de 4 octets indiquant la taille de décalage de l'AES, puis de la clé AES, chiffrée par RSA. Tous les paquets sont cryptés avec différentes clés AES.

Les réponses du serveur utilisent le même format. Contrairement aux versions précédentes, les données de package dans les réponses du serveur ne correspondent à aucune structure particulière (à quelques exceptions près).

Structure des paquets de données


La structure de données du package précédent a été décrite en détail par Proofpoint en octobre 2018. Dans la dernière version de DanaBot, ce schéma est légèrement modifié, comme illustré dans la figure ci-dessous.


Figure 4. Comparaison de la structure des données par paquets dans les anciennes et les nouvelles versions de DanaBot

Modifications de l'architecture de DanaBot


En plus du protocole de communication, DanaBot a une architecture légèrement modifiée. Les versions précédentes du cheval de Troie comprenaient un composant qui téléchargeait et exécutait le module principal. Ensuite, le module principal a téléchargé et exécuté les plugins et les configurations.

Dans la dernière version, ces fonctions sont exécutées par un nouveau chargeur de démarrage, qui est utilisé pour télécharger tous les plugins avec le module principal. La persistance est assurée en enregistrant le composant bootloader en tant que service.


Figure 5. Comparaison de l'architecture des anciennes et nouvelles versions de DanaBot

Équipes


Selon l'analyse, le composant chargeur utilise les commandes suivantes:

  • 0x12C - Bonjour. La première commande envoyée du client au serveur
  • 0x12D - charger le composant lanceur 32/64 bits
  • 0x12E - demander une liste de plugins et de fichiers de configuration
  • 0x12F - charger les plugins / fichiers de configuration

Les plugins et fichiers de configuration téléchargés sont chiffrés avec la clé AES obtenue à partir de l'ID client. De plus, les plugins sont archivés au format ZIP à l'aide de la compression LZMA, tandis que les fichiers de configuration sont archivés à l'aide de zlib.
Les commandes avec l'ID 0x130-0x134 sont envoyées par le module principal:

  • 0x130 - transférez les informations collectées vers un serveur C&C (par exemple, une capture d'écran de l'ordinateur de la victime; données système)
  • 0x131 - transférer les informations collectées vers un serveur C&C (par exemple, une liste de fichiers sur le disque dur d'un ordinateur infecté)
  • 0x132 - demande d'autres commandes au serveur C & C. Il existe environ 30 commandes typiques des portes dérobées, notamment le lancement de plug-ins, la collecte d'informations système et la modification de fichiers dans le système client.
  • 0x133 - mettre à jour la liste des serveurs C&C via le proxy Tor
  • 0x134 - la destination exacte est inconnue, probablement utilisée pour la communication entre les plug-ins et un serveur C&C

Modifier les ID de campagne


Une étude précédente a montré que DanaBot est distribué sous différents ID.

Dans la version précédente de DanaBot, environ 20 identifiants de campagne ont été utilisés . Dans la dernière version, les identifiants ont légèrement changé. Au 5 février 2019, nous observons les identifiants suivants:

  • ID = 2 apparemment, une version de test desservant un petit nombre de fichiers de configuration, sans injections Web
  • ID = 3 est activement distribué, destiné aux utilisateurs en Pologne et en Italie, sert tous les fichiers de configuration et injections Web à des fins polonaises et italiennes
  • ID = 5 sert des fichiers de configuration à des fins australiennes
  • ID = 7 s'applique uniquement à la Pologne, sert aux injections Web à des fins polonaises
  • ID = 9, apparemment, est également une version de test avec une distribution limitée et sans ciblage spécial, il sert un nombre limité de fichiers de configuration, sans injections Web

Conclusions


En 2018, nous avons observé le développement de DanaBot en termes de distribution et de fonctionnalité . Début 2019, le cheval de Troie a subi des modifications «internes», indiquant le travail actif de ses créateurs. Des mises à jour récentes suggèrent que les créateurs de DanaBot s'efforcent d'éviter la découverte au niveau du réseau. Il est possible que les auteurs du cheval de Troie prêtent attention aux études publiées afin d'apporter rapidement des modifications au code, avant les développeurs de produits pour la sécurité.

Les produits ESET détectent et bloquent tous les composants et plug-ins DanaBot. Les noms de détection sont donnés dans la section suivante.

Indicateurs de compromis (IoC)


Serveurs C&C utilisés par la nouvelle version de DanaBot

84.54.37[.]102
89.144.25[.]243
89.144.25[.]104
178.209.51[.]211
185.92.222[.]238
192.71.249[.]51


Serveurs pour l'injection et la redirection Web

47.74.249[.]106
95.179.227[.]160
185.158.249[.]144


Exemples de hachage

De nouvelles versions de DanaBot sont publiées régulièrement, nous ne pouvons donc fournir qu'une partie des hachages:
Dropper 98C70361EA611BA33EE3A79816A88B2500ED7844 Win32 / TrojanDropper.Danabot.O
Bootloader (x86), ID = 3 0DF17562844B7A0A0170C9830921C3442D59C73C Win32 / Spy.Danabot.L
Bootloader (x64), ID = 3 B816E90E9B71C85539EA3BB897E4F234A0422F85 Win64 / Spy.Danabot.G
Bootloader (x86), ID = 9 5F085B19657D2511A89F3172B7887CE29FC70792 Win32 / Spy.Danabot.I
Bootloader (x64), ID = 9 4075375A08273E65C223116ECD2CEF903BA97B1E Win64 / Spy.Danabot.F
Module principal (x86) 28139782562B0E4CAB7F7885ECA75DFCA5E1D570 Win32 / Spy.Danabot.K
Module principal (x64) B1FF7285B49F36FE8D65E7B896FCCDB1618EAA4B Win64 / Spy.Danabot.C

Plugins

RDPWrap 890B5473B419057F89802E0B6DA011B315F3EF94 Win32 / Spy.Danabot.H
Stealer (x86) E50A03D12DDAC6EA626718286650B9BB858B2E69 Win32 / Spy.Danabot.C
Stealer (x64) 9B0EC454401023DF6D3D4903735301BA669AADD1 Win64 / Spy.Danabot.E
Sniffer DBFD8553C66275694FC4B32F9DF16ADEA74145E6 Win32 / Spy.Danabot.B
VNC E0880DCFCB1724790DFEB7DFE01A5D54B33D80B6 Win32 / Spy.Danabot.D
TOR 73A5B0BEE8C9FB4703A206608ED277A06AA1E384 Win32 / Spy.Danabot.G

Source: https://habr.com/ru/post/fr439588/


All Articles