Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gentlemen-decryptor — 首款针对 The Gentlemen 勒索软件的解密器——通过提取 X25519 临时密钥,从进程内存转储中恢复加密密钥。35/35 个文件已解密。由 Bedrock Safeguard Inc. 研究。 | Kitploit
工具/GitHubGitHub/bedrock-safeguard/gentlemen-decryptor
内存取证漏洞分析漏洞利用逆向工程取证分析恶意软件分析数字取证密码学学习与教育事件响应

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubbedrock-safeguard/gentlemen-decryptor

gentlemen-decryptor

首款针对 The Gentlemen 勒索软件的解密器——通过提取 X25519 临时密钥,从进程内存转储中恢复加密密钥。35/35 个文件已解密。由 Bedrock Safeguard Inc. 研究。

查看仓库
30733个月前Kitploit 审核通过

The Gentlemen 勒索软件解密器

首个公开可用的 The Gentlemen 勒索软件解密方法。

The Gentlemen(又名 hastalamuerte)目前是全球最活跃的勒索软件即服务(RaaS)行动,截至 2026 年第一季度已有 320+ 确认受害者。此前,所有主要安全厂商——Cybereason、Group-IB、Check Point、ASEC、Trend Micro——均评估其加密在密码学上无法破解。不存在公开的解密器。

我们打破了它。


工作原理

The Gentlemen 使用 XChaCha20 流加密配合 X25519 ECDH 密钥交换。每个文件使用从新临时密钥对派生的唯一密钥加密。加密在数学上可靠——我们并未破解数学原理。

我们破解了实现。

Go 语言在使用后不会将堆上的加密密钥材料归零(CWE-244)。一旦为某个文件生成了临时 X25519 私钥,它就会残留在进程内存中而不会被清除——因此对正在运行的进程进行转储,可以恢复已加密文件的密钥,而且往往存在多个 GC 遗留副本。进程退出后,操作系统会回收这部分内存。

对正在运行的进程进行内存转储(在加密期间或接近结束时获取),通常包含截至该时刻已处理的所有文件的临时密钥——在我们的 35 个文件分析中,全部成功恢复。

结果:35/35 个文件以 100% 准确率解密。从单个内存转储中,0.6 秒内恢复所有 35 个密钥。


给受害者的说明

如果您遭受了 The Gentlemen 勒索软件攻击,若勒索软件进程运行时捕获了其内存映像,则有可能恢复文件。恢复过程通过从该映像中提取每个文件的临时私钥来实现,因此是尽力而为且可能不完整——只有那些密钥已生成且在捕获时刻仍驻留内存的文件才能被恢复。

具体含义如下:

  • 每个文件的密钥在该文件被加密的时刻生成。 攻击早期捕获的转储仅包含截至该时刻已处理文件的密钥;执行接近结束时捕获的转储提供最广的覆盖范围。
  • 密钥存活在运行进程的内存中。 Go 语言在进程运行期间不会将此类密钥材料归零(CWE-244),因此对活动进程进行转储通常会得到已加密文件的密钥——通常全部。
  • 进程退出后密钥很快丢失。 一旦勒索软件进程终止,操作系统回收其内存,密钥迅速消失。只有反映进程存活期间状态的内存映像才有帮助——常规磁盘映像或机器重启后捕获的 RAM 快照几乎肯定不包含它们。
  • 没有主密钥或万能密钥。 操作者的私钥从未出现在受害者系统上。恢复完全依赖于每个文件的密钥物理存在于您的内存映像中;若无此类映像,该工具无法恢复这些文件。

可能存在可用内存映像的来源——每种来源只有在其捕获了进程运行期间的状态时才有帮助:

  1. EDR/XDR 解决方案——CrowdStrike、SentinelOne、Carbon Black、Microsoft Defender for Endpoint 等可能在检测到威胁时捕获进程内存。请检查您的 EDR 控制台中该事件的内存捕获或取证快照。
  2. 事件响应——如果您的 IR 团队在终止勒索软件进程之前使用 procdump、任务管理器→“创建转储文件”或其他取证工具捕获了进程。
  3. Windows 错误报告——如果勒索软件崩溃,进程转储可能存在于 C:\ProgramData\Microsoft\Windows\WER\。
  4. 内核崩溃转储——C:\Windows\Minidump\ 和 C:\Windows\MEMORY.DMP,如果进程运行时发生了错误检查(只有完整内存转储包含进程内存;小型转储通常不包含)。
  5. 完整 RAM 捕获——在机器仍在运行时对系统 RAM 进行的取证映像(WinPmem、Magnet RAM Capture、FTK Imager)。
  6. 休眠文件——C:\hiberfil.sys,如果系统在勒索软件进程活跃时休眠(此时会冻结该时刻的 RAM 快照)。

不确定您的攻击事件中是否存在这些来源?请联系我们 [email protected],我们可以帮助您检查。

恢复步骤

root@kitploit:~
# 1. 安装依赖
pip install cryptography

# 2. 从加密文件中提取临时公钥
python extract_keys_from_files.py --input-dir /path/to/encrypted/files --output keys.json

# 3. 在内存转储中搜索匹配的私钥
python recover_keys.py --dump process_memory.dmp --pubkeys keys.json --output recovered_keys.json

# 4. 解密您的文件
python decrypt.py --keys recovered_keys.json --input-dir /path/to/encrypted/files --output-dir /path/to/recovered

⚠️ 部分加密模式(--fast / --superfast / --ultrafast)

The Gentlemen 加密器支持速度标志,对大于 1 MB 的文件执行部分加密。在 --superfast 模式下,大型文件中仅约 3% 的字节被加密;其余约 97% 以明文形式保留在原始磁盘位置。此特性已在多个发布的分析(ASEC、Trend Micro、Cybereason)中得到验证。

对部分加密文件执行全局 XChaCha20 解密会导致未加密区域被双重破坏——用密钥流对明文段进行异或运算会将其变成垃圾,破坏可恢复数据。

因此,decrypt.py 默认拒绝处理大于 1 MB 的文件。如果您确认加密器以全加密模式运行(仅小文件,或未使用速度标志的构建版本),请传递 --force-large 以覆盖此限制。

对于部分加密受害者,请对未加密区域使用格式感知恢复工具:

  • CyberArk White Phoenix —— Office 文档、PDF (https://github.com/cyberark/White-Phoenix)
  • PhotoRec —— 通用媒体文件雕刻
  • 特定格式雕刻器 —— 针对您的文件类型(SQLite、QuickBooks 等)

Bedrock Safeguard 正在积极逆向工程部分加密模式的数据块偏移几何结构。这项工作完成后,此解密器将更新以安全处理部分加密段。


技术分析

加密方案

root@kitploit:~
每个文件加密:
  1. 生成 32 个随机字节                       -> 临时私钥(crypto/rand.Read)
  2. X25519(临时私钥, 操作者公钥)              -> 共享密钥(32 字节)
  3. XChaCha20(明文, 共享密钥)                 -> 密文
  4. 追加到文件末尾:--eph--<base64(临时公钥)>--marker--GENTLEMEN

临时私钥是关键秘密。它仅存在于进程内存中,从未写入磁盘。但 Go 语言的协程栈分配器在变量超出作用域时不会将内存归零(CWE-244),因此通过内存取证可以访问该密钥材料。

漏洞分类

ID描述
CWE-244释放前对堆内存清除不当
CWE-316内存中明文的敏感信息存储

密钥恢复方法

  1. 在活跃加密期间捕获完整的进程内存转储
  2. 在 8 字节对齐的偏移处扫描 32 字节的值
  3. 对每个候选值,计算 公钥 = X25519(候选值, 基点)
  4. 与从加密文件尾部提取的临时公钥进行比对
  5. 匹配成功 = 该文件的私钥已恢复
  6. 派生解密密钥:共享密钥 = X25519(临时私钥, 操作者公钥)
  7. 使用共享密钥作为密钥,通过 XChaCha20 解密

入侵指标

操作者基础设施

IOC值
操作者 X25519 公钥fcb11717cab989424755a957c1d55361b119de4fdcfecdb2f2e56b15ad801922

分析样本

字段值
SHA2563ab9575225e00a83a4ac2b534da5a710bdcf6eb72884944c437b5fbe5c5c9235
类型PE32+ x64, Go 二进制, Garble 混淆
大小2,962,944 字节
首次发现2026-04-03

文件指标

指标值
勒索信README-GENTLEMEN.txt
加密文件扩展名每次构建随机化(例如 .axfsmg)
文件尾部--eph--<base64>--marker--GENTLEMEN

行为指标

  • 通过 vssadmin 和 wmic 删除卷影副本
  • 通过 Add-MpPreference 添加 Windows Defender 排除项
  • 删除 Windows Prefetch 文件
  • 加密前终止数据库、备份和安全服务
  • 将桌面壁纸更改为 gentlemen.bmp
  • 以 LOCKER_BACKGROUND=1 环境变量生成子进程
  • CLI 标志:--path, --fast, --full, --shares, --silent, --system, -T(延迟)

主动防御

本研究成果促成了 Bedrock RansomGuard 的开发——一个开源 Windows 服务,可自动检测勒索软件加密并在密钥被销毁前捕获进程内存。RansomGuard 适用于任何勒索软件家族,不仅限于 The Gentlemen。


先前工作

本工作扩展了 Adrien Guinet 的 WannaCry 密钥恢复(2017),应用于使用椭圆曲线密码学的现代 Go 语言勒索软件。据我们所知,这是首次公开将 X25519 临时密钥恢复从内存取证应用于任意勒索软件家族。


负责任的披露

  • 已通知加拿大网络安全中心(CCCS)和皇家骑警国家网络犯罪协调中心(RCMP NC3)。
  • 本出版物仅包含防御性信息。不包含任何受害者数据。
  • 此处发布的加密方案细节操作者已知——公布这些信息不会提供任何攻击优势。

许可证

本项目采用 Business Source License 1.1 许可——对所有非商业用途、内部业务用途、事件响应和学术研究免费。


关于我们

Bedrock Safeguard Inc. 是一家加拿大网络安全情报公司,专注于威胁行为者基础设施分析、恶意软件逆向工程和数字取证。本研究是我们保护加拿大组织和个人免受勒索软件威胁使命的一部分。

bedrocksafe.ca


如果您是 The Gentlemen 勒索软件的受害者并需要密钥恢复协助,请联系我们 [email protected]。

下载工具
TOX ID
88984846080D639C9A4EC394E53BA616D550B2B3AD691942EA2CCD33AA5B9340FD1A8FF40E9A
协商邮箱[email protected]
泄露站点 (.onion)tezwsse5czllksjb7cwp65rvnk4oobmzti2znn42i43bjdfd2prqqkad.onion