Turla est un groupe d'espionnage notoire, actif depuis au moins dix ans. Il est apparu en 2008, lorsque Turla a violé le Département de la Défense des États-Unis [1]. Depuis, de nombreux incidents impliquant Turla ont ciblé divers gouvernements et des entreprises sensibles, par exemple dans l'industrie de la défense [2]. Notre white paper de janvier 2018 [3] représentait la première analyse publique de la campagne Turla appelée Mosquito. Nous avons également publié des indicateurs de compromission (IoC) [4]. Cette campagne est demeurée très active depuis et les attaquants se sont efforcés de changer leurs tactiques, afin de demeurer aussi furtifs que possible.

À partir de mars 2018, nous avons observé un changement significatif dans la campagne : elle s'appuie désormais sur le framework en open source Metasploit avant de laisser tomber la backdoor (ou porte dérobée) Mosquito. Ce n'est pas la première fois que Turla utilise des outils génériques. Dans le passé, nous avons vu le groupe utiliser des dumpers de mots de passe open-source tels que Mimikatz. Cependant, à notre connaissance, c'est la première fois que Turla utilise Metasploit comme porte dérobée de première étape, au lieu de s'appuyer sur l'un de ses propres outils comme Skipper [5].

Distribution

Comme décrit dans notre précédente analyse [3], le vecteur typique de compromis de la campagne Mosquito reste un faux installateur Flash, qui installe en réalité à la fois la backdoor Turla et le logiciel légitime Adobe Flash Player. Les cibles typiques sont toujours les ambassades et les consulats d'Europe de l'Est.

Nous avons pu montrer que la compromission se produit lorsque l'utilisateur télécharge un installeur Flash sur le site get.adobe.com via HTTP. Le trafic est intercepté sur un nœud entre la machine finale et les serveurs Adobe, ce qui a permis aux opérateurs de Turla de remplacer l'exécutable Flash légitime par une version constituant un cheval de Troie. L'image suivante montre les différents points où le trafic pourrait en théorie être intercepté. Veuillez noter que nous croyons que la cinquième possibilité est à exclure puisqu’à notre connaissance, Adobe/Akamai n'a pas été compromis.

Bien que nous n’ayons pas été en mesure de repérer les interceptions de trafic par la suite, nous avons trouvé un nouvel exécutable qui se fait toujours passer pour l'installeur Flash, appelé flashplayer28_xa_install.exe. Nous croyons donc que la même méthode de compromission est encore aujourd’hui utilisée.

Analyse

Au début du mois de mars 2018, dans le cadre de notre suivi régulier des activités de Turla, nous avons observé certains changements dans la campagne Mosquito. Même si le groupe n’a pas eu recours à des techniques révolutionnaires, il s'agit d'un changement significatif dans les « Tactiques, techniques et procédures » (TTP) de Turla.

Auparavant, la chaîne de compromission était composée d’un faux installeur Flash qui laissait tomber un loader et la porte dérobée principale. La figure suivante illustre le processus.

Plus récemment, nous avons observé un changement dans la façon dont la dernière porte dérobée est déposée. La campagne de Turla s'appuie toujours sur un faux installateur Flash mais, au lieu de déposer directement les deux DLL malveillantes, elle exécute un shellcode Metasploit et dépose, ou télécharge depuis Google Drive, un installateur Flash légitime. Ensuite, le shellcode télécharge un Meterpreter, qui est une charge utile Metasploit typique [6]  permettant à l'attaquant de contrôler la machine compromise. Enfin, la machine peut recevoir la porte arrière typique de Mosquito. La figure ci-dessous résume le nouveau processus.

Puisque Metasploit est utilisé, on peut aussi supposer qu'un opérateur contrôle manuellement le processus d'exploitation. La durée de l'attaque était relativement courte, car la dernière porte dérobée a été abandonnée dans les trente minutes suivant le début de la tentative de compromis.

Le shellcode est un Metasploit typique, protégé par l'encodeur shikata_ga_nai encoder [7] à sept itérations. Les captures d'écran suivantes montrent la charge utile chiffrée et déchiffré.

Une fois le shellcode décodé, il contacte son C&C à l’adresse https://209.239.115[.]91/6OHEJ, qui amène le téléchargement d'un shellcode supplémentaire. Sur la base de notre télémétrie, nous avons identifié l'étape suivante comme étant un Meterpreter. Cette adresse IP a déjà été associé au C&C du nom de domaine Mosquito psychology-blog.ezua[.]com, qui a été résolu en octobre 2017.

Enfin, le faux installeur Flash télécharge un installeur Adobe légitime, à partir d'une URL de lecteur Google, et l'exécute pour faire croire à l'utilisateur que tout s'est passé correctement.

Outils supplémentaires

En plus du nouvel installateur Flash et du Meterpreter, nous avons observé l'utilisation de plusieurs autres outils :

  • Un exécutable personnalisé qui ne contient que le shellcode Metasploit. Ceci est utilisé pour maintenir l'accès à une session Meterpreter. Il est sauvegardé sous C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\msupdateconf.exe, ce qui rend l’exécutable persistant;
  • Un autre exécutable personnalisé utilisé pour exécuter les scripts PowerShell;
  • La backdoor Mosquito JScript qui utilise Google Apps Script comme serveur C&C;
  • L’escalade des privilèges à l'aide du module Metasploit x86.dll[8].

Conclusion

Dans cet article, nous avons présenté l’évolution de la campagne Turla Mosquito au cours des derniers mois. Le changement majeur que nous avons observé était l'utilisation de Metasploit, un projet de test de pénétration en open source, comme première étape de la porte dérobée Mosquito. Ces informations pourraient être utiles pour les responsables de sécurité qui interviennent lors d'attaques impliquant Turla.

Pour toute demande de renseignements ou pour faire des exemples de soumissions liées au sujet, contactez-nous à l’adresse threatintel@eset.com.

C&C

  • https://209.239.115[.]91/6OHEJ
  • https://70.32.39[.]219/n2DE3

Lien vers l'installeur Flash légitime

  • https://drive.google[.]com/uc?authuser=0&id=1s4kyrwa7gCH8I5Z1EU1IZ_JaR48A7UeP&export=download

Indicateurs de compromission (IoC)

Filename SHA1 SHA256 ESET detection name
flashplayer28_xa_install.exe 33d3b0ec31bfc16dcb1b1ff82550aa17fa4c07c5 f9b83eff6d705c214993be9575f8990aa8150128a815e849c6faee90df14a0ea Win32/TrojanDownloader.Agent.DWY trojan
msupdateconf.exe 114c1585f1ca2878a187f1ce7079154cc60db7f5 1193033d6526416e07a5f20022cd3c5c79b73e8a33e80f29f9b06cdc3cb12e26 Win32/Turla.DH trojan
msupdatesmal.exe 994c8920180d0395c4b4eb6e7737961be6108f64 6868cdac0f06232608178b101ca3a8afda7f31538a165a045b439edf9dadf048 Win32/Turla.DH trojan

Références

[1] B. KNOWLTON, "Military Computer Attack Confirmed," New York Times, 25 08 2010. [En ligne]. Adresse : https://www.nytimes.com/2010/08/26/technology/26cyber.html?_r=1&ref=technology. [Accessed 09 04 2018].

[2] MELANI, " Technical Report about the Malware used in the Cyberespionage against RUAG," 23 05 2016. [En ligne]. Adresse : https://www.melani.admin.ch/melani/en/home/dokumentation/reports/technical-reports/technical-report_apt_case_ruag.html.

[3] ESET, "Diplomats in Eastern Europe bitten by a Turla mosquito," ESET, 01 2018. [En ligne]. Adresse : https://web-assets.esetstatic.com/wls/2018/01/ESET_Turla_Mosquito.pdf.

[4] ESET, "Mosquito Indicators of Compromise," ESET, 09 01 2018. [En ligne]. Adresse : https://github.com/eset/malware-ioc/tree/master/turla#mosquito-indicators-of-compromise.

[5] M. Tivadar, C. Istrate, I. Muntean and A. Ardelean, "Pacifier APT," 01 07 2016. [En ligne]. Adresse : https://labs.bitdefender.comhttps://web-assets.esetstatic.com/wls/downloads/pacifier-apt/.

[6] "About the Metasploit Meterpreter," [En ligne]. Adresse : https://www.offensive-security.com/metasploit-unleashed/about-meterpreter/.

[7] "Unpacking shikata-ga-nai by scripting radare2," 08 12 2015. [En ligne]. Adresse : http://radare.today/posts/unpacking-shikata-ga-nai-by-scripting-radare2/.

[8] "meterpreter/source/extensions/priv/server/elevate/," Rapid7, 26 11 2013. [En ligne]. Adresse : https://github.com/rapid7/meterpreter/tree/master/source/extensions/priv/server/elevate.