
Primeiro decryptor para o ransomware The Gentlemen — recupera chaves de criptografia a partir de dumps de memória de processos usando extração de chave efêmera X25519. 35/35 arquivos descriptografados. Pesquisa por Bedrock Safeguard Inc.
O primeiro método de descriptografia disponível publicamente para o ransomware The Gentlemen.
O The Gentlemen (também conhecido como hastalamuerte) é atualmente a operação de ransomware-como-serviço (RaaS) mais ativa globalmente, com 320+ vítimas confirmadas até o primeiro trimestre de 2026. Até agora, todos os principais fornecedores de segurança — Cybereason, Group-IB, Check Point, ASEC, Trend Micro — avaliaram a criptografia como indestrutível criptograficamente. Nenhum descriptografador público existia.
Nós o quebramos.
O The Gentlemen usa criptografia de fluxo XChaCha20 com troca de chaves ECDH X25519. Cada arquivo é criptografado com uma chave única derivada de um par de chaves efêmeras novas. A criptografia é matematicamente sólida — não quebramos a matemática.
Quebramos a implementação.
Go não zera o material de chave criptográfica no heap após o uso (CWE-244). Uma vez que uma chave privada efêmera X25519 é gerada para um arquivo, ela permanece na memória do processo em vez de ser apagada — portanto, um dump do processo vivo recupera as chaves para arquivos já criptografados, muitas vezes em várias cópias deixadas pelo GC. O SO recupera essa memória quando o processo termina.
Um dump de memória do processo vivo, capturado durante ou perto do final da criptografia, normalmente contém as chaves efêmeras para cada arquivo processado até aquele momento — em nossa análise de 35 arquivos, todos eles.
Resultados: 35/35 arquivos descriptografados com 100% de precisão. Todas as 35 chaves recuperadas em 0,6 segundos a partir de um único dump de memória.
Se você foi atingido pelo ransomware The Gentlemen, pode ser capaz de recuperar arquivos se uma imagem de memória do processo do ransomware foi capturada enquanto ele estava em execução. A recuperação funciona extraindo as chaves privadas efêmeras por arquivo dessa imagem, portanto é melhor esforço e pode ser parcial — apenas arquivos cuja chave já havia sido gerada e ainda estava residente no momento da captura podem ser recuperados.
O que isso significa na prática:
Onde uma imagem de memória utilizável pode existir — cada uma só ajuda se capturou o processo enquanto estava em execução:
procdump, Gerenciador de Tarefas → "Criar arquivo de dump", ou outra ferramenta forense para capturar o processo do ransomware antes de terminá-lo.C:\ProgramData\Microsoft\Windows\WER\.C:\Windows\Minidump\ e C:\Windows\MEMORY.DMP, se uma verificação de bug ocorreu enquanto o processo estava em execução (apenas dumps de memória completos incluem memória de processo; minidumps geralmente não).C:\hiberfil.sys, se o sistema hibernou enquanto o processo do ransomware estava ativo (ele congela um snapshot da RAM naquele momento).Não tem certeza se algum deles existe para o seu incidente? Entre em contato conosco em [email protected] e podemos ajudá-lo a verificar.
# 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)O bloqueador The Gentlemen suporta flags de velocidade que realizam criptografia parcial em arquivos maiores que 1 MB. Sob --superfast, apenas ~3% dos bytes em um arquivo grande são criptografados; os ~97% restantes permanecem como texto simples na posição original do disco. Isso é verificado em publicações de RE (ASEC, Trend Micro, Cybereason).
A descriptografia XChaCha20 de corpo inteiro em um arquivo de criptografia parcial CORROMPERIA DUPLICAMENTE as regiões não criptografadas — aplicar XOR de keystream sobre os segmentos de texto simples os transforma em lixo e destrói dados recuperáveis.
Por esta razão, decrypt.py se recusa a processar arquivos maiores que 1 MB por padrão. Se você verificou que o bloqueador funcionou no modo de criptografia completa (apenas arquivos pequenos, ou uma construção sem as flags de velocidade), passe --force-large para substituir.
Para vítimas de criptografia parcial, use ferramentas de recuperação cientes de formato nas regiões não criptografadas:
A Bedrock Safeguard está ativamente realizando engenharia reversa da geometria de deslocamento de bloco do modo de criptografia parcial. Quando esse trabalho for concluído, este descriptografador será atualizado para lidar com segurança com os segmentos parcialmente criptografados.
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)>--marker--GENTLEMEN
A chave privada efêmera é o segredo crítico. Ela existe apenas na memória do processo e nunca é gravada em disco. Mas o alocador de pilha de goroutines do Go não zera a memória quando as variáveis saem de escopo (CWE-244), deixando o material da chave acessível via forense de memória.
| ID | Descrição |
|---|---|
| CWE-244 | Limpeza Incorreta da Memória Heap Antes da Liberação |
| CWE-316 | Armazenamento em Texto Claro de Informações Sensíveis na Memória |
public = X25519(candidate, basepoint)shared_secret = X25519(ephemeral_private, operator_public)| IOC | Valor |
|---|---|
| Chave Pública do Operador X25519 | fcb11717cab989424755a957c1d55361b119de4fdcfecdb2f2e56b15ad801922 |
| Campo | Valor |
|---|---|
| SHA256 | 3ab9575225e00a83a4ac2b534da5a710bdcf6eb72884944c437b5fbe5c5c9235 |
| Tipo | PE32+ x64, Go binary, Garble-obfuscated |
| Tamanho | 2,962,944 bytes |
| Primeira Visualização | 2026-04-03 |
| Indicador | Valor |
|---|---|
| Nota de Resgate | README-GENTLEMEN.txt |
| Extensão Criptografada | Randomizada por construção (ex: .axfsmg) |
| Rodapé do Arquivo | --eph--<base64>--marker--GENTLEMEN |
vssadmin e wmicAdd-MpPreferencegentlemen.bmpLOCKER_BACKGROUND=1--path, --fast, --full, --shares, --silent, --system, -T (atraso)Esta pesquisa levou ao desenvolvimento do Bedrock RansomGuard — um serviço Windows de código aberto que detecta automaticamente a criptografia de ransomware e captura a memória do processo antes que as chaves sejam destruídas. O RansomGuard funciona contra qualquer família de ransomware, não apenas o The Gentlemen.
Este trabalho estende a recuperação de chave do WannaCry de Adrien Guinet (2017) para ransomware moderno baseado em Go usando criptografia de curva elíptica. Até onde sabemos, esta é a primeira aplicação publicada de recuperação de chave efêmera X25519 a partir de forense de memória contra qualquer família de ransomware.
Este projeto está licenciado sob a Business Source License 1.1 — gratuito para todos os usos não comerciais, uso interno empresarial, resposta a incidentes e pesquisa acadêmica.
Bedrock Safeguard Inc. é uma empresa canadense de inteligência em segurança cibernética especializada em análise de infraestrutura de atores de ameaças, engenharia reversa de malware e forense digital. Esta pesquisa foi conduzida como parte de nossa missão de proteger organizações e indivíduos canadenses contra ameaças de ransomware.
Se você é uma vítima do ransomware The Gentlemen e precisa de assistência com a recuperação de chave, entre em contato conosco em [email protected].
| ID TOX | 88984846080D639C9A4EC394E53BA616D550B2B3AD691942EA2CCD33AA5B9340FD1A8FF40E9A |
| Email de Negociação | [email protected] |
| Site de Vazamento (.onion) | tezwsse5czllksjb7cwp65rvnk4oobmzti2znn42i43bjdfd2prqqkad.onion |