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.
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.
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.
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.
Commands | Arguments |
---|---|
SCREENSHOT | None |
SYS_INFO | None |
GET_NETWORK | None |
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 :
Commands | Arguments |
---|---|
REG_GET_KEYS_VALUES | HKEY_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; |
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 |
CMD_EXECUTE | echo %APPDATA% ipconfig /all netstat -aon |
CMD_EXECUTE | wmic 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 :
Command | Arguments |
---|---|
UPLOAD_AND_EXECUTE_FILE | C:\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 :
Command | Arguments |
---|---|
DOWNLOAD_LIST | C:\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.db | Firefox private keys (now named key4.db) |
---|---|
cert8.db | Firefox certificate database |
logins.json | Firefox encrypted password database |
account.cfn | The Bat! (email client) account credentials |
wand.dat | Opera 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.
Command | Arguments |
---|---|
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 backdoor | Downloaded Delphi backdoor | |
---|---|---|
Delphi compiler version | 14.0-15.0 | 32.0 |
32/64-bit | 32-bit | 64-bit |
Configuration location | resource section | no config (C&C is passed as an argument) |
Number of commands | 5 | 3 |
Encryption algorithm | AES ECB | custom |
Lifetime on the computer | a few days | a 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-1 | ESET detection names |
---|---|
48f8b152b86bed027b9152725505fbf4a24a39fd | Win32/TrojanDownloader.Sednit.CMT |
1e9f40ef81176190e1ed9a0659473b2226c53f57 | Win32/HackTool.PSWDump.D |
bfa26857575c49abb129aac87207f03f2b062e07 | Win32/PSW.Agent.OGE |
Techniques MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1192 | Spearphishing Link | Spearphishing emails using a URL-shortener service to trick the victim into clicking on a link to a zip file containing malicious files. |
Execution | T1204 | User Execution | Tricks users into running an executable with an icon that looks like a Microsoft Word document. |
T1085 | Rundll32 | rundll32.exe has been used to run a new, downloaded, malicious DLL. | |
T1047 | Windows Management Instrumentation | WMI commands to gather victim host details. | |
T1053 | Scheduled Task | Schedule task to execute malicious binaries. | |
Persistence | T1060 | Registry Run Keys / Startup Folder | Registry key HKCU\Software\Microsoft\CurrentVersion\Run\ used for persistence. |
T1122 | Component Object Model Hijacking | COM hijacking for persistence. | |
Defense Evasion | T1107 | File Deletion | Deletes files (binaries and files created) after usage. |
T1089 | Disabling Security Tools | Kills processes | |
Discovery | T1012 | Query Registry | Registry keys enumeration |
T1057 | Process Discovery | Lists running processes | |
T1082 | System Information Discovery | Uses systeminfo command to gather information about the victim. | |
T1083 | File and Directory Discovery | Uses echo ENV command to list the content of a directory. | |
Collection | T1005 | Data from Local System | Scans files that match extensions listed in the malware. |
T1039 | Data from Network Shared Drive | Enumerates remote and local drives and then exfiltrates files matching specific extensions. | |
T1025 | Data from Removable Media | Enumerates remote and local drives and then exfiltrates files matching specific extensions. | |
T1074 | Data Staged | Creates file containing path of all files to exfiltrate. | |
T1056 | Input Capture | Keylogger feature. | |
T1113 | Screen Capture | Screenshot feature. | |
Exfiltration | T1020 | Automated Exfiltration | Automatically prepare a file with all file paths to retrieve and send it. |
T1022 | Data Encrypted | Data sent are hex-encoded, encrypted with a known algorithm or a custom one. | |
T1041 | Exfiltration Over Command and Control Channel | Data are exfiltrated to a C&C server. | |
Command And Control | T1043 | Commonly Used Port | Downloaders and backdoors use ports 80 or 443 to communicate with the C&C server. |
T1024 | Custom Cryptographic Protocol | Data sent are hex encoded, encrypted with AES or a custom algorithm. | |
T1132 | Data Encoding | Data sent are hex-encoded, encrypted with a known algorithm or a custom one. | |
T1001 | Data Obfuscation | Data sent are hex-encoded, encrypted with a known algorithm or a custom one. | |
T1008 | Fallback Channels | A fallback C&C server is embedded in the configuration. | |
T1079 | Multilayer Encryption | Data sent are hex-encoded, encrypted with a known algorithm or a custom one. | |
T1071 | Standard Application Layer Protocol | HTTP, HTTPS are used to communicate. | |
T1032 | Standard Cryptographic Protocol | Data sent are hex-encoded, encrypted with a known algorithm or a custom one. |