Rare sont les groupes APT qui passent largement inaperçus pendant neuf ans, mais c’est le cas de XDSpy, un groupe d'espionnage auparavant sans papiers qui est actif depuis 2011. Il a très peu attiré l'attention du public, à l'exception d'un avis du CERT biélorusse en février 2020. Dans l'intervalle, le groupe a compromis de nombreuses agences gouvernementales et entreprises privées en Europe de l'Est et dans les Balkans.
Ce blog est un résumé, avec des informations mises à jour sur les vecteurs de compromission et les indicateurs de compromission, des recherches que nous avons présentées à la conférence Virus Bulletin 2020 (voir le rapport complet et la présentation).
Cibles
Les cibles du groupe XDSpy sont situées en Europe de l'Est et dans les Balkans et sont principalement des entités gouvernementales, y compris les armées et les ministères des affaires étrangères, et des entreprises privées. La figure 1 montre la localisation des victimes connues selon la télémétrie ESET.
Attribution
Après des recherches minutieuses, nous n'avons pas pu relier XDSpy à un groupe APT connu :
- Nous n'avons observé aucune similitude entre ce code et celui d'autres familles de logiciels malveillants.
- Nous n'avons pas observé de chevauchement dans l'infrastructure du réseau.
- À notre connaisse, aucun groupe APT ne cible ces pays et ces secteurs spécifiques.
En outre, le groupe est actif depuis plus de neuf ans. Donc, si un tel chevauchement avait existé, nous pensons qu'il aurait été remarqué, et le groupe découvert, il y a longtemps.
Nous pensons que les développeurs pourraient travailler dans le fuseau horaire UTC+2 ou UTC+3, qui est également le fuseau horaire de la plupart des cibles. Nous avons également remarqué qu'ils ne travaillaient que du lundi au vendredi, ce qui laisse supposer une activité professionnelle.
Vecteurs de compromission
Les opérateurs XDSpy semblent principalement utiliser des courriels de harponnage pour compromettre leurs cibles. En fait, c'est le seul vecteur de compromission que nous ayons observé. Cependant, les courriels ont tendance à varier un peu : certains contiennent une pièce jointe tandis que d'autres contiennent un lien vers un fichier malveillant. La première couche du fichier malveillant ou de la pièce jointe est généralement une archive ZIP ou RAR.
La figure 2 est un exemple d'un courriel d’harponnage XDSpy envoyé en février 2020.
Roughly translated, the body of the email says:
Bon après-midi!
Je vous envoie une copie de la lettre et du matériel photo basé sur les résultats du travail. Cliquez sur le lien pour télécharger : photo materials_11.02.2020.zip
Nous attendons une réponse d’ici la fin de la journée de travail.
Le lien pointe vers une archive ZIP qui contient un fichier LNK, sans aucun document leurre. Lorsque la victime double-clique dessus, le LNK télécharge un script supplémentaire qui installe XDDown, le principal composant du malware.
Après que notre article ait été soumis au Virus Bulletin, nous avons continué à suivre le groupe et, après une pause entre mars et juin 2020, ils sont revenus. Fin juin 2020, les opérateurs ont intensifié leur jeu en utilisant une vulnérabilité dans Internet Explorer, CVE-2020-0968, qui avait été corrigée en avril 2020. Au lieu de livrer une archive avec un fichier LNK, le serveur C&C livrait un fichier RTF qui, une fois ouvert, téléchargeait un fichier HTML exploitant la vulnérabilité susmentionnée.
CVE-2020-0968 fait partie d'un ensemble de vulnérabilités similaires dans le moteur JavaScript d'IE divulguées au cours des deux dernières années. Au moment où il a été exploité par XDSpy, aucune preuve de concept et très peu d'informations sur cette vulnérabilité spécifique étaient disponibles en ligne. Nous pensons que XDSpy a soit acheté cet exploit à un courtier, soit développé lui-même un exploit d'une journée en s'inspirant d'exploits antérieurs.
Il est intéressant de noter que cet exploit présente des similitudes avec les exploits utilisés précédemment dans les campagnes DarkHotel, comme le montre la figure 3. Il est également presque identique à l'exploit utilisé pour l’Opération Domino en septembre 2020, qui a été téléchargé sur VirusTotal depuis le Belarus.
Étant donné que nous ne pensons pas que XDSpy soit lié à DarkHotel et que l'opération Domino semble très différente de XDSpy, il est probable que les trois groupes partagent le même courtier en exploitation.
Enfin, le groupe a combien bien d’autres instrumentalisé la pandémie de COVID-19 au moins deux fois en 2020. Il a utilisé ce thème pour la première fois lors d'une campagne de harponnage contre les institutions biélorusses en février 2020. Puis, en septembre 2020, ils ont réutilisé ce thème contre des cibles russophones. L'archive contenait un fichier de script Windows (WSF) malveillant qui télécharge XDDown, comme le montre la figure 4, et ils ont utilisé le site officiel rospotrebnadzor.ru comme leurre, comme le montre la figure 5.
Composants du logiciel malveillant
La figure 4 montre l'architecture des logiciels malveillants dans un scénario où la compromission se fait par le biais d'un fichier LNK, comme c'était le cas en février 2020.
XDDown, principal composant du logiciel malveillant, n’est qu’un téléchargeur. Il persiste sur le système en utilisant la clé d'exécution traditionnelle. Il télécharge des plugins supplémentaires à partir du serveur C&C codé en dur en utilisant le protocole HTTP. Les réponses HTTP contiennent des binaires PE cryptés avec une clé XOR à deux octets codée en dur.
Au cours de nos recherches, nous avons découvert les plugins suivants :
- XDRecon : Recueille des informations de base sur la machine victime (le nom de l'ordinateur, le nom d'utilisateur actuel et le numéro de série du volume du disque principal).
- XDList : Fouille le lecteur C : à la recherche de fichiers intéressants (.accdb, .doc, .docm, .docx, .mdb, .xls, .xlm, .xlsx, .xlsm, .odt, .ost, .ppt, .pptm, .ppsm, .pptx, .sldm, .pst, .msg, .pdf, .eml, .wab) et exfiltre les chemins de ces fichiers. Il peut également prendre des captures d'écran.
- XDMonitor : Semblable à XDList. Il surveille également les lecteurs amovibles pour exfiltrer les fichiers correspondant à une extension intéressante.
- XDUpload : Exfiltre une liste de fichiers codés en dur du système de fichiers vers le serveur C&C, comme le montre la figure 5. Les chemins d'accès ont été envoyés aux serveurs C&C par XDList et XDMonitor.
- XDLoc : Rassemble les SSID à proximité (tels que les points d'accès Wi-Fi), probablement pour géolocaliser les machines victimes.
- XDPass : Récupère les mots de passe enregistrés dans diverses applications telles que les navigateurs web et les programmes de courrier électronique.
Vous trouverez plus de détails sur les différents composants des logiciels malveillants dans le white paper.
Conclusion
XDSpy est un groupe de cyberespionnage qui n'a pas été détecté depuis plus de neuf ans et qui a été très actif ces derniers mois. Il s'intéresse surtout au vol de documents d'entités gouvernementales en Europe de l'Est et dans les Balkans. Ce ciblage est assez inhabituel et en fait un groupe intéressant à suivre.
Les compétences techniques du groupe ont tendance à varier un peu. Il utilise la même architecture de base de logiciels malveillants depuis neuf ans, mais il a aussi récemment exploité une vulnérabilité corrigée par le fournisseur mais pour laquelle il n'existe pas de preuve de concept publique, ce qu'on appelle un exploit d'un jour.
Pour toute demande de renseignements, ou pour nous soumettre des échantillons sur le sujet, contactez-nous au: threatintel@eset.com.
Nous remercions tout particulièrement Francis Labelle pour son travail dans le cadre de cette enquête.
Indicateurs de compromission
La liste complète des indicateurs de compromission (IoC) et des échantillons se trouve dans notre répertoire GitHub.
Composants du logiciel malveillant
SHA-1 | ESET detection name | Description |
---|---|---|
C125A05CC87EA45BB5D5D07D62946DAEE1160F73 | JS/TrojanDropper.Agent.OAZ | Spearphishing email (2015) |
99729AC323FC8A812FA2C8BE9AE82DF0F9B502CA | LNK/TrojanDownloader.Agent.YJ | Malicious LNK downloader |
63B988D0869C6A099C7A57AAFEA612A90E30C10F | Win64/Agent.VB | XDDown |
BB7A10F816D6FFFECB297D0BAE3BC2C0F2F2FFC6 | Win32/Agent.ABQB | XDDown (oldest known sample) |
844A3854F67F4F524992BCD90F8752404DF1DA11 | Win64/Spy.Agent.CC | XDRecon |
B333043B47ABE49156195CC66C97B9F488E83442 | Win64/Spy.Agent.CC | XDUpload |
83EF84052AD9E7954ECE216A1479ABA9D403C36D | Win64/Spy.Agent.CC | XDUpload |
88410D6EB663FBA2FD2826083A3999C3D3BD07C9 | Win32/Agent.ABYL | XDLoc |
CFD43C7A993EC2F203B17A9E6B8B392E9A296243 | Win32/PSW.Agent.OJS | XDPass |
3B8445AA70D01DEA553A7B198A767798F52BB68A | DOC/Abnormal.V | Malicious RTF file that downloads the CVE-2020-0968 exploit |
AE34BEDBD39DA813E094E974A9E181A686D66069 | Win64/Agent.ACG | XDDown |
5FE5EE492DE157AA745F3DE7AE8AA095E0AFB994 | VBS/TrojanDropper.Agent.OLJ | Malicious script (Sep 2020) |
B807756E9CD7D131BD42C2F681878C7855063FE2 | Win64/Agent.AEJ | XDDown (most recent as of writing) |
Noms de fichiers/chemins d'accès
%APPDATA%\Temp.NET\archset.dat
%APPDATA%\Temp.NET\hdir.dat
%APPDATA%\Temp.NET\list.dat
%TEMP%\tmp%YEAR%%MONTH%%DAY%_%TICK_COUNT%.s
%TEMP%\fl637136486220077590.data
wgl.dat
Windows Broker Manager.dat
%TEMP%\Usermode COM Manager.dat
%TEMP%\Usermode COM Manager.exe
%APPDATA%\WINinit\WINlogon.exe
%APPDATA%\msprotectexp\mswinexp.exe
%APPDATA%\msvdemo\msbrowsmc.exe
%APPDATA%\Explorer\msdmcm6.exe
%APPDATA%\Explorer\browsms.exe
Réseau
Utilisés en 2019-2020
downloadsprimary[.]com
filedownload[.]email
file-download[.]org
minisnowhair[.]com
download-365[.]com
365downloading.com
officeupdtcentr[.]com
dropsklad[.]com
getthatupdate[.]com
boborux[.]com
easytosay[.]org
daftsync[.]com
documentsklad[.]com
wildboarcontest[.]com
nomatterwhat[.]info
maiwegwurst[.]com
migration-info[.]com
jerseygameengine[.]com
seatwowave[.]com
cracratutu[.]com
chtcc[.]net
ferrariframework[.]com
Ancienne infrastructure réseau
62.213.213[.]170
93.63.198[.]40
95.215.60[.]53
forgeron[.]tk
jahre999[.]tk
omgtech.000space[.]com
podzim[.]tk
porfavor876[.]tk
replacerc.000space[.]com
settimana987[.]tk
Techniques MITRE ATT&CK
Note : Ce tableau a été réalisé en utilisation la version 7 du cadre MITRE ATT&CK.
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1566.001 | Phishing: Spearphishing Attachment | XDSpy has sent spearphishing emails with a malicious attachment. |
T1566.002 | Phishing: Spearphishing Link | XDSpy has sent spearphishing emails with a link to a malicious archive. | |
Execution | T1203 | Exploitation for Client Execution | XDSpy has exploited a vulnerability (CVE-2020-0968) in Internet Explorer (triggered by a malicious RTF file). |
T1204.001 | User Execution: Malicious Link | XDSpy has lured targets to download malicious archives containing malicious files such as LNK. | |
T1204.002 | User Execution: Malicious File | XDSpy has lured targets to execute malicious files such as LNK or RTF. | |
Persistence | T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | XDDownload persists using the Run key. |
Discovery | T1033 | System Owner/User Discovery | XDRecon sends the username to the C&C server. |
T1082 | System Information Discovery | XDRecon sends the computer name and the main drive Volume Serial Number to the C&C server. | |
T1083 | File and Directory Discovery | XDList and XDMonitor monitor the local system and the removable drive. A list of interesting paths, that matches a list of hardcoded extension, is sent to the C&C server. | |
Collection | T1005 | Data from Local System | XDUpload exfiltrates files from the local drive. The paths of the files to be uploaded are hardcoded in the malware samples. |
T1025 | Data from Removable Media | XDMonitor exfiltrates files from removable drives. | |
T1113 | Screen Capture | XDList, XDMonitor and XDUpload take screenshots and send them to the C&C server. | |
T1119 | Automated Collection | XDMonitor exfiltrates files from removable drives that match specific extensions. XDUpload exfiltrates local files that are located at one the paths hardcoded in the malware samples. |
|
Command and Control | T1071.001 | Application Layer Protocol: Web Protocols | XDSpy uses HTTP for command and control. |
T1573.001 | Encrypted Channel: Symmetric Cryptography | XDDownload downloads additional components encrypted with a 2-byte static XOR key. | |
Exfiltration | T1020 | Automated Exfiltration | XDMonitor and XDUpload automatically exfiltrate collected files. |
T1041 | Exfiltration Over C2 Channel | XDSpy exfiltrate stolen data using the C&C channel. |