Aller au contenu
Beveiligingsnieuws

GenieLocker : ransomware sur Windows, Linux et ESXi

GenieLocker ransomware

Depuis mars 2026, le ransomware GenieLocker circule dans des attaques visant des organisations, principalement dans la Fédération de Russie et surtout dans le secteur manufacturier. L’analyse relie la menace à un groupe d’extorsion financière connu sous plusieurs noms (Toy Ghouls, Bearlyfy, Labubu, Laboo.boo). Ce qui ressort : GenieLocker ne se contente pas d’exploiter des briques déjà existantes. Il s’agit d’une conception « sur mesure », déployée avec des capacités adaptées à plusieurs environnements.

Dans cet article, nous résumons la chaîne d’attaque observée et les mécanismes clés du ransomware GenieLocker, des étapes d’accès initial et d’exploration jusqu’au chiffrement des données sur Windows, Linux et ESXi.

Contexte : un ransomware développé pour plusieurs plateformes

Les recherches décrivent GenieLocker comme une famille de trojan de chiffrement personnalisée. Là où certains groupes s’appuient sur des chiffreurs tiers, cette campagne met en avant une dépendance réduite à des logiciels d’autrui grâce à un outil conçu pour fonctionner nativement sur les systèmes ciblés.

Deux grandes variantes ressortent des échantillons étudiés : une version compilée pour Windows (format PE) et une version pour Linux et ESXi (format ELF). Dans les deux cas, la cryptographie repose sur la bibliothèque libsodium, ce qui permet d’uniformiser le socle cryptographique malgré la diversité des environnements.

Déroulement d’une attaque : accès initial et prise de contrôle

Selon les observations de l’incident de fin mars 2026, les attaquants entrent d’abord dans le réseau via une connexion OpenVPN provenant du réseau d’un partenaire externe. Le scénario suggère une exploitation de la relation de confiance avec ce partenaire, associée à l’usage de identifiants volés mais encore valides pour se connecter.

Une fois le périmètre franchi, l’étape suivante consiste à installer des outils supplémentaires sur les machines compromises. L’objectif est double : repérer ce qui se trouve dans l’environnement et préparer l’exécution des actions destructrices.

Découverte et collecte de secrets

Après l’intrusion, plusieurs outils sont installés, dont OpenSSH, socks5.exe, SoftPerfect Network Scanner et Mimikatz. Le scanner réseau sert à cartographier l’environnement, tandis que Mimikatz est utilisé pour extraire des identifiants.

Une partie importante concerne également les gestionnaires de mots de passe déjà présents. Les analyses indiquent un accès au client KeePassXC sur des machines compromises, avec une tentative d’extraction des informations stockées dans les bases KeePass.

Mouvement latéral et communication avec le serveur de commande

Pour se déplacer dans l’infrastructure, les attaquants s’appuient sur des méthodes d’accès légitimes : RDP pour atteindre des postes Windows, et SSH pour accéder aux serveurs Linux. Cette approche rend l’opération plus discrète, car elle s’appuie sur des mécanismes courants dans les environnements d’entreprise.

Le déploiement de l’outil de chiffrement s’appuie ensuite sur des utilitaires légitimes, PsExec et PAExec, ce qui facilite l’exécution à distance. Enfin, une tunnelisation SSH inverse est mise en place pour permettre la communication avec le serveur de commande et de contrôle.

Impact : chiffrement des fichiers et arrêt des machines virtuelles

La phase d’impact illustre une adaptation claire à chaque plateforme.

  • Sur Windows, les fichiers sont chiffrés à l’aide de la variante PE du ransomware GenieLocker.
  • Sur Linux et ESXi, les serveurs compromis voient d’abord l’arrêt des machines virtuelles actives, puis le chiffrement des disques via la variante ELF.

Les procédures observées correspondent à ce qui avait déjà été documenté lors d’attaques antérieures attribuées au même acteur. Un point notable : aucune preuve d’exfiltration de données n’a été trouvée dans les analyses, ce qui s’inscrit dans le comportement attendu du groupe. En outre, l’acteur n’utilise pas de modèle de double extorsion et ne lance pas de site de fuite de données.

GenieLocker sur Windows : chiffreur, contrôles et routine cryptographique

La version Windows du ransomware GenieLocker est principalement écrite en C, mais compilée avec des bibliothèques C++ via Microsoft Visual C/C++. Le trojan inclut plusieurs fonctions liées au chiffrement et à la neutralisation des analyses, notamment l’arrêt de processus, la mise hors service de services, l’évasion de débogage et une routine de chiffrement complète.

Notes de rançon : absence de dépôt automatique

Contrairement à d’autres familles, GenieLocker ne dépose pas automatiquement de notes de rançon sur la machine victime. Il ne contient aucune information de contact ni d’adresse de négociation. Les demandes et les coordonnées doivent donc être fournies manuellement par les attaquants pendant l’attaque.

Cette stratégie peut contribuer à éviter une détection proactive associée à la création répétée de fichiers de type « readme » lors du déclenchement du chiffreur.

Arguments et démarrage conditionnel

Le malware accepte plusieurs arguments. Le premier élément attendu correspond à une chaîne hexadécimale désignée dans le code comme l’« argument secret », nécessaire au démarrage.

Le flux décrit consiste à convertir la valeur hexadécimale en octets, puis à la hacher en SHA-256 pour comparer avec une valeur intégrée en dur. En cas d’égalité, la chaîne « session » est concaténée et un autre hachage est calculé avec BLAKE2b-256. Toutefois, ce résultat n’est pas utilisé, ce qui laisse penser à une fonctionnalité encore en développement ou à une phase non exploitée.

Techniques anti-débogage

GenieLocker cherche à détecter une exécution sous débogage. Dès le lancement, il effectue un contrôle d’environnement via IsDebuggerPresent et CheckRemoteDebuggerPresent.

Après la validation de l’argument secret, un thread de surveillance est lancé. Il tourne en boucle et exécute des vérifications à intervalles réguliers (toutes les 500 millisecondes) afin d’identifier des débogueurs connus. Si un test échoue, le processus complet est immédiatement terminé.

Un mécanisme supplémentaire s’appuie sur le calcul d’un CRC32 de la section .text. Le chiffreur calcule d’abord la valeur au démarrage du thread de surveillance, puis la recalcule à chaque itération pour détecter une modification du code. L’idée : repérer des modifications introduites par un débogueur ou un autre outil.

Préparation du chiffrement : exclusions et neutralisation

Avant de chiffrer, GenieLocker évite certains emplacements et certains types de fichiers. Les analyses mentionnent des listes d’exclusion pour des dossiers (notamment des répertoires système) afin de limiter les risques de corruption du système.

Le trojan évite aussi des fichiers système Windows et exclut des extensions précises. Il contient en outre une logique de vérification du nom de la machine : le programme récupère le nom via GetComputerNameA et le compare à une liste d’exclusions. Dans l’échantillon observé, cette liste serait vide.

Si le nom d’hôte n’est pas exclu, le chiffreur s’attaque aux processus susceptibles d’utiliser les fichiers ciblés. Il termine ces processus avec TerminateProcess pour libérer l’accès aux ressources avant l’exécution du chiffrement.

Parallèlement, il stoppe des services via ControlService en utilisant un code de contrôle correspondant à l’arrêt. Ensuite, il lance des threads de chiffrement et parcourt les lecteurs disponibles, y compris les partages réseau.

Le chiffrement : découpage en blocs et schéma de protection

L’extension ajoutée aux fichiers chiffrés est codée en dur dans le corps du trojan. Dans l’échantillon étudié, elle vaut .03ffc1c4a3da0f02.

Avant de chiffrer chaque fichier, GenieLocker génère deux fichiers auxiliaires :

  • Un fichier verrou : <nom_fichier>.<extension>.03ffc1c4a3da0f02.lock ; il protège contre un double chiffrement et contient notamment le PID courant.
  • Un journal : <extension>.03ffc1c4a3da0f02.journal ; il enregistre des éléments de suivi (dont une somme CRC32) pour vérifier l’intégrité du contenu du journal.

Le découpage par défaut utilise des morceaux de taille 0x1000000 octets. L’argument -p permet de chiffrer un pourcentage spécifique du contenu : le chiffrement se base sur des chunks et positionne les blocs chiffrés selon des choix aléatoires dans le fichier.

Même si le pourcentage est fixé à zéro, le chiffreur chiffre au moins un premier bloc au début du fichier. Pour le chiffrement, GenieLocker emploie le schéma XChaCha20-Poly1305 en mode AEAD, avec une clé et un nonce uniques pour chaque fichier. Il ajoute aussi un footer contenant des éléments nécessaires au déchiffrement futur, ainsi que des métadonnées.

Les clés de fichiers sont protégées avec Curve25519-XSalsa20-Poly1305, à partir d’une clé publique maîtresse intégrée dans le binaire. Les métadonnées suivent une logique similaire, mais avec un nonce différent.

GenieLocker sur ESXi et Linux : simplification et particularités

Comparée à la variante Windows, la version Linux/ESXi du ransomware GenieLocker apparaît plus simple. Elle ne contient pas d’argument secret, de techniques anti-débogage ni de listes d’exclusion telles que décrites côté Windows.

En revanche, l’échantillon analysé inclut des fonctionnalités spécifiques à ESXi, notamment la prise en charge du double-fork (pour détacher complètement le processus) et la possibilité de modifier le fichier de bienvenue /etc/vmware/welcome qui affiche le message du jour.

Dans l’échantillon étudié, le message ESXi est laissé vide. Sur Linux, le comportement ne modifie rien, car l’emplacement du message du jour diffère.

La variante ESXi/Linix propose aussi des options comme un délai de lancement et la configuration du nombre de threads de chiffrement. Les paramètres liés à la cible et au journal existent également, dans une logique comparable à la version Windows.

Chiffrement identique dans l’approche cryptographique

Le chiffrement des fichiers suit une logique identique à celle observée sous Windows : XChaCha20-Poly1305 pour chiffrer le contenu et les métadonnées, et Curve25519-XSalsa20-Poly1305 pour le chiffrement des clés. Autrement dit, même si l’implémentation côté Linux/ESXi est plus légère, le cœur cryptographique reste cohérent.

Où la menace a été observée

D’après les données de télémétrie mentionnées, les détections du ransomware GenieLocker se concentrent très majoritairement sur des endpoints situés dans la Fédération de Russie.

Pour la campagne de mars 2026, le secteur principalement touché est la fabrication, suivie de près par la construction. Les services financiers, le commerce de détail et la technologie apparaissent ensuite dans les secteurs impactés.

Points clés à retenir

Le ransomware GenieLocker représente une montée en gamme : développement interne, variantes adaptées à Windows, Linux et ESXi, et un déploiement s’appuyant sur des outils et services légitimes. L’attaque observée met l’accent sur l’intrusion via une relation partenaire (OpenVPN), la prise de contrôle par des outils de découverte et d’extraction d’identifiants, puis l’exécution du chiffrement à grande échelle.

Enfin, le comportement rapporté — notamment l’absence d’indices d’exfiltration et le non-recours à un double modèle d’extorsion — aide à comprendre la logique de l’acteur derrière cette campagne.

Source: https://securelist.com/genielocker-ransomware-for-windows-linux-and-esxi/120843/