
写在前面
本工具由Solar应急响应团队-「G0fl1er」提供。
近期,.wman后缀的勒索病毒在多起企业安全事件中频繁出现,该变种隶属于Rast Gang勒索家族。早在2025年,Solar应急响应团队就已捕获该家族样本并完成初步分析。2026年5月,我们处置了一起覆盖15台服务器的wman大规模加密事件,并将完整的应急响应与溯源恢复过程整理成《【成功案例】wman勒索病毒近期再度活跃,一次覆盖15台服务器的完整应急响应与溯源恢复实录 》发布,家族画像与现场处置细节在该文中已有完整记录,本文不再重复展开。
当时文章中提到,我们已掌握该病毒的底层加密缺陷,并跑通了完整的数据恢复路径。经过这段时间的批量验证与工程化整理,今天我们正式将解密器与完整的解密思路公开。目前针对 .wman、.peng 后缀的勒索病毒,Solar应急响应团队已支持无损解密恢复,工具已上传至Solar应急响应平台,获取与使用方法见本文第五、六节。
提取样本后,我们在Solar应急响应平台(应急响应.com)进行了检索与交叉比对,确认该变种隶属于Rast Gang勒索家族。

Solar在线病毒检测平台对Rast Gang家族的收录信息
本文将从技术分析视角,把该病毒的运行机制、加密原理、漏洞成因做一次完整梳理,公开核心解密思路,并给出图形化解密工具的严谨使用方法。可以直接复现思路完成恢复。
一、恶意文件基础信息与加密行为特征
1.1 样本基础信息
本次分析样本为 manager.exe,基于i386架构的32位Windows程序,大小约788KB,捕获分析时间为2026年5月15日,基础信息如下。

思而听沙箱静态分析详情,文件编译时间为2025年12月1日,架构i386,UPX1区段熵值为8,疑似加壳
1.2 文件结构篡改特征
被加密后的文件,命名格式会被修改为 原始文件名+.[[13位Device ID]].[[黑客邮箱]].wman。通过十六进制查看工具对加密文件进行底层分析,可以发现勒索软件在文件尾部附加了一段特定的数据结构。

加密文件底层的物理结构特征,尾部附加了加密参数
我们使用测试文件 sierting.txt 做了加密验证,加密前后文件内容状态如下。

加密测试文件sierting.txt内容截图

加密测试文件sierting.txt内容截图(加密后)
1.3 勒索信与加密记录文件
文件加密完成后,程序会在各个目录释放名为 DECRYPTION_INFORMATION.html 的勒索信,同时替换桌面壁纸。勒索信中要求受害者发送邮件至 yatesnet@cock.li,并附带生成的设备标识符(Device ID)进行沟通,同时声称可免费解密两个1MB以内的小文件作为"信誉证明",并恐吓受害者不要自行修改加密文件。

病毒运行后被篡改的系统桌面勒索壁纸
除勒索信外,加密器还会生成一份以Device ID命名的加密记录文件(如 vKXGVWCpRaQ1F-info-system),内容包含Device ID、系统版本、主机名、CPU数量、内存与磁盘信息。对Device ID进行成分分析可以发现,其由8个随机字节与5个固定字节(RaQ1F)组成,合计13位,与加密文件名中的标识符一致。
Device ID: vKXGVWCpRaQ1F
System OS: Windows 10 (19045)
System HOST: DESKTOP-7I31ROI
Count CPUs: 2
Total memory: 2.15 GB
Disk: C:\, 31.14 GB / 63.71 GB.
二、加密原理深度解析
2.1 混合加密体系
从算法选型来看,wman采用了RSA与ChaCha20_Poly1305相结合的混合加密体系。RSA为非对称加密算法,程序内部硬编码了一把2048位的RSA公钥,用于保护文件加密密钥。ChaCha20_Poly1305则负责执行实际的文件数据加密。
硬编码在程序中的RSA公钥如下:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw7l5sAHbI/ZEzS6eEEtZ
Bk5zWDKsn9mZ460U48sImsADXkYYSsGHm2sYmTotlBi+2sUK0a2NJucwztnxfKU4
ptFCnbVX7YNBSWKPL+E30YMgGS8377by+4BJCzbKhBRMTqjIT0VH8F094Hng/1a2
MqFyFztuThy4LDZDlYS2ynPyy95iDnuvMy9N0wkmWV5ATDKtQrdH2q+t0XtH/CqS
gFw2L6O0u7wbc4rFVId0RExIXGJsp4fHXtHesJom4XV1l+Z3onvVNLyJcPTZUysK
7/yB3SrJzAL0XxfQkysDCgdafbV4oEXGuDmANfrhpQv5cLIwZgZCLbbW7h9wgHDk
9QIDAQAB
-----END PUBLIC KEY-----
文件加密所需的Key与Nonce均由程序在运行时随机生成。Key是32字节的随机数,Nonce是12字节的随机数,两者都由Produce_Random_Data函数产出。该函数依赖init_RandomPool函数初始化出的随机池,而随机池的底层随机源是微软密码学API BCryptGenRandom。
2.2 核心加密函数调用链
对样本进行反汇编分析后,我们梳理出程序从入口到文件加密的完整函数调用链。

勒索软件核心加密逻辑的函数调用链
整个加密过程可以拆分为四个关键函数。sub_4017B8是模式处理入口,sub_41F0AB负责密钥生成,sub_414DB0负责密钥初始化,sub_416E4E负责具体的文件加密。下面逐一说明。
2.3 密钥生成(sub_41F0AB)
密钥生成分两个阶段。程序首先调用sub_42EA27函数,以初始化TLS的方式生成一个随机池,然后再调用sub_4234CC函数,根据传入参数生成具体的随机数据。

sub_41F0AB密钥生成函数伪代码
继续向下追踪可以发现,随机数据实际由sub_42ED59函数中的BCryptGenRandom和SystemFunction036两个系统API产生。也就是说,密钥的随机性本身没有问题,密码学API的调用是规范的。

sub_42ED59函数调用BCryptGenRandom与SystemFunction036生成随机数据
2.4 密钥初始化与文件加密(sub_414DB0 / sub_416E4E)
密钥生成完毕后,程序还要再经历一次模式选择、线程分配、目录扫描以及后缀和目录过滤,才会执行密钥初始化。初始化完成后,分配好的加密上下文会作为参数传入sub_416E4E加密函数,正式开始加密文件。

sub_414DB0密钥初始化函数伪代码

sub_416E4E文件加密函数伪代码,各加密线程均从同一上下文中提取密钥参数
2.5 加密文件结构
结合底层分析,加密后的文件结构可以划分为三部分。
[0 : 0x80000) ChaCha20 XOR 加密区
[0x80000 : original_size) 原始明文,未加密
[original_size : EOF) tail_blob1 || tail_blob2 || marker
文件头部前512KB(0x80000字节)为加密区,超出部分保持原始明文状态,文件尾部则被附加了一段加密参数数据,当前样本的这部分附加数据(tail)长度默认为521字节。这一结构是后续设计解密方案的重要依据。
三、深度逆向:定位核心加密漏洞
单从算法选型看,RSA保护密钥、ChaCha20_Poly1305加密文件,这套组合在密码学层面没有明显短板。正常情况下,没有攻击者手里的RSA私钥,解密就无法完成。但真正的突破口往往藏在代码实现细节里。我们对样本的核心加密流程进行反汇编与伪代码追踪后,梳理出该病毒的完整加密流程,并找到了三处致命的实现缺陷。

wman勒索病毒加密流程梳理
3.1 破局点一,统一生成的全局密钥
sub_4017B8是病毒的第一个模式处理入口。与该家族上一个S.V.H版本类似,加密所需的密钥会在这里统一生成,区别只在于旧版本是在加密的大函数中生成,而wman是在模式处理的入口处生成。

sub_4017B8模式处理入口伪代码
问题的关键在于,这段密钥生成代码位于文件加密的主循环之外。这意味着当前运行批次生成的这组Key和Nonce,会被作为一个全局上下文固定下来,之后所有文件的加密都将复用它。

Key与Nonce生成后作为全局上下文被固定下来
3.2 破局点二,严重的流密码重用
分析深入到核心的文件加密函数sub_416E4E后,漏洞得到了实锤。伪代码清晰显示,所有文件加密线程在执行chacha20_block_64bytes操作时,都是直接从同一个全局上下文ctx中提取chacha20_key和chacha20_nonce,且代码中没有执行Poly1305的完整性校验(Tag验证)逻辑。

各加密线程直接从同一个全局上下文中提取密钥参数,导致流密钥重用
ChaCha20是典型的流密码算法,其安全性极度依赖Key和Nonce的唯一性。当Key和Nonce固定不变时,算法生成的伪随机密钥流是完全相同的。也就是说,该病毒在加密服务器上的所有文件时,使用的是同一条密钥流。两个不同的明文被同一条密钥流加密,就构成了经典的流密码重用漏洞。
3.3 破局点三,追求速度的截断加密
此外,对该变种以往版本加密逻辑的分析证实,Rast Gang家族的Wman变种为了追求加密速度,对大文件采用了截断加密策略,最多只加密文件头部的512KB数据,超出部分保留原始明文状态,并且加密算法也从AES改为了ChaCha20_Poly1305。
三处缺陷叠加在一起,结论就很清晰了。所有文件的前512KB数据,都是被同一条密钥流异或加密的,且加密区之后还保留着未被触碰的原始明文。
四、利用已知明文攻击实现解密
综合以上三处底层缺陷,破解方案水到渠成,即已知明文攻击。这也是本文公开的核心解密思路。
由于所有文件都使用相同的前512KB密钥流进行异或运算,其数学逻辑如下。
明文 ⊕ 密钥流 = 密文 同理可推导,明文 ⊕ 密文 = 密钥流
实际的解密落地方案分为五步。
在受害服务器上,寻找任意一个大于512KB的已被加密文件,例如某个常规的.dll运行库、.exe安装包,或者业务系统中自带的静态图片。 在干净的系统或官方渠道,下载并提取一份与该文件内容完全一致的原始未加密文件。 将这两个文件输入解密引擎,对前512KB数据进行按位异或计算。 计算得出的结果,就是这台机器当次加密所使用的、完整且唯一的512KB核心密钥流。 提取出这512KB密钥流后,将其与服务器上所有其他被加密文件的头部进行反向异或,即可完成全盘数据的完整还原。

wman勒索病毒解密流程图
整个过程完全绕过了底层的RSA非对称加密体系,无需依赖黑客的私钥。
五、解密工具获取
基于上述思路,我们将解密引擎工程化,封装成了图形化的Wman勒索数据恢复工具,降低恢复操作的门槛。目前工具已上传至Solar应急响应平台,访问应急响应.com或https://solarsecurity.cn/tools.html、https://solarert.com/tools,在恢复工具处即可下载。也可以关注公众号名片,回复关键字【wman】获取下载链接。

Solar应急响应平台恢复工具下载页中的Wman勒索数据恢复工具

Solar应急响应平台(新)恢复工具下载页中的Wman勒索数据恢复工具
六、图形化工具使用方法
Wman勒索数据恢复工具是针对.wman后缀加密文件的可视化恢复工具,当前版本为V1.1,支持通过已知明文恢复密钥流(keystream),也支持直接使用已恢复的keystream批量解密文件。

Wman勒索数据恢复工具图形化界面
6.1 选择解密模式
工具支持两种模式。
模式一:已知文件 + 参考加密文件。 适用于已经找到某个文件的未加密原始版本,同时也有它对应的.wman加密版本的情况。需要依次选择已知原始文件、对应的加密文件,以及可选的keystream导出路径。工具会通过原始文件和加密文件计算出keystream,并用于后续批量解密。
这个模式有两条硬性要求,必须同时满足。
原始文件和对应的加密文件都必须大于512KB。病毒最多只加密文件头部512KB,keystream需要完整覆盖这段加密区。如果选用的文件太小,算出的密钥流长度不够,就无法完整恢复其他大文件的前512KB。 原始文件和加密文件必须是同一个文件的两个版本,即内容完全对应的原始版本与加密版本。不是随便找两个大于512KB的文件就能算出密钥流,文件不对应,异或出来的只是一段毫无意义的脏数据,用它去解密只会造成二次破坏。
模式二:直接使用keystream。 适用于已经计算好key.bin的情况。需要选择已恢复的keystream文件,并确认tail长度。如果keystream是通过模式一导出的,tail长度会由.json元数据自动加载。如果是自己选择的keystream文件,则需要手动输入跳过文件尾部的字节数量,当前样本默认为521字节。
6.2 导入待解密文件
支持三种添加方式。直接拖拽.wman文件到工具中,点击选择文件,或者点击选择文件夹让工具递归扫描其中的.wman文件。
6.3 设置输出方式
输出目录留空时,工具会直接原地解密.wman文件,成功后自动去掉加密后缀。例如 test.docx.[[xxx]].[[mail]].wman 会还原为 test.docx。
指定输出目录时,解密后的文件会输出到该目录,原始.wman文件不会被修改。
6.4 开始解密
点击开始解密后,工具会实时显示当前处理状态、每个文件的处理结果、解密输出路径与失败原因,并在结束后给出成功、失败、跳过的数量统计。
该样本通常只加密前512KB,工具也只还原这部分。恢复时工具会XOR还原前512KB,保留后续未加密内容,截断尾部附加数据,并去掉.wman加密后缀。

Wman勒索数据恢复工具视图

恢复成功后文件预览
6.5 注意事项
建议先备份 .wman文件再操作,尤其是在原地解密模式下。keystream长度需要足够覆盖加密区。当前样本最多加密前512KB,完整恢复大文件前段通常至少需要524288字节的keystream。 如果使用很小的已知文件恢复keystream,例如几百字节的文件,那么只能恢复对应长度范围内的数据,无法完整恢复其他文件的前512KB。 输出目录为空时,工具会直接修改源文件内容并重命名文件。 如果目标文件已存在且未勾选覆盖,工具会拒绝写入,避免误覆盖已有文件。 如果不同文件使用了不同的key或nonce,则从一个文件推导出的keystream可能无法用于其他文件。 若安全软件拦截工具行为,可能是因为工具会批量读写.wman文件并进行原地修改。
6.6 常见问题
提示keystream长度不足:原因是当前选择的keystream无法覆盖目标文件的加密区域。可以使用更大的已知明文和密文对重新生成keystream,或者恢复真实的key和nonce后直接生成完整keystream。
文件解密后仍然打不开: 可能的原因包括keystream与目标文件不匹配、文件使用了不同的key或nonce、原文件本身已损坏、tail长度判断错误,以及已知文件和参考加密文件不是同一个文件。
部分文件恢复效果不一致: 可能是因为不同批次、不同目录或不同运行阶段使用了不同的加密上下文。
原地解密后的文件名冲突: 如果原始文件名已经存在且未勾选覆盖,工具会拒绝重命名,避免覆盖已有文件。
七、安全防护建议
Rast Gang家族虽然在加密算法的底层实现上存在短板,但其弱口令爆破结合手动投递的打法,依然给不少企业造成了业务中断。结合日常应急响应经验,建议企业从以下几个切入点进行排查和优化。
收敛高危端口暴露面: 严格限制RDP(3389)以及各类数据库端口(3306、1433等)对外网的直接暴露。业务必须远程访问的,建议强制接入VPN,并启用多因素认证(MFA)。 严查弱口令与账号复用:中招服务器的管理员账户往往存在容易被字典猜解的弱口令。建议定期排查全网凭证,落实高强度密码策略,并配置防爆破锁定机制。 落实离线备份:无论防御手段多么完善,物理隔离的数据备份永远是应对勒索病毒最踏实的底牌。建议按照3-2-1原则定期进行数据备份,并定期进行恢复演练。
文章撰写与优化:州弟学安全、G0fl1er
工具与思路提供:G0fl1er
排版优化:超级油麦
在企业日常的安全运维中,突发勒索病毒往往让人措手不及。遇到这种情况,正确的应急响应流程能够最大程度控制影响范围、降低数据损失。
这里为大家准备了一张完整的《勒索病毒应急处置指南》长图,建议各位安全从业者和IT运维人员收藏备用。如遇突发情况,请保持冷静,参考本图进行快速、规范的处置
附加资料下载: 防御与响应同样重要。扫描图末的二维码,还可以直接获取完整的《2025年勒索病毒年报》、《2026年勒索病毒上半年报》以及《勒索处置一体化》等专业文件,帮助大家深入了解当前的威胁趋势,提前做好防御规划。
安全无小事,掌握科学的处置流程,是我们应对突发安全事件最有效的武器。

相关文章 | |
相关文章 | |
| 【教程分享】勒索病毒来袭!教你如何做好数据防护 | |
案例介绍篇聚焦于真实的攻击事件,还原病毒家族的攻击路径和策略,为用户提供详细的溯源分析和防护启示;
相关文章 | |
| 【案例介绍】赎金提高,防御失效:某上市企业两年内两度陷入同一勒索团伙之手 | |
| 【成功案例】某集团公司的Phobos最新变种勒索病毒jopanaxye解密恢复项目 | |
| 【成功案例】某集团公司的Phobos最新变种勒索病毒2700解密恢复项目 | |
| 【成功案例】间隔数月双团伙先后利用某ERP0day实施入侵和勒索的解密恢复项目 | |
| 【成功案例】利用多款国产内网渗透工具勒索数十台虚拟机的babyk解密恢复项目 | |
| 【成功案例】RDP暴露引发的蝴蝶效应:LockBit组织利用MSF工具及永恒之蓝漏洞进行勒索入侵 | |
| 【成功案例】lockbit家族百万赎金不必付!技术手段修复被加密的数据库,附溯源分析报告 | |
相关文章 | |
相关文章 | |
| 【应急响应工具教程】取证工具-Volatility安装与使用 | |
| 【应急响应工具教程】流量嗅探工具-Tcpdump | |
| 【应急响应工具教程】一款精准搜索文件夹内容的工具--FileSeek | |
| 【应急响应工具教程】一款自动化分析网络安全应急响应工具--FindAll | |
全国热线| 400-613-6816
更多资讯| 扫码加入群组交流
