
Premier déchiffreur pour le rançongiciel The Gentlemen — récupère les clés de chiffrement à partir de vidages mémoire de processus en utilisant l'extraction de clé éphémère X25519. 35/35 fichiers déchiffrés. Recherche par Bedrock Safeguard Inc.
La première méthode de déchiffrement publique pour le ransomware The Gentlemen.
The Gentlemen (également connu sous le nom de hastalamuerte) est actuellement l'opération de ransomware-as-a-service (RaaS) la plus active au monde, avec plus de 320 victimes confirmées au premier trimestre 2026. Jusqu'à présent, tous les grands éditeurs de sécurité — Cybereason, Group-IB, Check Point, ASEC, Trend Micro — estimaient que le chiffrement était cryptographiquement incassable. Aucun déchiffreur public n'existait.
Nous l'avons brisé.
The Gentlemen utilise le chiffrement par flux XChaCha20 avec échange de clés ECDH X25519. Chaque fichier est chiffré avec une clé unique dérivée d'une paire de clés éphémères fraîche. Le chiffrement est mathématiquement solide — nous n'avons pas brisé les maths.
Nous avons brisé l'implémentation.
Go ne remet pas à zéro le matériel cryptographique sur le tas après utilisation (CWE-244). Une fois qu'une clé privée X25519 éphémère est générée pour un fichier, elle persiste dans la mémoire du processus au lieu d'être effacée — ainsi un dump du processus vivant récupère les clés pour les fichiers déjà chiffrés, souvent en plusieurs copies laissées par le GC. Le système d'exploitation récupère cette mémoire une fois le processus terminé.
Un dump mémoire du processus vivant, pris pendant ou vers la fin du chiffrement, contient généralement les clés éphémères pour chaque fichier traité jusqu'à ce point — dans notre analyse de 35 fichiers, toutes.
Résultats : 35/35 fichiers déchiffrés avec une précision de 100 %. Les 35 clés récupérées en 0,6 seconde à partir d'un seul dump mémoire.
Si vous avez été victime du ransomware The Gentlemen, vous pourrez peut-être récupérer vos fichiers si une image mémoire du processus du ransomware a été capturée pendant qu'il était en cours d'exécution. La récupération fonctionne en extrayant les clés privées éphémères par fichier de cette image, donc elle est au mieux et peut être partielle — seuls les fichiers dont la clé a déjà été générée et était encore résidente au moment de la capture peuvent être récupérés.
Ce que cela signifie concrètement :
Où une image mémoire utilisable peut exister — chacune n'est utile que si elle a capturé le processus pendant qu'il tournait :
procdump, le Gestionnaire de tâches → "Créer un fichier dump" ou un autre outil forensique pour capturer le processus du ransomware avant de le terminer.C:\ProgramData\Microsoft\Windows\WER\.C:\Windows\Minidump\ et C:\Windows\MEMORY.DMP, si une vérification de bogues s'est produite pendant que le processus tournait (seuls les dumps mémoire complets incluent la mémoire du processus ; les minidumps ne le font généralement pas).C:\hiberfil.sys, si le système a hiberné pendant que le processus du ransomware était actif (il gèle un instantané de la RAM à ce moment-là).Vous ne savez pas si l'un de ces éléments existe pour votre incident ? Contactez-nous à [email protected] et nous vous aiderons à vérifier.
# 1. Installer les dépendances
pip install cryptography
# 2. Extraire les clés publiques éphémères de vos fichiers chiffrés
python extract_keys_from_files.py --input-dir /path/to/encrypted/files --output keys.json
# 3. Rechercher dans le dump mémoire les clés privées correspondantes
python recover_keys.py --dump process_memory.dmp --pubkeys keys.json --output recovered_keys.json
# 4. Déchiffrer vos fichiers
python decrypt.py --keys recovered_keys.json --input-dir /path/to/encrypted/files --output-dir /path/to/recovered
--fast / --superfast / --ultrafast)Le verrouilleur The Gentlemen prend en charge des indicateurs de vitesse qui effectuent un chiffrement partiel sur les fichiers de plus de 1 Mo. Avec --superfast, seulement ~3 % des octets d'un gros fichier sont chiffrés ; les ~97 % restants sont laissés en clair à leur position disque d'origine. Cela est vérifié dans les RE publiées (ASEC, Trend Micro, Cybereason).
Un déchiffrement XChaCha20 intégral sur un fichier partiellement chiffré DOUBLER LA CORRUPTION des régions non chiffrées — appliquer le flux de clé sur les segments en clair les transforme en déchets et détruit les données récupérables.
Pour cette raison, decrypt.py refuse de traiter les fichiers de plus de 1 Mo par défaut. Si vous avez vérifié que le verrouilleur a fonctionné en mode chiffrement intégral (uniquement de petits fichiers, ou une version sans les indicateurs de vitesse), passez --force-large pour ignorer cette restriction.
Pour les victimes du chiffrement partiel, utilisez plutôt des outils de récupération adaptés au format sur les régions non chiffrées :
Bedrock Safeguard effectue activement la rétro-ingénierie de la géométrie décalée des blocs du mode de chiffrement partiel. Lorsque ce travail sera terminé, ce déchiffreur sera mis à jour pour gérer en toute sécurité les segments partiellement chiffrés.
Chiffrement par fichier :
1. Générer 32 octets aléatoires -> clé privée éphémère (crypto/rand.Read)
2. X25519(eph_priv, op_pub) -> secret_partagé (32 octets)
3. XChaCha20(texte_clair, secret_partagé) -> texte chiffré
4. Ajouter à la fin du fichier : --eph--<base64(clé PUBLIQUE éphémère)>--marker--GENTLEMEN
La clé privée éphémère est le secret critique. Elle n'existe que dans la mémoire du processus et n'est jamais écrite sur le disque. Mais l'allocateur de pile de goroutines de Go ne remet pas la mémoire à zéro lorsque les variables sortent de la portée (CWE-244), laissant le matériel clé accessible via la forensique mémoire.
| ID | Description |
|---|---|
| CWE-244 | Nettoyage incorrect de la mémoire du tas avant libération |
| CWE-316 | Stockage en clair d'informations sensibles en mémoire |
public = X25519(candidat, basepoint)secret_partagé = X25519(eph_private, operator_public)| IOC | Valeur |
|---|---|
| Clé publique X25519 de l'opérateur | fcb11717cab989424755a957c1d55361b119de4fdcfecdb2f2e56b15ad801922 |
| Champ | Valeur |
|---|---|
| SHA256 | 3ab9575225e00a83a4ac2b534da5a710bdcf6eb72884944c437b5fbe5c5c9235 |
| Type | PE32+ x64, binaire Go, obscurci par Garble |
| Taille | 2 962 944 octets |
| Première observation | 2026-04-03 |
| Indicateur | Valeur |
|---|---|
| Note de rançon | README-GENTLEMEN.txt |
| Extension chiffrée | Aléatoire par version (ex : .axfsmg) |
| En-tête de fichier | --eph--<base64>--marker--GENTLEMEN |
vssadmin et wmicAdd-MpPreferencegentlemen.bmpLOCKER_BACKGROUND=1--path, --fast, --full, --shares, --silent, --system, -T (délai)Cette recherche a conduit au développement de Bedrock RansomGuard — un service Windows open-source qui détecte automatiquement le chiffrement ransomware et capture la mémoire du processus avant que les clés ne soient détruites. RansomGuard fonctionne contre toute famille de ransomware, pas seulement The Gentlemen.
Ce travail étend la récupération de clé WannaCry par Adrien Guinet (2017) aux ransomwares modernes basés sur Go utilisant la cryptographie à courbe elliptique. À notre connaissance, il s'agit de la première application publiée de récupération de clé éphémère X25519 à partir de forensique mémoire contre une famille de ransomware.
Ce projet est sous licence Business Source License 1.1 — libre pour toute utilisation non commerciale, utilisation commerciale interne, réponse aux incidents et recherche académique.
Bedrock Safeguard Inc. est une firme canadienne de renseignement en cybersécurité spécialisée dans l'analyse d'infrastructure d'acteurs de menace, la rétro-ingénierie de logiciels malveillants et la forensique numérique. Cette recherche a été menée dans le cadre de notre mission de protéger les organisations et les individus canadiens contre les menaces de ransomware.
Si vous êtes victime du ransomware The Gentlemen et avez besoin d'aide pour la récupération de clés, contactez-nous à [email protected].
| ID TOX | 88984846080D639C9A4EC394E53BA616D550B2B3AD691942EA2CCD33AA5B9340FD1A8FF40E9A |
| Email de négociation | [email protected] |
| Site de fuite (.onion) | tezwsse5czllksjb7cwp65rvnk4oobmzti2znn42i43bjdfd2prqqkad.onion |