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