
Primo decryptor in assoluto per il ransomware The Gentlemen — recupera le chiavi di crittografia dai dump della memoria di processo tramite estrazione della chiave effimera X25519. 35/35 file decifrati. Ricerca di Bedrock Safeguard Inc.
Il primo metodo di decifratura disponibile pubblicamente per il ransomware The Gentlemen.
The Gentlemen (noto anche come hastalamuerte) è attualmente l'operazione ransomware-as-a-service (RaaS) più attiva a livello globale, con oltre 320 vittime confermate a partire dal primo trimestre 2026. Fino ad ora, ogni grande vendor di sicurezza — Cybereason, Group-IB, Check Point, ASEC, Trend Micro — ha valutato la crittografia come irrimediabile dal punto di vista crittografico. Non esisteva alcun decriptatore pubblico.
Noi l'abbiamo infranto.
The Gentlemen utilizza la crittografia a flusso XChaCha20 con scambio di chiavi X25519 ECDH. Ogni file è crittografato con una chiave unica derivata da una coppia di chiavi effimere fresche. La crittografia è matematicamente solida — non abbiamo infranto la matematica.
Abbiamo infranto l'implementazione.
Go non azzera il materiale crittografico delle chiavi nell'heap dopo l'uso (CWE-244). Una volta generata una chiave privata X25519 effimera per un file, questa rimane nella memoria del processo invece di essere cancellata — quindi un dump del processo in esecuzione recupera le chiavi per i file già crittografati, spesso in più copie lasciate dal garbage collector. Il sistema operativo recupera questa memoria quando il processo termina.
Un dump di memoria del processo in esecuzione, effettuato durante o verso la fine della crittografia, contiene tipicamente le chiavi effimere per ogni file elaborato fino a quel punto — nella nostra analisi di 35 file, tutte.
Risultati: 35/35 file decifrati con accuratezza al 100%. Tutte le 35 chiavi recuperate in 0,6 secondi da un singolo dump di memoria.
Se sei stato colpito dal ransomware The Gentlemen, potresti essere in grado di recuperare i file se è stata acquisita un'immagine di memoria del processo ransomware mentre era in esecuzione. Il recupero funziona estraendo le chiavi private effimere per file da quell'immagine, quindi è un tentativo e può essere parziale — solo i file la cui chiave era già stata generata ed era ancora residente al momento dell'acquisizione possono essere recuperati.
Cosa significa in pratica:
Dove può esistere un'immagine di memoria utilizzabile — ognuna aiuta solo se ha acquisito il processo mentre era in esecuzione:
procdump, Task Manager → "Crea file dump" o un altro strumento forense per acquisire il processo ransomware prima di terminarlo.C:\ProgramData\Microsoft\Windows\WER\.C:\Windows\Minidump\ e C:\Windows\MEMORY.DMP, se si è verificato un bugcheck mentre il processo era in esecuzione (solo i dump di memoria completi includono la memoria del processo; i minidump di solito no).C:\hiberfil.sys, se il sistema è stato ibernato mentre il processo ransomware era attivo (congela un'istantanea della RAM in quel momento).Non sei sicuro che qualcuno di questi esista per il tuo incidente? Contattaci a [email protected] e possiamo aiutarti a verificare.
# 1. Install dependencies
pip install cryptography
# 2. Extract ephemeral public keys from your encrypted files
python extract_keys_from_files.py --input-dir /path/to/encrypted/files --output keys.json
# 3. Search the memory dump for matching private keys
python recover_keys.py --dump process_memory.dmp --pubkeys keys.json --output recovered_keys.json
# 4. Decrypt your files
python decrypt.py --keys recovered_keys.json --input-dir /path/to/encrypted/files --output-dir /path/to/recovered
--fast / --superfast / --ultrafast)Il locker The Gentlemen supporta flag di velocità che eseguono una crittografia parziale su file più grandi di 1 MB. Con --superfast, solo circa il 3% dei byte di un file grande viene crittografato; il restante ~97% rimane in chiaro nella posizione originale sul disco. Questo è verificato in pubblicazioni RE (ASEC, Trend Micro, Cybereason).
La decifratura XChaCha20 completa su un file con crittografia parziale CORROMPEREBBE DOPPIAMENTE le regioni non crittografate — applicare il keystream XOR sui segmenti in chiaro li trasforma in spazzatura e distrugge i dati recuperabili.
Per questo motivo, decrypt.py si rifiuta di elaborare file più grandi di 1 MB per impostazione predefinita. Se hai verificato che il locker è stato eseguito in modalità di crittografia completa (solo file piccoli, o una build senza i flag di velocità), usa --force-large per ignorare.
Per le vittime di crittografia parziale, usa invece strumenti di recupero che riconoscono il formato sulle regioni non crittografate:
Bedrock Safeguard sta attualmente facendo reverse engineering della geometria degli offset dei chunk della modalità di crittografia parziale. Quando quel lavoro sarà completato, questo decriptatore verrà aggiornato per gestire in sicurezza i segmenti parzialmente crittografati.
Per-file encryption:
1. Generate 32 random bytes -> ephemeral private key (crypto/rand.Read)
2. X25519(ephemeral_priv, operator_pub) -> shared_secret (32 bytes)
3. XChaCha20(plaintext, shared_secret) -> ciphertext
4. Append to file: --eph--<base64(ephemeral_PUBLIC_key)>--marRker--GENTLEMEN
La chiave privata effimera è il segreto critico. Esiste solo nella memoria del processo e non viene mai scritta su disco. Ma l'allocatore dello stack delle goroutine di Go non azzera la memoria quando le variabili escono dallo scope (CWE-244), lasciando il materiale chiave accessibile tramite la memoria forense.
| ID | Descrizione |
|---|---|
| CWE-244 | Cancellazione impropria della memoria heap prima del rilascio |
| CWE-316 | Archiviazione di informazioni sensibili in chiaro in memoria |
public = X25519(candidate, basepoint)shared_secret = X25519(ephemeral_private, operator_public)| IOC | Valore |
|---|---|
| Chiave pubblica X25519 dell'operatore | fcb11717cab989424755a957c1d55361b119de4fdcfecdb2f2e56b15ad801922 |
| Campo | Valore |
|---|---|
| SHA256 | 3ab9575225e00a83a4ac2b534da5a710bdcf6eb72884944c437b5fbe5c5c9235 |
| Tipo | PE32+ x64, binario Go, offuscato con Garble |
| Dimensione | 2,962,944 byte |
| Prima apparizione | 2026-04-03 |
| Indicatore | Valore |
|---|---|
| Nota di riscatto | README-GENTLEMEN.txt |
| Estensione crittografata | Randomizzata per build (es., .axfsmg) |
| Footer del file | --eph--<base64>--marker--GENTLEMEN |
vssadmin e wmicAdd-MpPreferencegentlemen.bmpLOCKER_BACKGROUND=1--path, --fast, --full, --shares, --silent, --system, -T (ritardo)Questa ricerca ha portato allo sviluppo di Bedrock RansomGuard — un servizio Windows open-source che rileva automaticamente la crittografia ransomware e acquisisce la memoria del processo prima che le chiavi vengano distrutte. RansomGuard funziona contro qualsiasi famiglia di ransomware, non solo The Gentlemen.
Questo lavoro estende il recupero della chiave WannaCry di Adrien Guinet (2017) al ransomware moderno basato su Go che utilizza la crittografia a curve ellittiche. A nostra conoscenza, questa è la prima applicazione pubblicata del recupero della chiave effimera X25519 dalla memoria forense contro qualsiasi famiglia di ransomware.
Questo progetto è concesso in licenza con Business Source License 1.1 — gratuito per tutti gli usi non commerciali, uso aziendale interno, risposta agli incidenti e ricerca accademica.
Bedrock Safeguard Inc. è un'azienda canadese di intelligence per la cybersicurezza specializzata in analisi dell'infrastruttura degli attori delle minacce, reverse engineering di malware e digital forensics. Questa ricerca è stata condotta come parte della nostra missione di proteggere organizzazioni e individui canadesi dalle minacce ransomware.
Se sei una vittima del ransomware The Gentlemen e hai bisogno di assistenza per il recupero delle chiavi, contattaci a [email protected].
| TOX ID | 88984846080D639C9A4EC394E53BA616D550B2B3AD691942EA2CCD33AA5B9340FD1A8FF40E9A |
| Email di negoziazione | [email protected] |
| Sito di leak (.onion) | tezwsse5czllksjb7cwp65rvnk4oobmzti2znn42i43bjdfd2prqqkad.onion |