Turla (Snake, Uroboros) est un groupe de cyberespionnage qui a acquis sa renommée en 2008 après avoir piraté des objets protégés, y compris le réseau du Commandement central des forces armées américaines . Depuis, il se spécialise dans les attaques contre les installations militaires et les agences diplomatiques du monde entier. Les victimes célèbres incluent le ministère des Affaires étrangères de Finlande en 2013, la société de défense suisse RUAG de 2014 à 2016. et le gouvernement allemand fin 2017 - début 2018.
Après le dernier incident, plusieurs médias ont publié des informations sur les méthodes des attaquants - en utilisant des pièces jointes aux e-mails pour contrôler les logiciels malveillants et transférer les données volées du système. Cependant, aucune information technique n'a été fournie sur la porte dérobée. Dans ce rapport, nous publions l'analyse de la porte dérobée Turla, qui a été gérée à l'aide de pièces jointes PDF par e-mail.

Selon les médias , plusieurs ordinateurs du ministère allemand des Affaires étrangères ont été infectés par une porte dérobée. Apparemment, l'attaque a commencé en 2016 et a été découverte par les services de sécurité fin 2017. Initialement, les assaillants ont compromis l'école secondaire fédérale d'administration publique (Hochschule des Bundes), après quoi ils ont pénétré à l'intérieur de son réseau jusqu'à ce qu'ils aient accès au réseau du ministère des Affaires étrangères en mars 2017. . Les opérateurs Turla ont eu accès à certaines données confidentielles (par exemple, le courrier électronique des employés du ministère allemand des Affaires étrangères) pendant environ un an.
Notre enquête révèle également que ce malware ciblant Microsoft Outlook a été utilisé contre divers services politiques et militaires. Nous nous sommes assurés que les ministères des Affaires étrangères des deux autres pays européens et le principal entrepreneur de la défense étaient également compromis. Notre enquête nous a permis d'établir des dizaines d'adresses e-mail enregistrées par les opérateurs Turla pour cette campagne et utilisées pour obtenir des données de victimes exfiltrées.
1. Points clés
La porte dérobée Outlook de Turla Group a deux fonctions.
Premièrement, c'est le vol de lettres sortantes qui sont transmises à l'attaquant. Affecte principalement Microsoft Outlook, mais concerne également The Bat!, Populaire en Europe de l'Est.
Deuxièmement, l'utilisation des lettres comme couche de transport de son protocole C&C. Les fichiers demandés via la commande de porte dérobée sont exfiltrés dans des documents PDF spécialement créés en tant que pièce jointe aux lettres. Les commandes de porte dérobée sont également envoyées dans des pièces jointes PDF. Cela permet le secret. Il est important de noter que les attaquants n'exploitent aucune vulnérabilité dans les lecteurs PDF ou Microsoft Outlook. Un logiciel malveillant peut décoder les données des documents PDF et les interpréter comme des commandes.
Les objectifs de la campagne sont typiques de Turla. Nous avons identifié plusieurs agences gouvernementales européennes et entreprises de défense compromises par cette porte dérobée. Il est probable que les attaquants l'utilisent pour assurer la persistance dans les réseaux à accès restreint, où des pare-feu bien configurés ou d'autres outils de sécurité réseau bloquent efficacement les communications traditionnelles avec les serveurs C&C via HTTP (S). La figure ci-dessous répertorie les lignes de code de porte dérobée qui mentionnent certains domaines de premier niveau du gouvernement. mfa est le domaine du ministère des Affaires étrangères, .gouv est un sous-domaine du gouvernement français (.gouv.fr), ocse est l'Organisation pour la sécurité et la coopération en Europe.

Figure 1. Domaines associés aux services publics trouvés dans le code Malvari
Sur la base des données d'analyse et de télémétrie, nous avons constaté que cette porte dérobée est distribuée dans la nature depuis au moins 2013. Comme toujours avec Turla, nous ne pouvons pas nous concentrer sur les horodatages de compilation, car ils sont généralement falsifiés. Cependant, nous pensons que les premières versions ont été compilées avant 2013, car la version de cette année était déjà assez avancée. Après cela, nous avons trouvé une version plus similaire à celle de base, dont la compilation était datée de 2009. Il n'est pas encore possible de déterminer la date de sortie exacte. La chronologie ci-dessous est basée sur notre télémétrie et les données de sources ouvertes:
2009 : horodatage de la compilation (peut-être faux) de la version de base de la porte dérobée Outlook. Seul instantané du contenu de l'e-mail.
2013 : amélioré: la porte dérobée peut exécuter des commandes. Ils sont envoyés par e-mail au format XML.
2013 : La dernière version connue destinée à The Bat! ..
2016 : amélioré: les équipes sont envoyées sous forme de pièces jointes dans des documents PDF spécialement créés.
2017 : Amélioré: Une porte dérobée est capable de créer des documents PDF pour exfiltrer des données par un attaquant.
Mars 2018 : Présentation d'un compromis sur le réseau du gouvernement allemand.
Avril 2018 : amélioré: Backdoor peut exécuter des commandes PowerShell à l'aide d'Empire PSInject.
2. Architecture globale
Dans les versions récentes, la porte dérobée est une DLL autonome, dans laquelle il existe du code pour l'auto-installation et l'interaction avec Outlook et The Bat!, Clients de messagerie, même si seule l'installation pour Outlook est implémentée. Il peut facilement être supprimé par n'importe quel composant Turla qui vous permet d'effectuer des processus supplémentaires.
Dans cette section, notre analyse est basée sur un échantillon diffusé au premier semestre 2017. Des informations sur des échantillons plus anciens ou plus récents peuvent être incluses.
2.1. L'installation
Pour établir une porte dérobée, les attaquants exportent une DLL appelée Installer ou l'enregistrent avec regsvr32.exe. L'argument est le client de messagerie cible. La figure ci-dessous montre les valeurs possibles. Dans les dernières versions, seule l'installation pour Outlook est implémentée.

Figure 2. Arguments d'installation possibles
Puisqu'il n'y a pas de chemin codé en dur, le fichier DLL peut être situé n'importe où sur le disque.
2.1.1. Microsoft Outlook
Les développeurs Turla s'appuient sur le détournement d'objets COM pour garantir la persistance des logiciels malveillants. Il s'agit d'une méthode bien connue utilisée dans la nature depuis de nombreuses années, notamment par le groupe Turla . L'essence de la méthode consiste à rediriger l'objet COM utilisé par l'application cible en modifiant l'entrée CLSID correspondante dans le registre Windows.
Dans notre cas, les modifications suivantes ont été apportées au registre Windows:
HKCU\Software\Classes\CLSID\{49CBB1C7-97D1-485A-9EC1-A26065633066} = Mail Plugin HKCU\Software\Classes\CLSID\{49CBB1C7-97D1-485A-9EC1-A26065633066}\InprocServer32 = [Path to the backdoor DLL] HKCU\Software\Classes\CLSID\{49CBB1C7-97D1-485A-9EC1-A26065633066}\InprocServer32\ThreadingModel = Apartment HKCU\Software\Classes\CLSID\{84DA0A92-25E0-11D3-B9F7-00C04F4C8F5D}\TreatAs = {49CBB1C7-97D1-485A-9EC1-A26065633066}
{84DA0A92-25E0-11D3-B9F7-00C04F4C8F5D}
- CLSID capturé. Il correspond au gestionnaire de protocole Outlook et, en théorie, charge la DLL Outlook OLMAPI32.DLL
légitime. {49CBB1C7-97D1-485A-9EC1-A26065633066}
associé à aucun logiciel connu. Ce CLSID est arbitraire et n'est utilisé que comme espace réservé pour la redirection COM.
Une fois la modification terminée, la DLL de porte dérobée sera chargée à chaque fois qu'Outlook charge son objet COM. Selon nos observations, cela se produit lors du démarrage d'Outlook.
La redirection COM ne nécessite pas de droits d'administrateur, car elle s'applique uniquement à l'utilisateur actuel. Des mesures de protection sont en place pour empêcher de telles redirections malveillantes. Selon MSDN : «Avec Windows Vista et Windows Server 2008, si le niveau d'intégrité du processus est supérieur à la moyenne, le runtime COM ignore la configuration COM de l'utilisateur et accède uniquement à la configuration COM pour chaque machine.»
Le processus Outlook s'exécute avec une intégrité moyenne, comme indiqué dans l'image ci-dessous. Par conséquent, il n'est pas protégé contre le transfert COM pour chaque utilisateur.

Figure 3. Niveau d'intégrité du processus Outlook
Enfin, l'utilisation de la capture d'objets COM permet à la porte dérobée d'éviter la détection, car le chemin d'accès à la porte dérobée ( C:\Users\User\Documents\mapid.tlb
dans notre exemple) n'apparaît pas dans la liste des plugins, comme le montre la figure suivante.

Figure 4. Liste des plugins Outlook - mapid.tlb n'apparaît pas
Même si le programme malveillant n'apparaît pas dans la liste des modules complémentaires, l'API Microsoft standard - MAPI (Messaging Application Programming Interface) est utilisée pour interagir avec Outlook.
2.1.2. La chauve-souris!
Comme indiqué dans la chronologie, les dernières versions de la porte dérobée n'incluent plus le code d'enregistrement pour le plugin The Bat! .. Cependant, tout le code de gestion des boîtes aux lettres et des messages existe toujours. Si nécessaire, il peut être configuré manuellement.
Pour vous inscrire en tant que plugin pour The Bat! le logiciel malveillant a modifié le %appdata%\The Bat!\Mail\TBPlugin.INI
. C'est un moyen légitime d'enregistrer un plugin pour The Bat!, Certains plugins (par exemple, antispam) l'utilisent également.
Après vous être inscrit à chaque fois que vous démarrez The Bat! la DLL de porte dérobée est appelée. La figure ci-dessous montre comment la DLL implémente l'exportation requise pour les plugins.

Figure 5. Exportation standard pour le plugin Bat!
2.2. Interaction avec le client de messagerie
L'interaction avec le client de messagerie dépend de l'objectif.
2.2.1. Microsoft Outlook
Microsoft prend en charge la Messaging Application Programming Interface (MAPI), qui permet aux applications d' interagir avec Outlook . La porte dérobée Turla utilise cette API pour accéder et gérer les boîtes aux lettres d'un utilisateur / d'utilisateurs d'un système compromis.
Tout d'abord, la porte dérobée se connecte au système de messagerie à l'aide de MAPILogonEx, comme illustré dans la figure.

Figure 6. Connexion MAPI
Le deuxième paramètre (lpszProfileName) est vide, l'indicateur MAPI_USE_DEFAULT
est MAPI_USE_DEFAULT
. Selon la documentation: "Le sous-système de messagerie doit remplacer le nom de profil par défaut pour le paramètre lpszProfileName. L'indicateur MAPI_EXPLICIT_PROFILE
ignoré sauf si lpszProfileName est NULL ou vide."
En revanche, l'indicateur MAPI_NEW_SESSION
pas défini. Selon la documentation: «Le paramètre lpszProfileName
ignoré s'il existe une session précédente appelée MapiLogonEx avec l'indicateur MAPI_ALLOW_OTHERS
et si l'indicateur MAPI_NEW_SESSION
pas défini.»
À notre avis, Outlook ouvre une session par défaut avec l'indicateur MAPI_ALLOW_OTHERS
. Ainsi, la porte dérobée utilisera une session précédemment ouverte pour accéder au profil par défaut de la boîte aux lettres. Cela explique l'absence de demande de nom d'utilisateur et de mot de passe lors de l'initialisation du plugin de porte dérobée.
Cela fait, la porte dérobée aura accès à la boîte aux lettres et pourra facilement la gérer à l'aide d'autres fonctions MAPI. Il parcourra plusieurs magasins de messages, analysera les lettres et ajoutera des rappels aux messages entrants et sortants. Le fichier journal affiche ce processus (nom d'utilisateur et adresse modifiés):
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ========= Analyzing msg store ( 1 / 1 ) ========= Service name:MSUPST MS Pst path:C:\Users\[username]\Documents\Outlook Files\[email address].pst Wait main window before open current store Loop count = 46 This is default message store PUSH store to list >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _____________ FOLDERS _____________ Setting sink on folders in 1 stores. ========Process msg store ( 1 / 1 ) ========= Account: [email address] Successfull set sink on Outbox folder of current store. Successfull set sink on Inbox folder of current store.
Il configure un rappel dans chaque boîte de réception et boîte d' HrAllocAdviseSink
à l'aide de la fonction HrAllocAdviseSink
, comme indiqué.

Figure 7. Enregistrement d'un rappel dans la boîte d'envoi
2.2.1.1. Boîte de réception de rappel
Le rappel dans la boîte de réception enregistre les métadonnées du message entrant, y compris les adresses des expéditeurs et des destinataires, les noms des sujets et des pièces jointes. Exemple ci-dessous (orthographe de développeur enregistrée):
RECIVE ->{ From: sender@example.com To: receiver@example.net Cc: Bcc: Subj: Mail subject Att: an_attachment.pdf }
Il analyse ensuite la lettre et les pièces jointes au sujet des équipes des attaquants. Cette fonction est décrite dans la section 2.3.
Enfin, il intercepte les rapports de non-remise en vérifiant les messages entrants avec l'adresse e-mail de l'opérateur. Toute lettre contenant l'adresse de l'opérateur sera refusée. Cela peut entraîner des problèmes si la victime soupçonne que quelque chose ne va pas et contacte le service d'assistance sans voir les réponses.
2.2.1.2. Rappel dans la boîte d'envoi
Comme dans la boîte de réception, la boîte d'envoi enregistre les métadonnées de tous les e-mails envoyés. L'enregistrement suivant est généré (l'adresse de l'opérateur a changé):
21:57:56 SEND <-{ From: To: recipient@example.com Cc: Bcc: Subj: My title Att: [1] "last_presentation.pdf" } 21:57:56 Sending data message 21:57:56 Message ENTRYID: [Message ENTRYID] 21:57:56 Data message was send. To: [redacted]@gmx[.]com From: Subj: My title 21:57:56 Set last time. 21:57:56 Spawned thread for cleaning up outgoing messages (id 2848) 21:58:34 Ending work, client: Outlook 21:58:34 Number of messages to remove: 1 21:58:34 Message ENTRYID: [Message ENTRYID] 21:58:34 DeleteMessages executed successfully. 21:58:34 Number of not removed messages: 0
Vous remarquerez peut-être qu'il transmet tous les messages sortants à l'adresse des attaquants, […]@gmx[.]com
. GMX - un service de messagerie gratuit populaire; les attaquants l'ont probablement choisi, car les organisations ne bloquent généralement pas le domaine gmx.com.
Cette adresse e-mail est codée en dur dans l'échantillon que nous avons étudié, comme le montre l'image ci-dessous. Cependant, il peut être mis à jour à l'aide de l'une des fonctions de porte dérobée. Les attaquants semblent enregistrer au moins une adresse e-mail pour chaque cible
les organisations utilisant le format firstname.lastname@gmx[.]com
avec le nom du véritable employé. Cela évite la détection, car il est souvent difficile de distinguer une telle adresse de la boîte aux lettres personnelle d'un véritable employé. Au moment de l'analyse des échantillons en juin 2018, l'adresse n'était pas disponible.

Figure 8. Adresse codée en dur des opérateurs
La porte dérobée envoie des rapports à l'adresse des opérateurs à certains intervalles. Le rapport comprend des identificateurs uniques, y compris l'adresse MAC, le fichier journal complet et les résultats des commandes, le cas échéant. Ensuite, il crypte les données à l'aide de MISTY1, comme décrit plus en détail dans la section 2.3.2.2, et crée un fichier PDF valide avec un contenu crypté. Avant ce blob de données cryptées, le document contient une image blanche 1x1 en jpeg, codée en dur dans un programme malveillant. Cela vous permet de créer un PDF valide qui, une fois ouvert, n'affiche qu'une seule page vierge.
Enfin, la porte dérobée joint le PDF et envoie un e-mail aux attaquants. La figure ci-dessous est un exemple de fichier PDF créé par une porte dérobée.

Figure 9. Début d'un document PDF créé par une porte dérobée pour exfiltrer des données
Le rapport est envoyé à l'aide de la fonction de rappel dans la boîte d'envoi. Cela signifie que la lettre quittera en même temps que l'envoi de messages d'utilisateurs légitimes. La porte dérobée ne peut pas envoyer de lettres contenant des données volées à un moment inhabituel pour l'utilisateur et évite donc la détection. Grâce à la furtivité, ce mécanisme de contrôle et de contrôle est très difficile à détecter dans la nature.
2.2.2. Déguisement d'un comportement d'utilisateur malveillant
Étant donné que la porte dérobée agit lorsque l'utilisateur travaille avec l'ordinateur et Outlook, le logiciel malveillant tente de masquer les activités malveillantes, par exemple les messages entrants des opérateurs.
Tout d'abord, une porte dérobée supprime toujours le courrier envoyé ou reçu des opérateurs. Comme le montre la figure ci-dessous, pendant quelques secondes, vous pouvez voir qu'un nouveau message est apparu, mais qu'il n'apparaît pas dans la boîte aux lettres.

Figure 10. Message non lu
Deuxièmement, la porte dérobée intercepte la CreateWindowsEx
, comme illustré dans les figures ci-dessous. Cela empêche la création de fenêtres telles que NetUIHWND qu'Outlook utilise pour les notifications qui apparaissent dans le coin inférieur droit de l'écran.

Figure 11. Configuration de la capture de la fonction CreateWindowsEx

Figure 12. Interception de CreateWindowsEx
La figure ci-dessous montre un exemple de la fenêtre NetUIHWND, qui s'affiche généralement sur le bureau lorsqu'un nouveau message est reçu. À la suite de l'interception de CreateWindowEx
, une notification ne s'affiche pas lorsque les attaquants envoient une lettre à la porte dérobée.

Figure 13. Notification de nouveau message
2.2.3. La chauve-souris!
Malgré le fait que la fonction d'enregistrement du plugin pour The Bat! n'existe plus, il existe du code hérité qui exécute les mêmes fonctions que pour Outlook à l'aide de l'API The Bat !.
Comme le montre la figure suivante, la porte dérobée utilise le canal de communication avec The Bat! Pour recevoir des informations utilisateur, lire et envoyer des lettres. Cependant, toutes les autres fonctions, par exemple, utilisées pour consigner des messages ou exécuter des commandes, sont identiques à Outlook.

Figure 14. Le canal Bat!
2.3. Porte dérobée
Comme indiqué dans la section précédente, les logiciels malveillants peuvent traiter et filtrer les messages. En même temps, il s'agit d'une porte dérobée entièrement fonctionnelle pilotée par e-mail qui peut fonctionner indépendamment de tout autre composant Turla. La porte dérobée n'a pas besoin d'une connexion Internet permanente et peut fonctionner sur n'importe quel ordinateur qui envoie des messages à des adresses externes. Ceci est utile dans les réseaux strictement contrôlés, par exemple, en utilisant le filtrage du trafic Internet. De plus, même si l'adresse e-mail des attaquants est inactive, ils peuvent reprendre le contrôle en envoyant une commande à partir d'une adresse différente. Dans ce cas, la lettre sera également cachée à l'utilisateur, car elle contiendra des commandes interprétées par la porte dérobée. Ainsi, une porte dérobée est aussi tolérante aux pannes qu'un rootkit qui vérifie le trafic réseau entrant.
2.3.1. Format pdf
Début 2018, plusieurs médias ont déclaré que les opérateurs Turla utilisent des pièces jointes pour gérer les ordinateurs infectés. Les médias avaient raison. Une analyse de la porte dérobée de Turla Outlook a révélé comment il envoie et interprète les commandes.
Les commandes sont envoyées par courrier électronique à l'aide de pièces jointes PDF spécialement créées. Nous n'avons pas pu trouver un véritable exemple de PDF avec des commandes, mais ce sont probablement des documents PDF valides, ainsi que des fichiers PDF créés par la porte dérobée pour l'exfiltration.
À partir de documents PDF, une porte dérobée peut restaurer ce que les opérateurs appellent un conteneur dans les magazines. Il s'agit d'un objet blob avec un format spécial qui contient des commandes chiffrées pour la porte dérobée. La figure ci-dessous montre la procédure de retrait de ce conteneur. Techniquement, l'application ne doit pas être un document PDF valide. La seule exigence est qu'il inclut le conteneur dans le format correct.

Figure 15. Extraction du conteneur de commandes du PDF
Le conteneur a une structure complexe avec de nombreux contrôles différents. Il pourrait être conçu pour éviter les erreurs de communication, mais nous pensons que la structure a été créée principalement pour contrer l'ingénierie inverse. La structure du conteneur est illustrée dans la figure ci-dessous.

Figure 16. Structure du conteneur de commandes
Immédiatement avant le vecteur d'initialisation, il y a une liste de descripteurs de commandes. Différentes valeurs d'ID sont présentées dans le tableau:

Les descripteurs d'ID 2 et 4 sont utilisés pour extraire les fonctions de chiffrement et de décompression, comme illustré dans la figure suivante. Cependant, le programme malveillant implémente un seul algorithme de chiffrement et un algorithme de compression. Ainsi, le seul but de ces champs est de compliquer l'analyse de la porte dérobée.

Figure 17. Fonctions de décompression et de décryptage décalées
Les équipes sont dans la dernière partie de la structure. Ils sont chiffrés à l'aide de MISTY1 et compressés avec bzip2. Il peut y avoir de nombreuses commandes différentes dans le même fichier PDF, et chacune peut avoir plusieurs arguments.
2.3.2. Cryptographie
Nous décrivons ici les algorithmes de chiffrement utilisés.
2.3.2.1. Chiffrement XOR
Une partie du conteneur (en commençant par le premier CRC32) est chiffrée avec XOR avec le flux d'octets généré par la fonction définie par l'utilisateur. Il faut une graine, qui est passée à srand
pour générer un deuxième nombre en appelant rand. La deuxième valeur de départ est utilisée dans la fonction illustrée ci-dessous comme argument pour les données dans XOR.
int __usercall F_bytestream_xor@<eax>(unsigned int len@<edx>, int ciphertext@<ecx>, unsigned int seed) { unsigned int v3; // ebx int v4; // esi unsigned int v5; // edi int result; // eax unsigned int v7; // ecx char *v8; // edx unsigned int v9; // esi byte key[512]; // [esp+Ch] [ebp-204h] char *v11; // [esp+20Ch] [ebp-4h] v3 = len; v11 = (char *)ciphertext; srand(seed); v4 = 0; v5 = 0; do { result = rand(); *(_DWORD *)&key[4 * v5++] = result; } while ( v5 < 128 ); v7 = 0; if ( !v3 ) return result; v8 = v11; do { v8[v7] ^= key[v4]; v9 = v4 + 1; result = -(v9 < 512); v4 = result & v9; ++v7; } while ( v7 < v3 ); return result; }
2.3.2.2. MISTY1
Les développeurs Turla préfèrent utiliser des algorithmes de cryptage moins courants ou modifiés dans leurs backdoors:
- en carbone et serpent - CAST-128
- Gazer - implémentation RSA personnalisée
- dans Mosquito - Blum Blum Shub comme générateur de nombres aléatoires pour le flux d'octets XOR
- dans le rootkit Uroburos - une version modifiée de ThreeFish
Dans la porte dérobée d'Outlook, ils ont implémenté MISTY1, un algorithme de chiffrement symétrique développé par les cryptographes Mitsubishi Electric en 1995. Il a les propriétés suivantes:
- est symétrique
- a une clé de 128 bits
- utilise deux tables précalculées: s7 (128 octets) et s9 (2048 octets)
- utilise trois fonctions: FL, FO, FI
o FL effectue certaines opérations XOR entre l'écriture d'octets et la clé étendue
o FO effectue des opérations XOR entre l'enregistrement et la clé étendue, et utilise également FI
o FI effectue une expansion non linéaire en utilisant s7 et s9 - fonctionne avec des blocs de 64 bits
- effectue huit cycles (cycle - appeler la fonction FO)
- utilise le chiffrement Feistel

Figure 18. MISTY1

Figure 19. Huit cycles pour le chiffrement par bloc
Les développeurs de Turla ont légèrement modifié l'algorithme:
- a ajouté deux opérations XOR à la fonction FI comme indiqué dans la figure ci-dessous
- Une clé de 128 bits est générée à partir de deux clés de 1024 bits codées en dur et d'un vecteur d'initialisation de 2048 bits
- changé les tables s7 et s9. Cela perturbe le fonctionnement de tous les outils qui reconnaissent les algorithmes cryptographiques basés sur les valeurs de la table s. Les tables S modifiées et originales contiennent les mêmes valeurs, elles ont simplement été mélangées

Figure 20. Comparaison des fonctions FI (original à gauche, développement Turla à droite)
2.3.3. Les fonctions
La porte dérobée a de nombreuses fonctions, de l'exfiltage de fichiers à l'exécution de commandes. La description des différentes fonctions est présentée dans le tableau ci-dessous.

Pour la fonction 0x29, les développeurs Turla ont copié le code du projet Empire PSInject . Cela vous permet d'exécuter du code PowerShell dans un fichier exécutable spécial appelé PowerShell Runner sans appeler powershell.exe
. Le principal avantage est que le malware peut toujours exécuter les commandes PowerShell même si le fichier powershell.exe
est verrouillé sur un ordinateur compromis.
Après avoir analysé la porte dérobée, nous avons pu créer un document PDF qui peut être interprété avec succès par un programme malveillant. La figure suivante montre l'exécution de MessageBox et le lancement de la calculatrice ( calc.exe
) après qu'Outlook a reçu un e-mail contenant ce PDF. Cela démontre que la porte dérobée, probablement destinée à recevoir des commandes dans des pièces jointes PDF, est fonctionnelle et peut être contrôlée par quiconque comprend ce format personnalisé.

Figure 21. Exécution des commandes spécifiées dans le document PDF
2.4. Fonctions supplémentaires
En plus des capacités de porte dérobée implémentées en tant que plug-in pour le client de messagerie, le malware a d'autres fonctions.
2.4.1. Système de fichiers virtuel
Le programme malveillant n'utilise aucun fichier de configuration, mais prend en charge un petit système de fichiers virtuel dans la HKCU\Software\Microsoft\Windows\CurrentVersion\Settings\ZonePolicy\
registre Windows HKCU\Software\Microsoft\Windows\CurrentVersion\Settings\ZonePolicy\
. D'autres backdoors Turla, comme Gazer , stockent également le système de fichiers virtuel dans le registre Windows. Nous avons pu déterminer certaines valeurs de registre, comme indiqué dans le tableau suivant.

2.4.2. Magazines
Comme mentionné précédemment, le programme enregistre un journal, qui est régulièrement envoyé à l'opérateur par e-mail dans un document PDF spécialement créé. Il est stocké dans %appdata%/Microsoft/Windows/scawrdot.db
et est chiffré à l'aide d'une clé XOR codée en dur de 512 octets. Le fichier journal est effacé après chaque exfiltration vers les opérateurs. Ainsi, lors de l'examen médico-légal, il serait impossible de voir toutes les actions passées de la porte dérobée, seulement la dernière.
Les journaux sont assez informatifs, ils permettent aux opérateurs Turla de suivre les actions de porte dérobée. La figure ci-dessous montre un exemple de journal déchiffré.

Figure 22. Fichier journal déchiffré
3. Conclusions
Le rapport a montré que les développeurs Turla ont suffisamment d'idées lorsqu'ils développent des portes dérobées. À notre connaissance, Turla est le seul groupe de cyberespionnage qui utilise actuellement une porte dérobée entièrement gérée par e-mail, ou plutôt par des pièces jointes PDF.
La porte dérobée Turla n'est pas la première à utiliser la vraie boîte aux lettres de la victime pour recevoir des commandes et exfiltrer des données. Cependant, c'est la première porte dérobée à apprendre à l'aide de l'API standard (MAPI) pour interagir avec Microsoft Outlook. Il s'agit d'une amélioration significative par rapport à la version précédente que nous avons étudiée , qui utilisait Outlook Express. En revanche, la nouvelle porte dérobée Turla fonctionne même avec les dernières versions d'Outlook.
Grâce à la capacité de contrôler les communications apparemment légitimes d'un poste de travail infecté, ainsi qu'à l'indépendance vis-à-vis de toute adresse e-mail particulière, la porte dérobée Turla est cachée et tolérante aux pannes. , Uroburos, .
, Turla, , . , , . , - , .
, PDF-, Turla, , .
ESET Turla, .
GitHub .
4.1. Hashs
8A7E2399A61EC025C15D06ECDD9B7B37D6245EC2 — Win32/Turla.N; (GMT) 2013-06-28 14:15:54
F992ABE8A67120667A01B88CD5BF11CA39D491A0 — Win32/Turla.AW; GMT 2014-12-03 20:50:08
CF943895684C6FF8D1E922A76B71A188CFB371D7 — Win32/Turla.R; GMT 2014-12-03 20:44:27
851DFFA6CD611DC70C9A0D5B487FF00BC3853F30 — Win32/Turla.DA; GMT 2016-09-15 08:14:47
4.2.
%appdata%/Microsoft/Windows/scawrdot.db
%appdata%/Microsoft/Windows/flobcsnd.dat
mapid.tlb
4.3.
HKCU\Software\Microsoft\Windows\CurrentVersion\Settings\ZonePolicy\
HKCU\Software\Classes\CLSID{49CBB1C7-97D1-485A-9EC1-A26065633066}
HKCU\Software\Classes\CLSID{84DA0A92-25E0-11D3-B9F7-00C04F4C8F5D}