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.

Figura 1. Mapa de víctimas de XDSpy según la telemetría de ESET (Bielorrusia, Moldavia, Rusia, Serbia y Ucrania).

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.

Figura 2. Correo de spearphishing enviado por los operadores de XDSpy 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.

Figura 3. Partes del código del exploit (incluido el principio) son similares al que fuera utilizado en una campaña de DarkHotel descrita por JPCERT.

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.

Figura 4. Parte del script que descarga XDDown.
Figura 5. Parte del script que abre la URL utilizada como señuelo.

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.

Figura 6. Arquitectura del malware de XDSpy. XDLoc y XDPass son droppeados sin ningún orden en particular.

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.
Figura 7. Bucle cargando una lista hardcodeada de archivos en el servidor C&C (parcialmente redactada).
  • 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-1ESET detection nameDescription
C125A05CC87EA45BB5D5D07D62946DAEE1160F73JS/TrojanDropper.Agent.OAZSpearphishing email (2015)
99729AC323FC8A812FA2C8BE9AE82DF0F9B502CALNK/TrojanDownloader.Agent.YJMalicious LNK downloader
63B988D0869C6A099C7A57AAFEA612A90E30C10FWin64/Agent.VBXDDown
BB7A10F816D6FFFECB297D0BAE3BC2C0F2F2FFC6Win32/Agent.ABQBXDDown (oldest known sample)
844A3854F67F4F524992BCD90F8752404DF1DA11Win64/Spy.Agent.CCXDRecon
B333043B47ABE49156195CC66C97B9F488E83442Win64/Spy.Agent.CCXDUpload
83EF84052AD9E7954ECE216A1479ABA9D403C36DWin64/Spy.Agent.CCXDUpload
88410D6EB663FBA2FD2826083A3999C3D3BD07C9Win32/Agent.ABYLXDLoc
CFD43C7A993EC2F203B17A9E6B8B392E9A296243Win32/PSW.Agent.OJSXDPass
3B8445AA70D01DEA553A7B198A767798F52BB68ADOC/Abnormal.VMalicious RTF file that downloads the CVE-2020-0968 exploit
AE34BEDBD39DA813E094E974A9E181A686D66069Win64/Agent.ACGXDDown
5FE5EE492DE157AA745F3DE7AE8AA095E0AFB994VBS/TrojanDropper.Agent.OLJMalicious script (Sep 2020)
B807756E9CD7D131BD42C2F681878C7855063FE2Win64/Agent.AEJXDDown (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 .

TacticIDNameDescription
Initial AccessT1566.001Phishing: Spearphishing AttachmentXDSpy has sent spearphishing emails with a malicious attachment.
T1566.002Phishing: Spearphishing LinkXDSpy has sent spearphishing emails with a link to a malicious archive.
ExecutionT1203Exploitation for Client ExecutionXDSpy has exploited a vulnerability (CVE-2020-0968) in Internet Explorer (triggered by a malicious RTF file).
T1204.001User Execution: Malicious LinkXDSpy has lured targets to download malicious archives containing malicious files such as LNK.
T1204.002User Execution: Malicious FileXDSpy has lured targets to execute malicious files such as LNK or RTF.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderXDDownload persists using the Run key.
DiscoveryT1033System Owner/User DiscoveryXDRecon sends the username to the C&C server.
T1082System Information DiscoveryXDRecon sends the computer name and the main drive Volume Serial Number to the C&C server.
T1083File and Directory DiscoveryXDList 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.
CollectionT1005Data from Local SystemXDUpload exfiltrates files from the local drive. The paths of the files to be uploaded are hardcoded in the malware samples.
T1025Data from Removable MediaXDMonitor exfiltrates files from removable drives.
T1113Screen CaptureXDList, XDMonitor and XDUpload take screenshots and send them to the C&C server.
T1119Automated CollectionXDMonitor 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 ControlT1071.001Application Layer Protocol: Web ProtocolsXDSpy uses HTTP for command and control.
T1573.001Encrypted Channel: Symmetric CryptographyXDDownload downloads additional components encrypted with a 2-byte static XOR key.
ExfiltrationT1020Automated ExfiltrationXDMonitor and XDUpload automatically exfiltrate collected files.
T1041Exfiltration Over C2 ChannelXDSpy exfiltrate stolen data using the C&C channel.

Fuente y redacción: welivesecurity.com (Matthieu Faou)

Compartir