翻译:童话
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
前言
Dridex(银行木马)和Locky(勒索软件)是两个臭名昭著的恶意软件家族。2016年,在世界范围内投放了大量的恶意邮件传播恶意代码,在短暂的销声匿迹之后重新回归到大众的视野。
本篇文章中介绍了的PDF下载器负责传播Dridex(银行木马)和Locky(勒索软件)两类恶意软件。但为了突出本篇文章的重点内容,我们将结合实例,着重讨论PDF下载器和Dridex(银行木马)二进制文件。
影响范围
两次攻击活动中想象范围较大的一个(图1),钓鱼文档中涉及“付款收据”主题相关的内容,根据我们的推测,此次攻击活动主要影响了美国的保险行业。
图1:全球影响范围
两次攻击活动中影响范围较小的一个(图2),附件的主要内容多是打印机对扫描文档的警报。此次攻击活动主要针对的目标是中东,美国和日本的政府部门。
图2:全球影响范围
恶意代码的执行流程
如图3所示,恶意代码的执行流程主要包括以下几个步骤:
1.投放恶意邮件:邮件中包含恶意PDF文档
2.附件中的PDF文档:打开PDF文档后释放并执行DOCM文档
3.释放的DOCM文档:文档通过宏命令执行PowerShell脚本
4.PowerShell脚本:执行PowerShell脚本从远程的CC服务器上下载一个加密的二进制文件
5.加密的二进制文件:加密该二进制文件,释放并执行恶意payload
图3:恶意代码完整的执行流程
投放恶意邮件
攻击者向被攻击者们批量投放含有PDF恶意文档的邮件,PDF文档中包含了几个对象。最重要的几个对象,一个是嵌入的DOCM文档(启用宏命令的doc文档),一个释放并启动DOCM文档的JavaScript对象。图5展示了嵌入的DOCM文档,图6展示了释放DOCM文档的JavaScript代码片段。
图5:DOCM文档文件头
图6:释放并执行DOCM文件的JavaScript代码段
当被攻击者打开了PDF文档,Adobe Reader显示了一个如图7所示的警告,清楚的说明文档可能是有害的。
图7:Adobe的安全警告
如果用户忽略了警告,并且点击了“OK”按钮,DOCM文档将会被写入%temp%目录下,并启动。
释放的DOCM文档
文档已只读或受保护的模式打开,意味着文档中的宏命令不能被执行。取消这种机制的保护,文档会显示一个提示消息,提醒用户点击“Enable Editing(启用编辑)”,如图8所示。
图8:受保护的文档请求启用编辑权限
当被攻击者点击“Enable Editing(启用编辑)”按钮,嵌入在文档中的宏命令将开始执行。如图9所示,我们可以看到要执行的命令隐藏在form1的标题中。宏命令的功能是执行一个PowerShell指令,向远端的CC服务器发起请求,下载下一个payload。
图9:嵌入在文档中的宏命令
图10展示了隐藏在form中的命令
图10:隐藏在form中的命令
PowerShell脚本
PowerShell代码是经过混淆的,其可以使用图11所示的算法将代码还原。当代码执行后,脚本的主要功能是请求远端的服务器下载payload。该脚本中包含了一个URI数组,循环请求每一个URI,直到CC服务器返回来一个有效的响应包。
图11:还原混淆的Powershell脚本的算法
分析还原后的PowerShell脚本,其主要有两个功能:
1.与CC服务器进行通信:在这一环节中,PowerShell脚本生成一组CC服务器域名,通过HTTP发起请求,检查服务端响应的内容,如果远端的服务器没有正确响应[200],它将请求另一组主机。
2.解密服务端返回的数据:如果服务器出于活跃状态,将会把请求的资源返回(加密的二进制恶意代码),下载会本地后,脚本通过简单的XOR算法对内容进行解密。图12展示了脚本与CC服务器详细的通信过程。
图12:与CC服务器通信
当脚本运行后,脚本请求192.232.251.217和216.87.186.133的“/dfv45”资源,并且在第二台服务器中成功返回了响应包(加密的二进制恶意代码)。响应的内容是通过XOR加密的。图13为响应头信息。
图13:CC服务器响应头信息
PowerShell脚本将返回的内容进行解密,并将解密后的可执行文件写入到%temp%目录下,解密代码如图14所示。
图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的执行的恶意代码,如此文中介绍的。
附录