钓鱼邮件作为传播勒索病毒的常用手段,通常在邮件正文利用“社工手段”诱使用户点击邮件附件,附件的文档内容诱使用户开启宏。用户一旦将宏开启,文档中所包含的恶意宏代码即自动运行,实施对用户电脑加密、勒索等行为。
近日,腾讯反病毒实验室捕获到一批钓鱼邮件,附件包含的恶意宏代码实现了下载并运行一个NSIS(Nullsoft Scriptable Install System)勒索木马的行为,该勒索木马将加密用户机器上的文件并进行付款勒索。这里真正执行加密、勒索的payload是该NSIS文件经过一系列解密操作后直接在内存中加载的一个PE文件,该文件并未落地到用户磁盘上,因此使用这种方式可以加大杀软查杀的难度。
图1. 附件文档内容
0×2 木马行为分析
1. 恶意宏代码
宏代码中通过对字符串的替换、分隔等操作得到勒索文件下载地址:
图2. 生成勒索木马下载地址
2. 木马行为
勒索文件运行后,会对系统中的特定类型的文件进行加密,加密后的文件后缀名改为了..doc,并且在每个被加密文件的目录下生成一个Read___ME.html文件。下图显示了Notepad++安装目录下加密后的文件,其中的文件夹目录里的文件也被加密,并且在每个目录都生成了Read___ME.html:
图3. Notepad++安装目录文件被加密示例
Read___ME.html在整个用户机器加密完成后会显示出来,内容为告知用户文档已加密,并且需要支付购买解密码:
图4. 勒索信息显示
3. 木马流程
NSIS文件首先解密出System.dll,释放在系统目录的Temp目录下,之后在Temp目录再解密释放出另一个相关文件文件,接着调用System.dll的call函数和所释放的文件,解密出实行勒索的PE文件,该PE文件未释放到用户磁盘上,而是直接在内存中加载运行,实施加密用户文件和勒索行为。
图5. 解密释放System.dll
图6. 解密释放YD文件
该勒索木马的执行流程为:
图7. 勒索木马流程图
0×3 勒索木马变种
反病毒实验室在捕获到上述钓鱼邮件不久之后,又捕获到另一批钓鱼邮件,也是通过诱使用户开启宏,执行其恶意宏代码,下载木马文件。所不同的是该木马文件不再是NSIS样本,而是EXE文件,但思路是一致的,也是该EXE文件通过一系列解密操作,解密出真正执行加密勒索行为的木马,该木马同样未落地到用户机器,是直接内存加载。
木马流程图
图8. 勒索木马变种流程图
木马分析:
1. 样本运行时申请指定大小的内存空间,并向其中写入指定数据。
图9. 申请内存空间
图10. 向申请的内存空间写入数据
2. 写入的数据是加密的,再对该数据进行如下解密操作,得到shellcode,并执行该shellcode:
图11. 解密出shellcode
图12. 执行shellcode
3. shellcode申请内存、数据解密等操作,生成真正的勒索PE木马:
图13. 解密出勒索PE文件,直接在内存中加载
4. 该木马将自身复制到系统目录并创建进程,在运行时添加自启动项,之后就开始执行加密用户文件、显示勒索信息等行为,之后删除自身。
图14. 创建进程并添加自启动项
图15. 7-zip安装目录文件被加密示例
0×4 安全建议