Dridex和Locky重现江湖,通过PDF附件传播恶意代码


Dridex和Locky重现江湖,通过PDF附件传播恶意代码

翻译:童话
投稿方式:发送邮件至linwei#360.cn , 或登陆网页版在线投稿
前言

Dridex(银行木马)和Locky(勒索软件)是两个臭名昭著的恶意软件家族 。2016年,在世界范围内投放了大量的恶意邮件传播恶意代码 , 在短暂的销声匿迹之后重新回归到大众的视野 。
本篇文章中介绍了的PDF下载器负责传播Dridex(银行木马)和Locky(勒索软件)两类恶意软件 。但为了突出本篇文章的重点内容,我们将结合实例,着重讨论PDF下载器和Dridex(银行木马)二进制文件 。
影响范围

两次攻击活动中想象范围较大的一个(图1),钓鱼文档中涉及“付款收据”主题相关的内容,根据我们的推测,此次攻击活动主要影响了美国的保险行业 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图1:全球影响范围
两次攻击活动中影响范围较小的一个(图2),附件的主要内容多是打印机对扫描文档的警报 。此次攻击活动主要针对的目标是中东 , 美国和日本的政府部门 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图2:全球影响范围
恶意代码的执行流程

如图3所示,恶意代码的执行流程主要包括以下几个步骤:
1.投放恶意邮件:邮件中包含恶意PDF文档
2.附件中的PDF文档:打开PDF文档后释放并执行DOCM文档
3.释放的DOCM文档:文档通过宏命令执行PowerShell脚本
4.PowerShell脚本:执行PowerShell脚本从远程的CC服务器上下载一个加密的二进制文件
5.加密的二进制文件:加密该二进制文件,释放并执行恶意payload
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图3:恶意代码完整的执行流程
投放恶意邮件

攻击者向被攻击者们批量投放含有PDF恶意文档的邮件,PDF文档中包含了几个对象 。最重要的几个对象 , 一个是嵌入的DOCM文档(启用宏命令的doc文档),一个释放并启动DOCM文档的JavaScript对象 。图5展示了嵌入的DOCM文档,图6展示了释放DOCM文档的JavaScript代码片段 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图5:DOCM文档文件头
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图6:释放并执行DOCM文件的JavaScript代码段
当被攻击者打开了PDF文档,Adobe Reader显示了一个如图7所示的警告,清楚的说明文档可能是有害的 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图7:Adobe的安全警告
如果用户忽略了警告,并且点击了“OK”按钮,DOCM文档将会被写入%temp%目录下,并启动 。
释放的DOCM文档

文档已只读或受保护的模式打开 , 意味着文档中的宏命令不能被执行 。取消这种机制的保护,文档会显示一个提示消息 , 提醒用户点击“Enable Editing(启用编辑)”,如图8所示 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图8:受保护的文档请求启用编辑权限
当被攻击者点击“Enable Editing(启用编辑)”按钮 , 嵌入在文档中的宏命令将开始执行 。如图9所示,我们可以看到要执行的命令隐藏在form1的标题中 。宏命令的功能是执行一个PowerShell指令,向远端的CC服务器发起请求,下载下一个payload 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图9:嵌入在文档中的宏命令
图10展示了隐藏在form中的命令
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图10:隐藏在form中的命令
PowerShell脚本

PowerShell代码是经过混淆的 , 其可以使用图11所示的算法将代码还原 。当代码执行后,脚本的主要功能是请求远端的服务器下载payload 。该脚本中包含了一个URI数组,循环请求每一个URI,直到CC服务器返回来一个有效的响应包 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图11:还原混淆的Powershell脚本的算法
分析还原后的PowerShell脚本,其主要有两个功能:
1.与CC服务器进行通信:在这一环节中,PowerShell脚本生成一组CC服务器域名,通过HTTP发起请求,检查服务端响应的内容,如果远端的服务器没有正确响应[200],它将请求另一组主机 。
2.解密服务端返回的数据:如果服务器出于活跃状态 , 将会把请求的资源返回(加密的二进制恶意代码),下载会本地后,脚本通过简单的XOR算法对内容进行解密 。图12展示了脚本与CC服务器详细的通信过程 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图12:与CC服务器通信
当脚本运行后,脚本请求192.232.251.217和216.87.186.133的“/dfv45”资源 , 并且在第二台服务器中成功返回了响应包(加密的二进制恶意代码) 。响应的内容是通过XOR加密的 。图13为响应头信息 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图13:CC服务器响应头信息
PowerShell脚本将返回的内容进行解密 , 并将解密后的可执行文件写入到%temp%目录下,解密代码如图14所示 。
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

图14:解密代码
最后释放的payload

说到这里,Dridex(银行木马)和Locky(勒索软件)的payload投放过程都是一样的 。投递的恶意软件取决于远端CC服务器返回的内容 。
在本篇文章的案例中,从CC服务器取回的内容是Dridex(银行木马)的payload 。当payload执行后 , Dridex解压缩并在svchost.exe或spoolsv.exe的进程上下文中运行 , 以逃避检测 。
总结

Dridex(银行木马)和Locky(勒索软件)在过去几个月中一直很活跃,尽管投放机制不断的变化,但该类恶意软件家族的核心行为已然保持不变 。Dridex是过去几年最活跃的银行木马之一,而Locky则是最臭名卓著的勒索软件之一 。在过去的时间里,Dridex和Locky的作者们不断地研究各种方法已逃避检测 。
如何缓解该类恶意软件的危害

由于该类钓鱼活动影响范围较为广泛,企业可以通过如下几种方法防止受到此类恶意软件的攻击 。
部署Web代理:通过部署一个Web代理,企业将能够制定阻止访问Dridex和Locky使用的唯一URI参数“/dvf45/”和“kjv783r/”的出站规则 。值得提及的是,这种防御方式只能暂时防御此类攻击 , 最重要的还是要提高企业工作人员的安全意识 。
更新防火墙策略:了解企业内部必要的出站流量 , 并结合Web代理,禁止所有不必要的主站流量 。
启用增强的PowerShell日志记录功能:改进PC对PowerShell日志记录的可见性具有许多好处,其中之一是确定恶意软件使用PowerShell的执行的恶意代码,如此文中介绍的 。
附录
【Dridex和Locky重现江湖,通过PDF附件传播恶意代码】
Dridex和Locky重现江湖,通过PDF附件传播恶意代码

相关经验推荐