Es extraño que un grupo de APT pase desapercibido durante nueve años, pero así pasó con XDSpy; un grupo de espionaje previamente indocumentado que ha estado activo desde 2011. Este grupo atrajo muy poca atención pública, con la excepción de un aviso del CERT bielorruso de febrero de 2020. Mientras tanto, el grupo ha comprometido a muchas agencias gubernamentales y empresas privadas en países de Europa del Este y los Balcanes.
Esta publicación es un resumen de la investigación que presentamos en la conferencia Virus Bulletin 2020 (consulte el paper completo y la presentación), con información actualizada acerca de los vectores de compromiso y los indicadores de compromiso utilizados.
Blancos de ataque
Los blancos de ataque del grupo XDSpy se encuentran en Europa del Este y los Balcanes y son principalmente entidades gubernamentales, incluidos militares, Ministerios de Relaciones Exteriores, y empresas privadas. La Figura 1 muestra la ubicación de las víctimas conocidas según la telemetría de ESET.
Atribución
Después de una cuidadosa investigación, no pudimos vincular a XDSpy con ningún grupo de APT conocido públicamente:
- No encontramos a nivel de código ninguna similitud con otras familias de malware.
- No observamos ninguna superposición en la infraestructura de red.
- No tenemos conocimiento de otro grupo de APT dirigido a estos países específicos.
Además, el grupo ha estado activo durante más de nueve años. Entonces, si hubiera existido tal superposición consideramos que se habría notado y el grupo habría sido descubierto hace mucho tiempo.
Creemos que los desarrolladores podrían estar trabajando en la zona horaria UTC+2 o UTC+3, que también es la zona horaria de la mayoría de sus blancos de ataque. También notamos que solo trabajaban de lunes a viernes, lo que sugiere una actividad profesional.
Vectores de compromiso
Los operadores de XDSpy parecen utilizar principalmente correos de spearphishing para comprometer a sus objetivos. De hecho, este es el único vector de compromiso que hemos observado. Sin embargo, los correos electrónicos tienden a variar un poco: algunos contienen un archivo adjunto mientras que otros contienen un enlace hacia un archivo malicioso. La primera capa del archivo o adjunto malicioso es generalmente un archivo ZIP o RAR.
La Figura 2 es un ejemplo de un correo de spearphishing de XDSpy enviado en febrero de 2020.
A grandes rasgos, la traducción del cuerpo del correo dice:¡Buenas tardes!
Le envío una copia de la carta y los materiales fotográficos basados en los resultados del trabajo. Haga clic en el enlace para descargar: material fotográfico_11.02.2020.zip
Quedamos a la espera de una respuesta hasta el final de la jornada laboral.
El enlace apunta a un archivo ZIP que contiene un archivo LNK, sin ningún documento señuelo. Cuando la víctima hace doble clic en él, el LNK descarga un script adicional que instala XDDown, el componente principal del malware.
Después de que nuestro paper fuera enviado a Virus Bulletin, continuamos monitoreando la actividad del grupo y corroboramos que tras una pausa entre los meses de marzo y junio de 2020, el grupo regresó a la actividad. A finales de junio de 2020, los operadores comenzaron a aprovecharse de la vulnerabilidad CVE-2020-0968 en Internet Explorer, que había sido parcheada en abril de 2020. De esta manera, en lugar de entregar un archivo que contiene un archivo LNK, el servidor de C&C estaba entregando un archivo RTF que, una vez abierto, descargaba un archivo HTML utilizado para explotar la vulnerabilidad antes mencionada.
La CVE-2020-0968 forma parte de un conjunto de vulnerabilidades similares en el motor de JavaScript heredado de Internet Explorer que fueron reveladas en los últimos dos años. Al momento de ser explotada por XDSpy, no había ninguna prueba de concepto y había muy poca información disponible sobre esta vulnerabilidad en Internet. Creemos que XDSpy compró este exploit a un intermediaro o que ellos mismos desarrollaron un exploit de “one-day” o “1-day” por sí mismos utilizando como referencia exploits anteriores.
Es interesante notar que este exploit tiene similitudes con exploits previamente utilizados en campañas de DarkHotel, como se muestra en la Figura 3. También es casi idéntico al exploit utilizado en Operation Domino en septiembre de 2020, el cual fue cargado en VirusTotal desde Bielorrusia.
Dado que no creemos que XDSpy esté vinculado a DarkHotel y que Operation Domino es bastante diferente de XDSpy, es probable que los tres grupos compartan el mismo intermediario para obtener los exploits.
Finalmente, el grupo se subió al tren del COVID-19 al menos dos veces en 2020. Primero aprovechó este tema en una campaña de spearphishing contra instituciones bielorrusas en febrero de 2020. Luego, en septiembre de 2020, volvieron a utilizar este tema contra blancos de habla rusa. El archivo contenía un archivo WSF (Windows Script File) malicioso que descarga XDDown, tal como se muestra en la Figura 4, y usaron el sitio web oficial rospotrebnadzor.ru como señuelo, como se puede apreciar en la Figura 5.
Componentes del malware
La Figura 4 muestra la arquitectura del malware en un escenario donde el compromiso ocurre a través de un archivo LNK, como fue el caso en febrero de 2020.
XDDown es el componente principal del malware y es estrictamente un downloader. Persiste en el sistema usando la tradicional clave Run. Descarga plugins adicionales desde el servidor C&C hardcodeado utilizando el protocolo HTTP. Las respuestas HTTP contienen binarios PE cifrados con una clave XOR de dos bytes hardcodeada.
Durante nuestra investigación, descubrimos los siguientes plugins:
- XDRecon: recopila información básica sobre la máquina víctima (el nombre de la computadora, el nombre de usuario actual y el número de serie del volumen de la unidad principal).
- XDList: rastrea la unidad C: en busca de archivos interesantes (.accdb, .doc, .docm, .docx, .mdb, .xls, .xlm, .xlsx, .xlsm, .odt, .ost, .ppt, .pptm, .ppsm, .pptx, .sldm, .pst, .msg, .pdf, .eml, .wab) y exfiltra las rutas de estos archivos. También puede realizar capturas de pantalla.
- XDMonitor: similar a XDList. También monitorea las unidades extraíbles para exfiltrar los archivos que coinciden con una extensión interesante.
- XDUpload: Exfiltra una lista hardcodeada de archivos del sistema de archivos al servidor C&C, como se muestra en la Figura 5. Las rutas fueron enviadas a los servidores C&C por XDList y XDMonitor.
- XDLoc: recopila SSIDs cercanos (como puntos de acceso Wi-Fi), probablemente para geolocalizar las máquinas víctimas.
- XDPass: toma las contraseñas almacenadas de varias aplicaciones, como navegadores web y programas de correo electrónico.
Se pueden encontrar más detalles sobre los diversos componentes de malware en el white paper.
Conclusión
XDSpy es un grupo de ciberespionaje que ha permanecido sin ser detectado durante más de nueve años y ha estado muy ocupado durante los últimos meses. Está principalmente interesado en robar documentos de entidades gubernamentales en Europa del Este y los Balcanes. El foco de sus blancos de ataque es bastante inusual y lo convierte en un grupo interesante a seguir.
Los aspectos técnicos del grupo tienden a variar un poco. Ha utilizado la misma arquitectura básica de malware durante nueve años, pero también ha aprovechado recientemente una vulnerabilidad parcheada por el proveedor pero para la que no existe una prueba de concepto pública.
Para cualquier consulta, o para enviar muestras relacionadas con el tema, contáctenos a través de threatintel@eset.com.
Un agradecimiento especial a Francis Labelle por su trabajo en esta investigación.
Indicadores de Compromiso
Una lista de los Indicadores de Compromiso (IoCs) y muestras puede encontrarse en nuestro repositorio de GitHub.
Componentes del 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) |
Nombres de archivo / Rutas
%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
Red
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
Antigua infraestructura de red
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: Esta tabla fue creada utilizando la versión 7 del framework de 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. |