Le groupe cybercriminel RTM vole de l'argent aux clients des banques depuis 2015. La plupart de ses victimes sont des entreprises russes. Les logiciels malveillants utilisés par les cybercriminels sont également communément appelés RTM dans la communauté de la sécurité de l'information.
De nombreux rapports techniques ont été rédigés sur ce programme, qui décrivent en détail le mécanisme général du malware. Dans cet article, nous nous concentrerons sur les méthodes d'obtention des adresses des serveurs RTM de gestion (C&C). À chaque itération du programme, les attaquants abordent cette tâche avec inventivité: ils distribuent l'adresse via des blogs, utilisent le système de serveurs DNS alternatifs et le réseau Tor. L'autre jour, nous avons constaté que RTM commençait à cacher l'IP dans les transactions sur un portefeuille Bitcoin.
Qu'est-ce que le RTM?
À la base, RTM est un cheval de Troie bancaire. L'objectif principal du programme est de permettre aux attaquants de manipuler les ordres de paiement de la société victime afin de transférer discrètement ses fonds sur le compte des cybercriminels.
En règle générale, RTM est livré à l'ordinateur de la victime via des listes de diffusion, plus rarement via des sites piratés (tels que des publications d'actualités) ou de fausses ressources pour les comptables. Les criminels attachent un fichier exécutable compressé aux lettres. Pour attaquer, les attaquants utilisent à la fois leur propre développement et leurs archives auto-extractibles.

Exemples de fichiers exécutables .exe distribués par le groupe RTM
Les exemples de fichiers de la figure sont classés par ordre de distribution. La plupart du temps, les exécutables RTM étaient emballés avec un packer personnalisé et déguisés en document PDF. Début 2019, les premiers échantillons ont commencé à apparaître, qui sont une archive RAR auto-extractible et sont déguisés en fichier au format DOCX. RTM est actuellement distribué sous forme d'archive CAB à extraction automatique.

Représentation binaire du fichier "Payment 11.06.exe"
Après le démarrage, le fichier exécutable copie la DLL compressée sur le disque et la lance à l'aide de l'utilitaire rundll32.exe. En règle générale, le nom interne de cette bibliothèque est core.dll. Son opération ultérieure se produit dans l'espace d'adressage du processus rundll32.exe.
C'est core.dll qui fournit l'interaction principale avec le serveur de contrôle RTM, à travers lequel le programme reçoit des commandes et des modules supplémentaires des attaquants.
Les modules sont livrés sous forme cryptée et peuvent être lancés de différentes manières. Ces composants permettent aux attaquants de contrôler à distance un ordinateur compromis, de remplacer les documents de paiement dans le système 1C, etc.
Façons de trouver un serveur de gestion
Dans les premières versions de RTM, un flux RSS était utilisé pour mettre à jour les adresses des serveurs de contrôle. Les attaquants ont créé un blog dans LiveJournal contenant des adresses C&C sous forme cryptée. Pour obtenir de nouvelles adresses de serveurs de contrôle, une demande a été envoyée à l'adresse hxxps: //.livejournal [.] Com / data / rss / et la réponse a été traitée dans le format suivant (par exemple, https://f72bba81c921.livejournal.com/data/rss/ ) :

Contenu du flux RSS. Le champ de description contient les adresses cryptées des serveurs de contrôle

Lignes déchiffrées avec l'adresse initiale du serveur de gestion et l'adresse du flux RSS
.bit
En mars 2016, RTM a commencé à utiliser des domaines dans la zone .bit comme adresses de serveurs de contrôle. Ils sont pris en charge par un registraire DNS Namecoin alternatif basé sur la technologie blockchain. Le système est décentralisé, les domaines .bit sont donc difficiles à bloquer.
Les adresses IP des serveurs de gestion sur .bit RTM ont été obtenues de deux manières:
- via l'API Namecoin Block Browser;
- grâce à la résolution des noms de domaine en utilisant des serveurs DNS spéciaux.

La fonction d'obtention des adresses IP des serveurs de gestion
Dans la fonction d'obtention des adresses IP des serveurs de contrôle via l'API du navigateur de blocs Namecoin, le contenu est traité à l'adresse hxxps: //namecoin.cyphrs [.] Com / api / name_show / d / stat-counter-7 (en utilisant le domaine stat-counter comme exemple -7 [.] Bit):

Fonction d'obtention des adresses IP des serveurs de contrôle via l'API du navigateur de blocs Namecoin
Les adresses IP du serveur de gestion sont obtenues auprès du corps de réponse. Outre les requêtes adressées à hxxps: //namecoin.cyphrs [.] Com / api / name_show / d /, les attaquants ont également utilisé des requêtes adressées à hxxps: // namecha [.] Dans / name / d /, en traitant le champ "Valeur actuelle":

Contenu de la page Web à l'URL hxxps: // namecha [.] Dans / name / d / stat-counter-7
S'il n'était pas possible d'obtenir une adresse IP de cette manière, les attaquants résolvent le nom de domaine du serveur de contrôle avec la fonction DnsQuery_A à l'aide de serveurs DNS spéciaux (pris, par exemple, d'ici ).
L'utilisation de la fonction DnsQuery_A dans le code de bibliothèque core.dll ressemble à ceci:

Fonction d'obtention des adresses IP des serveurs de gestion via la résolution de noms de domaine à l'aide de serveurs DNS spéciaux
La fonction DnsQuery_A a le prototype suivant:

Le prototype de la fonction DnsQuery_A déclaré dans le fichier d'en-tête WinDNS.h
Le 4ème argument de la fonction DnsQuery_A est l'adresse de la structure _IP4_ARRAY sur la pile. Il contient un tableau d'adresses IP de serveurs DNS spéciaux:

Structure _IP4_ARRAY sur la pile
Si la fonction DnsQuery_A est correctement exécutée, l'adresse IP du serveur de gestion peut être obtenue en lisant la valeur suivante: pDnsRecord -> Data.A.IpAddress.
Il peut être vu à partir du code décompilé de l'une des instances qu'un serveur DNS spécial 188.165 [.] 200.156 est utilisé pour résoudre le nom de domaine C&C. Et en cas de panne, une liste de trois serveurs DNS est utilisée: 91.217 [.] 137.37, 188.165 [.] 200.156, 217.12 [.] 210.54.
Tor
Le 15 février 2019, nous avons découvert pour la première fois des échantillons RTM dont le serveur de gestion est situé sur le réseau Tor (hxxp: // 5aaw3unbkm5jqx7d [.] Onion / index [.] Php).

Adresse du serveur de gestion Tor parmi les chaînes déchiffrées

Section du code désassemblé dans laquelle l'URL du serveur de contrôle est analysée
Ces échantillons ont été envoyés jusqu'au 9 avril 2019, après quoi RTM est à nouveau passé à l'utilisation de la zone de domaine .bit.
Bitcoin
Le 10 juin 2019, nous avons découvert un échantillon RTM qui reçoit les adresses IP des serveurs C&C des transactions sur un portefeuille cryptographique spécifique. Chaque adresse IP est cachée dans le nombre de bitcoins répertoriés dans deux transactions.
Pour obtenir des adresses IP, C&C VPO fait une demande à hxxps: // chain [.] So / api / v2 / get_tx_received / BTC /. La réponse contient un ensemble de transactions vers le compte portefeuille crypto. Un exemple est montré dans la capture d'écran:

Considérez la section de code dans laquelle les adresses IP du serveur de gestion sont obtenues:

La fonction FindValue recherche la partie fractionnaire du montant du transfert. La recherche est effectuée à partir de la fin du tampon, et à chaque appel de fonction suivant, les données sont traitées, à partir de l'index en cours. Autrement dit, avec des appels successifs à la fonction FindValue, les valeurs 8483, 40030, 14728 et ainsi de suite seront obtenues. Le programme génère deux adresses IP: chaque adresse est cachée dans deux traductions consécutives.

Code désassemblé pour obtenir une adresse IP à partir de transferts vers un portefeuille crypté
Ce code effectue les opérations suivantes:
ip_address = str(value_1 & 0xff) + "." + str(value_1 >> 0x8) + "." + str(value_0 & 0xff) + "." + str(value_0 >> 0x8)
Autrement dit, en répertoriant 0,00008483 BTC puis 0,00040030 BTC, les attaquants ont caché l'adresse IP 94.156 [.] 35.33 pour leur programme. De même, à partir des deux transactions précédentes, RTM obtient la deuxième adresse IP du serveur de gestion.
En tant que tel, le malware RTM est envoyé à ce jour.
Conclusion
Vous pouvez remarquer que lors de l'organisation du transfert de l'adresse du serveur C&C, RTM aime utiliser des approches qui vous permettent de changer dynamiquement IP sans modifier le code source du malware.
D'une part, cela facilite la vie des attaquants et peut égarer les analystes. D'autre part, il permet aux spécialistes de prédire les adresses des serveurs de contrôle avant que des mailings malveillants ne soient effectués.