Épopée au pays de Zebrocy

ESET met en lumière les commandes utilisées par la porte dérobée préférée du groupe Sednit

ESET met en lumière les commandes utilisées par la porte dérobée préférée du groupe Sednit

Que se passe-t-il lorsqu’une victime est compromise par une porte dérobée et que l’opérateur la contrôle? C’est une question difficile à laquelle la rétro-ingénierie du code ne permet pas de répondre. Dans cet article, nous analyserons les commandes envoyées par l’opérateur à ses cibles.

Le groupe Sednit – également connu sous les noms d’APT28, de Fancy Bear, de Sofacy ou de STRONTIUM – opère depuis au moins 2004 et a souvent fait les manchettes ces dernières années.

Récemment, nous avons dévoilé l’existence d’un rootkit UEFI, appelé LoJax, que nous attribuons au groupe Sednit. C’est une première pour un groupe d’APT, et montre que Sednit a accès à des outils très sophistiqués pour mener ses opérations d’espionnage.

Il y a trois ans, le groupe Sednit a lancé de nouvelles composantes ciblant les victimes dans divers pays du Moyen-Orient et d’Asie centrale. Depuis, le nombre et la diversité des composants ont considérablement augmenté. Les chercheurs d’ESET et nos collègues provenant d’autres entreprises ont documenté ces composants. Dans cet article, nous nous concentrerons cependant sur les aspects en aval de la compromission, c’est-à-dire ce que les opérateurs font une fois qu’un système victime exécute une porte dérobée Zebrocy Delphi.

L’appât de l’ours

Fin août 2018, le groupe Sednit a lancé une campagne de harponnage par courriel, au cours de laquelle il a distribué des URL raccourcis qui ont livré la première étape des composants Zebrocy. Dans le passé, Sednit utilisait une technique similaire pour l’hameçonnage des informations de connexion (ou credential phishing). Cependant, il est inhabituel pour le groupe d’utiliser cette technique pour livrer directement l’un de ses composants malveillants. Auparavant, il avait utilisé des exploits pour livrer et exécuter la première étape des logiciels malveillants, tandis que dans cette campagne, le groupe s’est entièrement appuyé sur l’ingénierie sociale pour inciter les victimes à diriger la première partie de la chaîne. La capture d’écran de la figure 1 montre des statistiques brèves pour l’URL raccourcie utilisée dans cette campagne.

Figure 1 – Statistiques de l’URL Bitly

Environ 20 clics ont été enregistrés sur ce lien la semaine même où l’URL a été créée, et ceux-ci ont vraisemblablement téléchargé l’archive cible. N’oublions pas que cela peut signifier moins de 20 victimes potentielles, car les victimes peuvent avoir cliqué sur l’URL deux fois, ou peut-être même plus, puisque le résultat n’était pas celui auquel elles s’attendaient. C’est ce que nous allons décrire ci-dessous.

Bien que les données de télémétrie ESET indiquent que cette URL a été fournie par de harponnage par e-mail, nous ne disposons pas d’échantillon d’un tel message. L’URL raccourcie mène la victime à une URL basée sur l’adresse IP, où se trouve la charge utile archivée.

Malheureusement, sans le message, nous ne savons pas s’il inclut des instructions pour l’utilisateur, s’il utilise d’autres techniques d’ingénierie sociale ou s’il se base uniquement sur la curiosité de la victime. L’archive contient deux fichiers; le premier est un fichier exécutable, tandis que le second est un document PDF leurre.

Figure 2 – Fichiers extraits des archives (Google Translate propose comme traduction de l’Ukrainien « CATALOGUE – (2018).exe » et « Order 97.pdf »)

Notez qu’il y a une faute de frappe dans le nom de fichier de l’exécutable; on devrait lire « ДОВIДНИК », plutôt que « ДОВIДНIК ». Une fois le binaire exécuté, une boîte de dialogue d’invite de mot de passe s’ouvre. Le résultat de la validation du mot de passe sera toujours erroné, mais après l’apparente tentative de validation, le document PDF leurre est ouvert. Ce document semble être vide, mais le téléchargeur, qui est écrit en Delphi, continue de fonctionner en arrière-plan. L’adresse IP est également utilisée dans l’URL codée en dur dans le premier downloader binaire.

La tannière de l’ours

Le téléchargeur de premier niveau téléchargera et exécutera un nouveau téléchargeur, écrit en C++, pas si différent des autres téléchargeurs Zebrocy. Encore une fois, ce téléchargeur est aussi simple que les autres téléchargeurs du groupe Zebrocy. Il crée un ID et télécharge une nouvelle porte dérobée intéressante, (cette fois-ci) écrite en Delphi.

Comme nous l’avons expliqué dans notre plus récent article sur Zebrocy, la configuration de la backdoor est stockée dans la section des ressources et est divisée en quatre différentes blobs codées en hexadécimale et chiffrés.  Ces blobs contiennent les différentes parties de la configuration.

Figure 3 – Aperçu de la section des ressources

Une fois que la porte dérobée envoie des informations de base sur son système nouvellement compromis, les opérateurs prennent le contrôle de la porte dérobée et commencent à envoyer des commandes immédiatement.

Ainsi, le temps entre l’exécution du downloader par la victime et les premières commandes de l’opérateur n’est que de quelques minutes.

Technique de chasse de l’ours

Dans cette section, nous décrirons plus en détail les commandes exécutées manuellement par les opérateurs via leur porte dérobée Delphi.

Les commandes disponibles sont situées dans l’un des blobs de configuration mentionnés précédemment (le blob « commands » de la figure 3).  Le nombre de commandes prises en charge a augmenté avec le temps, la dernière version de la porte dérobée ayant plus de trente.  Comme nous n’avons pas identifié de motif dans l’ordre dans lequel les commandes sont invoquées, nous pensons que les opérateurs les exécutent manuellement.

CommandsArguments
SCREENSHOTNone
SYS_INFONone
GET_NETWORKNone
SCAN_ALL None

Les commandes ci-dessus sont généralement exécutées lorsque les opérateurs se connectent pour la première fois à une porte dérobée nouvellement activée. Ils n’ont pas d’arguments, et ils sont assez explicites. D’autres commandes couramment exécutées peu de temps après l’activation de ces portes dérobées sont listées ci-dessous :

CommandsArguments
REG_GET_KEYS_VALUESHKEY_CURRENT_USER
Software\Microsoft\Windows\CurrentVersion
DOWNLOAD_DAY(30)c:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg;*.jpeg;
*.bmp;*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;*.lhz;

d:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg;*.jpeg;
*.bmp;*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;*.lhz;
DOWNLOAD_DAY(1)
c:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg*.jpeg
*.bmp*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;

d:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg*.jpeg
*.bmp*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;
CMD_EXECUTEecho %APPDATA%
ipconfig /all
netstat -aon
CMD_EXECUTEwmic process get Caption,ExecutablePath
reg query
"HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s

Ceux qui ont déjà lu nos articles précédents sur Zebrocy remarqueront que le même genre d’information est envoyé, encore et encore par étapes précédentes. Ces informations sont demandées quelques minutes après le compromis initial et la quantité de données que l’opérateur aura à traiter est considérable.

Afin de recueillir encore plus d’informations, les opérateurs de Zebrocy téléchargent et utilisent de temps en temps des dumpers sur les machines des victimes. Les dumpers actuels présentent certaines similitudes avec ceux utilisés précédemment par le groupe. Dans le cas présent, Yandex Browser, Chromium, 7Star Browser (un navigateur basé sur Chromium), et CentBrowser sont ciblés, ainsi que les versions de Microsoft Outlook de 1997 à 2016 :

CommandArguments
UPLOAD_AND_EXECUTE_FILEC:\ProgramData\Office\MS\msoffice.exe
[…]
4D5A9000…

Ces dumpers créent des fichiers journaux indiquant la présence ou l’absence de bases de données potentielles à vider :

CommandArguments
DOWNLOAD_LISTC:\ProgramData\Office\MS\out.txt
C:\ProgramData\Office\MS\text.txt

Le dumper actuel contient la sortie suivante lorsqu’il n’y a pas de bases de données à vider :

%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\Default\Login Data not found
%LOCALAPPDATA%\Chromium\User Data\Default\Login Data not found
%LOCALAPPDATA%\7Star\7Star\User Data\Default\Login Data not found
%LOCALAPPDATA%\CentBrowser\User Data\Default\Login Data not found

Ces dumpers sont rapidement enlevés une fois qu’ils ont fait leur travail. De plus, la porte dérobée contient une liste de noms de fichiers liés aux identifiants des logiciels énumérés ci-dessous (noms provenant de la base de données) :

key3.dbFirefox private keys (now named key4.db)
cert8.dbFirefox certificate database
logins.jsonFirefox encrypted password database
account.cfnThe Bat! (email client) account credentials
wand.datOpera password database

Les opérateurs se chargent de récupérer ces bases de données si elles sont présentes sur l’ordinateur de la victime.

CommandArguments

DOWNLOAD_LIST
%APPDATA%\The Bat!\Account.CFN
%APPDATA%\The Bat!\[REDACTED]\Account.CFN

Les opérateurs récupèrent ces fichiers sur la machine en utilisant la commande DOWNLOAD_LIST. Cette commande peut être utilisée lorsque les opérateurs sont conscients de la présence de fichiers intéressants sur l’ordinateur.

Enfin, selon leur intérêt pour la victime en cause, les opérateurs de logiciels malveillants peuvent déployer une autre backdoor personnalisée. Cette porte dérobée est exécutée à l’aide de la commande CMD_EXECUTE :

Commande Arguments
CMD_EXECUTE

On observe plusieurs faits intéressants ici. Premièrement, ils utilisent le détournement d’objet COM pour rendre le malware persistant sur le système même si la porte dérobée personnalisée n’est installée que pendant quelques heures. Deuxièmement, la chaîne codée en hexadécimal est la C&C utilisée par la porte dérobée personnalisée, tandis que pour la porte dérobée Delphi, la C&C est intégrée dans la configuration.

Les deux backdoors Delphi, la plus commune et celle du dessus, sont assez similaires mais contiennent ces modifications intéressantes :

 Delphi backdoorDownloaded Delphi backdoor
Delphi compiler version14.0-15.032.0
32/64-bit32-bit64-bit
Configuration locationresource sectionno config (C&C is passed as an argument)
Number of commands53
Encryption algorithmAES ECBcustom
Lifetime on the computera few daysa few hours

Encore une fois, le but de cette porte dérobée personnalisée n’est pas très clair. Le taux de détection est nettement inférieur à celui de la backdoor « habituelle ». La très courte période de temps pendant laquelle cette porte dérobée se trouve sur le système et fonctionne rend sa récupération plus difficile. Une fois que ses opérateurs ont accompli leurs mauvaises actions, ils l’enlèvent rapidement.

Résumé

L’observation des commandes utilisées dans la nature par l’opérateur est très intéressante. Ils recueillent une quantité considérable d’information sur la cible compromise et ils ne s’inquiètent pas de la duplication des données. Il montre un écart important entre la stratégie de développement et ce que les opérateurs font dans la pratique. Les backdoors ayant une configuration et des modules personnalisés sont déployées très soigneusement, ce qui indique que des précautions sont en place, pour éviter que ces portes dérobées ne se retrouvent entre les mains des chercheurs.

La première série de commandes est la même et exécutée dans un délai très court, ce qui soulève une autre question : est-elle automatisée ?

Indicateurs de compromission (IoC)

Distribution URL
http://45.124.132[.]127/DOVIDNIK - (2018).zip
C&C server
http://45.124.132[.]127/action-center/centerforserviceandaction/service-and-action.php
SHA-1ESET detection names
48f8b152b86bed027b9152725505fbf4a24a39fdWin32/TrojanDownloader.Sednit.CMT
1e9f40ef81176190e1ed9a0659473b2226c53f57Win32/HackTool.PSWDump.D
bfa26857575c49abb129aac87207f03f2b062e07Win32/PSW.Agent.OGE

Techniques MITRE ATT&CK

TacticIDNameDescription
Initial AccessT1192Spearphishing LinkSpearphishing emails using a URL-shortener service to trick the victim into clicking on a link to a zip file containing malicious files.
ExecutionT1204User ExecutionTricks users into running an executable with an icon that looks like a Microsoft Word document.
T1085Rundll32rundll32.exe has been used to run a new, downloaded, malicious DLL.
T1047Windows Management InstrumentationWMI commands to gather victim host details.
T1053Scheduled TaskSchedule task to execute malicious binaries.
PersistenceT1060Registry Run Keys / Startup FolderRegistry key HKCU\Software\Microsoft\CurrentVersion\Run\ used for persistence.
T1122Component Object Model HijackingCOM hijacking for persistence.
Defense EvasionT1107File DeletionDeletes files (binaries and files created) after usage.
T1089Disabling Security ToolsKills processes
DiscoveryT1012Query RegistryRegistry keys enumeration
T1057Process DiscoveryLists running processes
T1082System Information DiscoveryUses systeminfo command to gather information about the victim.
T1083File and Directory DiscoveryUses echo ENV command to list the content of a directory.
CollectionT1005Data from Local SystemScans files that match extensions listed in the malware.
T1039Data from Network Shared DriveEnumerates remote and local drives and then exfiltrates files matching specific extensions.
T1025Data from Removable MediaEnumerates remote and local drives and then exfiltrates files matching specific extensions.
T1074Data StagedCreates file containing path of all files to exfiltrate.
T1056Input CaptureKeylogger feature.
T1113Screen CaptureScreenshot feature.
ExfiltrationT1020Automated ExfiltrationAutomatically prepare a file with all file paths to retrieve and send it.
T1022Data EncryptedData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1041Exfiltration Over Command and Control ChannelData are exfiltrated to a C&C server.
Command And ControlT1043Commonly Used PortDownloaders and backdoors use ports 80 or 443 to communicate with the C&C server.
T1024Custom Cryptographic ProtocolData sent are hex encoded, encrypted with AES or a custom algorithm.
T1132Data EncodingData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1001Data ObfuscationData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1008Fallback ChannelsA fallback C&C server is embedded in the configuration.
T1079Multilayer EncryptionData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1071Standard Application Layer ProtocolHTTP, HTTPS are used to communicate.
T1032Standard Cryptographic ProtocolData sent are hex-encoded, encrypted with a known algorithm or a custom one.

Rejoignez le nombre des lecteurs de WLS qui reçoivent une mise à jour dès la publication de tout nouvel article concernant la Crise en Ukraine.

Infolettre

Discussion