恶意勒索软件使用宏攻击正在呈现增长之势,我们最近在博客中心也进行了报道,分别是这里和这里。现在McAfee实验室正在研究一种新的恶意宏变种,可以在一定程度上识别虚拟机,沙箱等机制的检测。
在今年3月早期,我们就已经发现了恶意宏使用新的高混淆算法保护自己免于被静态以及传统的反恶意软件技术检测到。这些算法改变频率不会很大;我们注意到算法的更新大概是一个月一次。这么慢的更新速度也暗示了作者在软件上也只增加了很少的变化。目前为止,我们已经发现了三种混淆算法。而在今年4月中旬的事件是我们比较感兴趣的,下面是我们的分析。
这些变种的恶意宏不仅具有高混淆技术,而且有好几层外壳。除了混淆本身,宏本身的功能也是互相分散的。我已经将混淆算法转化成了python语言,躲避检测技术的脚本转化成了VBA脚本这样会更容易理解点。
下面是传入函数的混淆字符串:
等价的python脚本来反混淆字符串:
恶意软件发送一个假冒的MS 2016屏幕来诱导用户打开宏:
我们的分析显示,这是一个知名的黑客创建的,因为它和早期的版本“Donoff”相似。哪个版本也发送了如下相似的信息。这就意味着这次的事件也来自于相同的组织。
下面的流程图显示是如何躲避检测的:
Layer1:躲避蜜罐技术
我们在宏中发现下面的代码检测username和hostname。如果usename是USER,hostname是HOST,那么代码将不会执行。因为大多数蜜罐技术使用的用户名就是User和Host吸引零day的恶意软件。作者使用这个方法躲避零day攻击。
Layer2:检测虚拟化和反模拟
为了避免被安全人员分析,作者接下来做的事避免自己的代码在虚拟机上执行。代码如下:
Layer3:规避外围设备和动态工具
由于主要依靠垃圾邮件和钓鱼邮件来下载宏,作者需要渗透进像邮件扫描以及入侵检测类的产品。下面的代码检测是否存在类似Snort,Suricata,Wireshark的设备。
发送payload的妥协网址
这些作者妥协一个合法的网站来传递他们的payload,本例中的合法网站的地址:
http://soc[xxxxx]it.com/system/logs/office.exe
在我们的分析中,这个硬编码的链接发送下面的文件,暗示作者依然在准备环境并没有卸载网站上的payload。(Intel Security联系了网站的所有者)
我们发现这个文件有点奇怪:作者设置了一个特定文件路径的程执行条件,即使之前的一系列躲避技术返回值为true。如果恶意文件在 “
我们的分析显示作者精通各种反恶意软件产品的技术。
Sample MD5s:
d80c15fd4ee1b10512d81bde32daaf30
c1787d80ad7beb46646d5c20cdd7eff2