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.

Figure 1. Carte des victimes d'XDSpy selon la télémétrie ESET (Belarus, Moldavie, Russie, Serbie et Ukraine)

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.

Figure 2. E-mail d’harponnage envoyé par les opérateurs de XDSpy 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.

Figure 3. Certaines parties du code d'exploitation, y compris le début, sont similaires à celles utilisées dans une campagne de DarkHotel décrite par JPCERT

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.

Figure 4. Extrait du script qui télécharge XDDown

Figure 5. Extrait du script qui ouvre le faux URL

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.

Figure 6. Architecture du logiciel malveillant XDSpy. XDLoc et XDPass sont abandonnés sans ordre particulier

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.

Figure 7. Boucle de téléchargement d'une liste de fichiers codés en dur vers le serveur C&C (partiellement expurgés)

  • 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.