05 Juin 2025
VanHelsing : nos experts CTI publient leur analyse technique
Articles
Introduction
Ce n’est plus à démontrer : le système de RaaS (Ransomware as a Service) inonde la sphère cyber. Qu’elles soient ciblées ou opportunistes, ces menaces sont extrêmement efficaces. Certaines victimes préférant payer une rançon plutôt que de mettre en place une vraie politique de détection et de remédiation ; et tant qu’il y aura un marché, il y aura de nouveaux acteurs qui voudront y prendre part.
C’est l’exemple représentatif du RaaS VanHelsing, que nous avions identifié lors de notre veille. Ce « nouvel » acteur a récemment sorti son ransomware et nous vous proposons de l’étudier au travers de cet article.
Identification du ransomware et corrélations
Comme nous l’avions évoqué dans une précédente publication sur LinkedIn, nous avons pu nous procurer 2 échantillons à quelques jours d’intervalle.
99959c5141f62d4fbb60efdc05260b6e956651963d29c36845f435815062fd98 : 11 Mars 2025 |
86d812544f8e250f1b52a4372aaab87565928d364471d115d669a8cc7ec50e17: 16 Mars 2025 |
Lors de notre primo analyse, ces artefacts n’étaient pas encore connus des moteurs statiques classiques.
Pour autant nous avons pu les identifier à l’aide de nos moteurs d’analyse GLIMPS Malware.
Notre moteur d’explicabilité XaiCombined nous pointant même les fonctions liées au chiffrement :
Nous avons alors entrepris d’aller un peu plus loin pour comprendre le comportement de nos échantillons.
Analyse approfondie du ransomware
Comparatifs des échantillons
Sha256 | 9995[…]fd98 | 86d8[…]0e17 |
Type | executable/windows/pe32 | executable/windows/pe32 |
Magic | PE32 | PE32 |
Size | 736.77 kB | 1.48 MB |
EntryPoint | 0x0003F81B | 0x000432F1 |
TimeStamp | Tue Mar 11 07:47:59 2025 | Sun Mar 16 20:47:56 2025 |
Sections | .text 1 .data .rdata .reloc |
.text 1 .data (avec un PE embarqué !) .rdata .reloc |
En dehors des types/magic ces échantillons ne semblent pas avoir d’éléments en commun.
Pourtant, notre produit d’identification de concept-code GLIMPS Audit nous indique qu’il y a bien des fonctions qui sont proches !
Il identifie aussi des fonctions proches entre nos 2 échantillons ainsi que certaines fonctions appartenant à des bibliothèques publiques. Ici la libsodium qui est une « bibliothèque logicielle facile à utiliser qui fournit une large gamme d’opérations cryptographiques » … <Spoiler> il s’agit des fonctions de chiffrement et hashage ChaCha20 / Poly1305. </Spoiler> La différence principale entre ces échantillons réside dans le fait que 86d8…0e17 embarque un binaire psexec dans la section .data, pour lui apporter plus de fonctionnalités.
Pour la suite de cette analyse, nous ferons un focus sur l’échantillon 9995…fd98.
Un peu d’analyse statique
Import Directory Table
Nous pouvons nous faire une première idée de certaines fonctionnalités embarquées par ce ransomware en regardant sa table des imports :
[NETAPI32.dll] | Api de gestion réseau |
[WS2_32.dll] | Windows socket provider. Une bibliothèque permettant de gérer des sockets réseau. <spoiler> utilisé lors de l’énumération smb</spoiler> |
[SHELL32.dll] | Une bibliothèque qui apporte des fonctionnalités de shell windows |
[ADVAPI32.dll] | |
[USER32.dll] | |
[KERNEL32.dll] |
En l’occurrence, le fichier a des capacités à interagir avec le système cible ainsi qu’au travers du réseau.
Chaîne de caractères
Le binaire n’étant pas obfusqué ni packé, il est relativement facile de retrouver des éléments qui aident à la qualification.
Aide en ligne de commande
VanHelsing Ransomeware usage -h for help -v for verbose -sftpPassword for spread over sftp -smbPassword for spread over smb -bypassAdmin for locking the target without admin privileges -noLogs for stop logging -nopriority for stop CPU and IO priority’ –system: [*] Running as a system –Driver: [*] Target driver : %s –Directory: [*] Target Directory : %s –File: [*] Target file : %s –Force: [*] Force flag presented , multiple process allowed’ –no-autostart: [*] no autostart flag presented , autostart skipped –no-priority: [*] no priority flag presented , priority skipped –no-wallpaper: [*] no wallpaper flag presented , wallpaper skipped –no-local: [*] no local flag presented , local locking skipped’ –no-mounted: [*] no mounted flag presented , skipping mounted check –no-network: [*] no network flag presented , skipping network check –no-logs: [*] no logs flag presented , now not logging –no-admin: [*] no admin flag presented , skipping admin check |
Note de rançon
Autres éléments
Clé de chiffrement | 9ba9e6fb08e013dd3e30f03564295a761204a33385e59d08681e4d2d89f41a32 |
Extension | %s.vanlocker |
Nom de la ransom note | %s\README.txt |
Identification des fonctions d’intérêt
Itération de fichiers
Comme il en est de coutume dans les ransomware, on va retrouver une boucle d’itération d’éléments à chiffrer.
En l’occurrence, ici, nous avons une fonction d’itération. Si l’élément itéré est un fichier alors, il est chiffré, si c’est un répertoire, alors cette même fonction est utilisée pour itérer ce dernier ce qui permet de gérer la profondeur des répertoires.
Une fois le répertoire chiffré, une note de rançon au format texte est déposée : README.txt
Itération de lecteurs réseau : SMB Spread
Aux offsets 0x409C80 & 0x40A240 nous retrouvons une fonctionnalité de Spread over SMB. Le malware va effectuer une énumération des assets SMB disponibles et joignables sur le réseau local (dans la même plage d’adresses que la machine) et tentera de les chiffrer à distance.
Chiffrement
GLIMPS Audit nous a permis de générer un script IDC qui renomme les fonctions identifiées lors de son import dans IDA.
Cela nous permet de spotter facilement les fonctions d’intérêt dont la boucle de chiffrement qui se trouve à l’offset 0x408370.
Le fichier est chiffré avec une clé symétrique générée aléatoirement. Cette clé et le nonce sont chiffrés avec une clé publique (passée via le paramètre a3 de la fonction) puis elles sont inscrites au début du fichier chiffré.
Vérification de la clé de chiffrement
La clé publique utilisée dans le mécanisme de chiffrement, 9ba9e6[…]f41a32, est vérifiée en début d’exécution du ransomware.
La fonction itère sur chaque caractère de la chaîne pour vérifier qu’il fasse bien partie d’un charset défini.
Drop README.txt et wallpaper setup
La note de rançon est déposée à chaque nouveau dossier itéré.
Une fois tout le process de chiffrement effectué, le fond d’écran ainsi que l’icône par défaut sont changés en base de registre au profit du logo VanHelsing.
Analyse dynamique du ransomware
Dans ce cas, l’analyse statique suffit pour comprendre le comportement de notre malware.
Pour autant nous avons choisi d’effectuer une analyse dynamique qui permettra d’étayer certains éléments déjà identifiés.
Un rapide coup d’œil aux journaux d’évènements (EVTX) nous confirme ce que nous savions déjà.
Le programme commence par créer un mutex :
Ensuite il fork un thread qui s’occupe d’exécuter le SMB Spread :
Notre exécution dynamique n’autorisait pas l’utilisation d’un réseau virtuel. Nous ne voyons donc que les tentatives de connexion au port 445 (service WinSMB) des adresses IP appartenant au même sous-réseau 192.168.2.0/24
En parallèle, une boucle d’itération de répertoires / écriture de note de rançon / chiffrement des fichiers se met en place :
Comportement du ransomware
Notre analyse statique nous permet de déduire le graphe comportemental suivant (confirmé par l’analyse dynamique).
Conclusion : un ransomware de la famille VanHelsing
L’analyse que nous venons de mener nous permet d’affirmer que nous sommes face à un ransomware de la famille VanHelsing.
Il embarque quelques fonctionnalités classiques dont la présence au sein d’un même fichier trahit la caractérisation ransomware (itération de fichiers, chiffrement de fichiers, dépôt de note de rançon, changement de Wallpaper …).
Il utilise un système de chiffrement hybride moderne (chiffrement symétrique et clefs et nonce chiffrés en asymétrique) reposant sur un algorithme chacha20 alliant rapidité et robustesse.
C’est notamment le cas d’autres ransomware comme Lockbit ou Nitrogen/LukaLocker.
Il embarque aussi d’autres fonctionnalités intéressantes comme la capacité de SMB Spread qui n’existe pas dans d’autres familles de ransomware.
Pour autant les samples analysés semblent n’être que des versions « work in progress »
En effet, on retrouve dans l’aide des références à du spread over FTP alors qu’il n’existe aucune portion de code qui exécute cela. De plus, le binaire vient avec tout un lot de messages qui s’utilisent généralement lors de phases de debugging.
Enfin, on ne retrouve pas d’obfuscation ni de fonctionnalités de suppression des « shadow copy ».
La récente fuite / revente du code source et du builder du ransomware nous permettra probablement d’étayer cette analyse lorsque nous aurons pu nous l’approprier. En attendant nous serons en mesure de détecter et d’identifier ces nouvelles menaces lorsqu’elles feront surface.
ANNEXE 1 : Observables
Les ransoms :
– 99959c5141f62d4fbb60efdc05260b6e956651963d29c36845f435815062fd98
– 86d812544f8e250f1b52a4372aaab87565928d364471d115d669a8cc7ec50e17
Liens sites vitrines :
– http://vanhelvuuo4k3xsiq626zkqvp6kobc2abry5wowxqysibmqs5yjh4uqd.onion
– http://vanhelwmbf2bwzw7gmseg36qqm4ekc5uuhqbsew4eihzcahyq7sukzad.onion
– http://vanhelxjo52qr2ixcmtjayqqrcodkuh36n7uq7q7xj23ggotyr3y72yd.onion
Liens points de paiement :
– http://vanhelcbxqt4tqie6fuevfng2bsdtxgc7xslo2yo7nitaacdfrlpxnqd.onion
– http://vanhelqmjstkvlhrjwzgjzpq422iku6wlggiz5y5r3rmfdeiaj3ljaid.onion
– http://vanhelsokskrlaacilyfmtuqqa5haikubsjaokw47f3pt3uoivh6cgad.onion
– http://vanheltarnbfjhuvggbncniap56dscnzz5yf6yjmxqivqmb5r2gmllad.onion
Clés de registre :
– Software\Classes\.vanlocker\DefaultIcon
Fichier de debug :
– C:\Users\ADMINI~1\AppData\Local\Temp\2\74edcda8581f9636c83352ad946821b0\1-locker\Release\1-locker.pdb\x00
Clé publique utilisée pour le chiffrement asymétrique des clefs de chiffrement et nonce :
– 9ba9e6fb08e013dd3e30f03564295a761204a33385e59d08681e4d2d89f41a32
ANNEXE 2 : Liens externes
https://research.checkpoint.com/2025/vanhelsing-new-raas-in-town/