【技术分享】Dridex和Locky重现江湖,通过PDF附件传播恶意代码

小龙 2017-6-14 HACK 0 0

作者:童话

 

https://p4.qhimg.com/t01ca068836855e55da.png

 

前言


Dridex(银行木马)和Locky(勒索软件)是两个臭名昭著的恶意软件家族。2016年,在世界范围内投放了大量的恶意邮件传播恶意代码,在短暂的销声匿迹之后重新回归到大众的视野。

本篇文章中介绍了的PDF下载器负责传播Dridex(银行木马)和Locky(勒索软件)两类恶意软件。但为了突出本篇文章的重点内容,我们将结合实例,着重讨论PDF下载器和Dridex(银行木马)二进制文件。

影响范围


两次攻击活动中想象范围较大的一个(图1),钓鱼文档中涉及“付款收据”主题相关的内容,根据我们的推测,此次攻击活动主要影响了美国的保险行业。

http://p1.qhimg.com/t0121ebe0b5310008a0.png

图1:全球影响范围

两次攻击活动中影响范围较小的一个(图2),附件的主要内容多是打印机对扫描文档的警报。此次攻击活动主要针对的目标是中东,美国和日本的政府部门。

https://p3.qhimg.com/t01134d92bc548594ad.png

图2:全球影响范围

恶意代码的执行流程


如图3所示,恶意代码的执行流程主要包括以下几个步骤:

1.投放恶意邮件:邮件中包含恶意PDF文档

2.附件中的PDF文档:打开PDF文档后释放并执行DOCM文档

3.释放的DOCM文档:文档通过宏命令执行PowerShell脚本

4.PowerShell脚本:执行PowerShell脚本从远程的CC服务器上下载一个加密的二进制文件

5.加密的二进制文件:加密该二进制文件,释放并执行恶意payload

https://p6.qhimg.com/t01b6659f98ddf29d61.png

图3:恶意代码完整的执行流程

恶意邮件


经过我们的分析发现两次攻击活动中恶意邮件的附件内容主要为两种主题,一个文件名Payment_XXX,其中XXX指的是任何随机数,而另一个写的是来自MX-2600N的扫描图像。 图4列出了两个恶意邮件的示例。

https://www.77169.com/wp-content/uploads/2017/06/t0148f1a98b5a30783f.png

图4:恶意邮件示例图

附件中的PDF文档


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

https://p5.qhimg.com/t0131bd89d0b0a7e780.png

图5:DOCM文档文件头

https://p8.qhimg.com/t012efb5d565d456fbd.png

图6:释放并执行DOCM文件的JavaScript代码段

当被攻击者打开了PDF文档,Adobe Reader显示了一个如图7所示的警告,清楚的说明文档可能是有害的。

https://p5.qhimg.com/t0191ab6be976b0a7bd.png

图7:Adobe的安全警告

如果用户忽略了警告,并且点击了“OK”按钮,DOCM文档将会被写入%temp%目录下,并启动。

释放的DOCM文档


文档已只读或受保护的模式打开,意味着文档中的宏命令不能被执行。取消这种机制的保护,文档会显示一个提示消息,提醒用户点击“Enable Editing(启用编辑)”,如图8所示。

https://p2.qhimg.com/t014b85c17b6afe144d.png

图8:受保护的文档请求启用编辑权限

当被攻击者点击“Enable Editing(启用编辑)”按钮,嵌入在文档中的宏命令将开始执行。如图9所示,我们可以看到要执行的命令隐藏在form1的标题中。宏命令的功能是执行一个PowerShell指令,向远端的CC服务器发起请求,下载下一个payload。

http://p1.qhimg.com/t019dc63edf86e2947f.png

图9:嵌入在文档中的宏命令

图10展示了隐藏在form中的命令

https://p6.qhimg.com/t013c1d521df4eaf042.png

图10:隐藏在form中的命令

PowerShell脚本


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

https://p4.qhimg.com/t016ad6b4ab8a938caf.png

图11:还原混淆的Powershell脚本的算法

分析还原后的PowerShell脚本,其主要有两个功能:

1.与CC服务器进行通信:在这一环节中,PowerShell脚本生成一组CC服务器域名,通过HTTP发起请求,检查服务端响应的内容,如果远端的服务器没有正确响应[200],它将请求另一组主机。

2.解密服务端返回的数据:如果服务器出于活跃状态,将会把请求的资源返回(加密的二进制恶意代码),下载会本地后,脚本通过简单的XOR算法对内容进行解密。图12展示了脚本与CC服务器详细的通信过程。

https://p8.qhimg.com/t01a5296fd51488716d.png

图12:与CC服务器通信

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

https://p5.qhimg.com/t015a317c237645bccc.png

图13:CC服务器响应头信息

PowerShell脚本将返回的内容进行解密,并将解密后的可执行文件写入到%temp%目录下,解密代码如图14所示。

http://p0.qhimg.com/t012afa484f5161c419.png

图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的URL

til.co.za/dfv45awarepictures.com/dfv45ursanne.com/dfv45sokpinter.com/dfv45wenable.com/dfv45martijnfeller.nl/dfv45dont.pl/9yg65bhmech.com/9yg65sherwoodbusiness.com/9yg65uwdesign.com.br/9yg65

分发Locky的URL

mentoryourmind.org/kjv783rlawrenceres.com/kjv783rcloud9ss.com/kjv783rmentalmysteries.com/kjv783rmedjobsmatch.com/kjv783ri-call.it/kjv783rsuper-marv.com/874hv

Dridex的CC服务器

216.177.132[.]93:4143152.66.249[.]132:4434385.214.113[.]207:4743192.184.84[.]119:4743199.36.194[.]27:4743104.131.182[.]74:4743199.233.245[.]109:474374.220.207[.]120:80


转载请注明来自华盟网,本文标题:《【技术分享】Dridex和Locky重现江湖,通过PDF附件传播恶意代码》

喜欢 (0) 发布评论