火绒安全团队监测到,近期有大量用户遭受国产勒索病毒攻击。所有文件均已加密,用户需扫描微信二维码支付赎金。一般情况下,为了避免被执法机构追查,勒索软件开发商会利用比特币、门罗币等虚拟货币进行完全匿名的交易。

一、概述

昨天(12月1日)爆发的“微信支付”勒索病毒已被火绒安全团队成功破解。感染病毒的用户可以下载破解工具来恢复加密文件。下载地址:https://www.huorong.cn/download/tools/HRDecrypter.exe

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

据火绒安全团队分析,勒索病毒在开始勒索之前,会在本地生成加解密相关数据。火绒工程师根据这些数据成功提取了密钥。

另外,该勒索病毒仅加密用户的桌面文件,会跳过一些以指定名称开头的目录文件,包括“腾讯游戏、英雄联盟、tmp、rtl、程序”等,不会感染使用gif、exe、tmp的文件等扩展文件。

值得一提的是,该病毒会利用腾讯签名的程序调用病毒代码来躲避安全软件的检测。

“火绒安全软件”昨天紧急升级,可以拦截并查杀病毒。用户若遇到新情况,可以随时通过火绒官方论坛、微博、微信公众号等渠道向火绒安全团队举报或寻求帮助。

2. 样品分析

近日,火绒收到用户反馈,利用微信二维码扫描勒索赎金的勒索病毒Bcrypt正在大范围传播。用户被感染并重启电脑后,会弹出勒索信息提示窗口,要求用户扫描微信二维码并支付110元赎金才能解密文件。病毒作者对用户撒谎,声称“由于密钥数据太大,超过这个时间(即2天后),服务器会自动删除密钥,解密程序将失效”,但实际存储的解密密钥是在本地无法访问病毒作者服务器的情况下,也可以解密成功。如下所示:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

勒索软件提示窗口

病毒代码的调用采用“白加黑”的方式。用于调用病毒代码的白色文件具有有效的腾讯数字签名。由于程序在调用动态库时没有检测被调用方的安全性,因此调用了名为libcef.dll的病毒动态库,最终执行恶意代码。病毒使用的白色文件的数字签名信息如下图所示:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

被病毒利用的白文件数字签名信息

病毒运行后,只会对当前用户桌面目录下存储的数据文件进行加密勒索,并且会排除指定目录和扩展文件,而不对其进行加密勒索。排除的目录名称如下所示:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

排除的目录名称

病毒代码中,使用“-”分隔排除的文件扩展名,如:-dat-dll-,则勒索病毒后缀为“.dat”、“.dll”的数据文件将不会被加密。相关数据如下图所示:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

排除的文件扩展名

目录名和文件扩展名排除相关代码,如下图:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

排除目录名

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

排除文件扩展名

值得注意的是,虽然病毒作者谎称使用的是DES加密算法,但实际上只是简单的异或加密,解密密钥相关数据存储在%user%AppDataRoamingunname_1989dataFileappCfg.cfg中。因此即使不访问病毒作者的服务器,也可以成功完成数据解密。病毒中的虚假描述信息如下图所示:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

病毒中的虚假描述信息

加密相关代码,如下图:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

数据加密

在之前的用户反馈中,不少用户对勒索提示窗口中显示的病毒感染时间感到困惑,因为这个时间可能比实际感染时间要早很多(如上图红框所示,2018-08-08) 06:43:36)。事实上,这个时间是病毒作者用来欺骗用户的。假时间是通过将Windows安装时间戳+1440000转换为日期格式得到的。 Windows安装时间戳是通过查询注册表获得的。注册表路径为:Hkey_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionInstallDate。病毒作者利用这个虚假的中毒时间来误导用户,使他们误认为病毒已经潜伏了很长时间。相关代码如下所示:

微信支付api密钥查看(\"微信支付\"勒索病毒可以解密+火绒发布解密工具吗)

虚假感染时间显示相关代码