É bastante estranho que um grupo APTs tenha passado despercebido por nove anos, mas foi o que aconteceu com o XDSpy - um grupo de espionagem que está ativo desde 2011. O XDSpy não atraiu muito a atenção pública, com exceção de um alerta do CERT na Bielorrússia em fevereiro deste ano. O grupo atacou diversos órgãos governamentais e empresas privadas em países do Leste Europeu e nos Balcãs.

Este post é um resumo da pesquisa que apresentamos na conferência Virus Bulletin 2020 (veja o artigo completo e a apresentação) com informações atualizadas sobre os vetores de engajamento e indicadores de comprometimento utilizados.

Alvos de ataque

Os alvos de ataque do grupo XDSpy estão no Leste Europeu e nos Balcãs e são principalmente órgãos governamentais, incluindo militares, Ministérios das Relações Exteriores e empresas privadas. A Figura 1 mostra a localização de vítimas conhecidas de acordo com a telemetria da ESET.

Figura 1. Mapa das vítimas do XDSpy de acordo com a telemetria da ESET (Bielorrússia, Moldávia, Rússia, Sérvia e Ucrânia).

Atribução

Após uma investigação bastante cuidadosa, não foi possível vincular o XDSpy a nenhum grupo APT conhecido publicamente:

  • Não encontramos nenhuma semelhança a nível de código com outras famílias de malware.
  • Não observamos nenhuma sobreposição na infraestrutura de rede.
  • Não temos conhecimento de outro grupo APT visando a esses países específicos.

Além disso, o grupo atua há mais de nove anos. Portanto, se houvesse tal sobreposição, acreditamos que ela teria sido notada e o grupo teria sido descoberto há muito tempo.

Acreditamos que os desenvolvedores possam estar trabalhando no fuso horário UTC+2 ou UTC+3, que também é o fuso horário para a maioria de seus alvos de ataque. Notamos também que trabalhavam apenas de segunda a sexta, o que nos faz pensar em uma atividade profissional.

Vetores de comprometimento

Os operadores do XDSpy parecem usar principalmente e-mails de spearphishing para atacar seus alvos. Na verdade, esse é o único vetor de comprometimento que observamos. No entanto, os e-mails tendem a variar um pouco: alguns contêm um anexo enquanto outros um link para um arquivo malicioso. A primeira camada do arquivo ou anexo malicioso é geralmente um arquivo ZIP ou RAR.

A Figura 2 é um exemplo de um e-mail de spearphishing do XDSpy enviado em fevereiro de 2020.

Figura 2. E-mail de spearphishing enviado por operadores do XDSpy em fevereiro de 2020.

Em termos gerais, a tradução da mensagem do e-mail seria:


Boa tarde!
Estou enviando uma cópia da carta e os materiais fotográficos com base nos resultados do trabalho. Clique no link para fazer o download: material fotográfico_11.02.2020.zip.
Aguardamos resposta até o final do horário laboral.

O link aponta para um arquivo ZIP contendo um arquivo LNK, sem nenhum documento “isca”. Quando a vítima clica duas vezes no arquivo, o LNK baixa um script adicional que instala o XDDown, o principal componente do malware.

Depois que nosso artigo foi enviado para a Virus Bulletin, continuamos monitorando a atividade do grupo e confirmamos que, após uma pausa entre março e junho de 2020, o grupo voltou às atividades. No final de junho de 2020, as operadoras começaram a se aproveitar da vulnerabilidade CVE-2020-0968 no Internet Explorer, que havia sido corrigida em abril de 2020. Dessa forma, em vez de entregar um arquivo contendo um arquivo LNK, o servidor C&C estava entregando um arquivo RTF que, uma vez aberto, baixava um arquivo HTML usado para explorar a vulnerabilidade mencionada anteriormente.

A CVE-2020-0968 é parte de um conjunto de vulnerabilidades semelhantes no mecanismo de JavaScript herdado do Internet Explorer que foram reveladas nos últimos dois anos. No momento em que foi explorada pelo XDSpy, não havia prova de conceito e pouca informação estava disponível sobre essa vulnerabilidade na Internet. Acreditamos que o XDSpy comprou esse exploit de um intermediário ou que desenvolveu um exploit de “one-day” ou “1-day” usando exploits anteriores como referência.

É interessante notar que esse exploit tem semelhanças com exploits usados ​​anteriormente nas campanhas do DarkHotel, conforme mostrado na Figura 3. Também é quase idêntico ao exploit usado na Operation Domino em setembro de 2020, que foi carregado para o VirusTotal na Bielorrússia.

Como não acreditamos que o XDSpy esteja vinculado ao DarkHotel e que a Operation Domino seja bem diferente do XDSpy, é provável que todos os três grupos compartilhem o mesmo intermediário para obter os exploits.

Figura 3. Partes do código do exploit (incluindo o princípio) são semelhantes ao que foi usado em uma campanha do DarkHotel descrita pelo JPCERT.

O grupo se aproveitou da pandemia da Covid-19 pelo menos duas vezes em 2020. Eles primeiro se aproveitaram desse tema em uma campanha de spearphishing contra instituições na Bielorrússia em fevereiro de 2020. Em seguida, em setembro de 2020, eles usaram novamente o mesmo tema contra alvos que falavam o idioma russo. O arquivo continha um arquivo WSF (Windows Script File) malicioso que baixava o XDDown, conforme podemos ver na Figura 4. O grupo usou o site oficial rospotrebnadzor.ru como isca, como pode ser visto na Figura 5.

Figura 4. Parte do script que baixa o XDDown.

Figura 5. Parte do script que abre a URL usada como isca.

Componentes do malware

A Figura 4 mostra a arquitetura do malware em um cenário no qual o comprometimento ocorre por meio de um arquivo LNK, como ocorreu em fevereiro de 2020.

Figura 6. As arquiteturas dos malwares XDSpy. XDLoc e XDPass são droppeadas sem nenhuma ordem específica.

O XDDown é o principal componente do malware e é estritamente um downloader. Ele persiste no sistema usando a tradicional chave Run. A ameaça baixa plug-ins adicionais do servidor C&C hardcodeado usando o protocolo HTTP. As respostas HTTP contêm binários PE criptografados com uma chave XOR de dois bytes hardcodeada.

Durante nossa investigação, descobrimos os seguintes plug-ins:

  • XDRecon: coleta informações básicas sobre a máquina da vítima (o nome do computador, o nome de usuário atual e o número de série do volume da unidade principal).
  • XDList: verifica a unidade C: em busca de arquivos interessantes (.accdb, .doc, .docm, .docx, .mdb, .xls, .xlm, .xlsx, .xlsm, .odt, .ost, .ppt, .pptm, .ppsm, .pptx, .sldm, .pst, .msg, .pdf, .eml, .wab) e exfiltra os caminhos desses arquivos. Esse plug-in também pode fazer capturas de tela.
  • XDMonitor: semelhante ao XDList. Ele também monitora unidades removíveis para exfiltrar arquivos que correspondam a uma extensão interessante.
  • XDUpload: exfiltra uma lista codificada de arquivos do sistema de arquivos para o servidor C&C, conforme pode ser visto na Figura 5. As rotas foram enviadas para os servidores C&C por XDList e XDMonitor.

Figura 7. Loop de upload da lista hardcodeada de arquivos para o servidor C&C (parcialmente editado).

  • XDLoc: coleta SSIDs próximos (como pontos de acesso Wi-Fi), provavelmente para geolocalizar as máquinas das vítimas.
  • XDPass: obtém senhas armazenadas de vários aplicativos, como navegadores web e programas de e-mail.

Mais detalhes sobre os vários componentes do malware podem ser encontrados no white paper.

Conclusão

O XDSpy é um grupo de espionagem cibernética que não foi detectado por mais de nove anos e esteve bastante ativo nos últimos meses. O grupo está interessado principalmente em roubar documentos de órgãos governamentais no Leste Europeu e nos Balcãs. O foco de seus alvos de ataque é bastante incomum, o que torna a análise do grupo algo ainda mais interessante.

Os aspectos técnicos do grupo tendem a variar um pouco. O grupo usou a mesma arquitetura básica de malware por nove anos, mas também explorou recentemente uma vulnerabilidade corrigida pelo fornecedor, mas para a qual não há prova de conceito.

Em caso de dúvidas ou caso queira enviar amostras relacionadas ao assunto, entre em contato conosco pelo e-mail fearintel@eset.com.

Agradecemos especialmente a Francis Labelle por seu trabalho nessa pesquisa e investigação.

Indicadores de Comprometimento

Veja uma lista de indicadores de comprometimento (IoCs) e amostras em nosso repositório no GitHub.

Componentes do malware

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)

Nomes de arquivo / Caminhos

%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

Rede

Used in 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

Infraestrutura de rede antiga

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

Técnicas de MITRE ATT&CK

Nota: Essa tabela foi criada usando a versão 7 do framework do MITER 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.