深入分析利用宏代码传播NetwiredRC和Quasar RAT的恶意RTF文档
fanyeee 嘶吼专业版
对于恶意软件作者来说,他们总能想出一些出其不意的方法来诱使用户执行自己的恶意文档。最近,ThreatLabZ团队通过一种独特的方法,深入考察了***者发动的一波社会工程***。具体来说,他们首先通过恶意RTF文档强制用户执行嵌入的VBA宏代码,而这些代码一旦执行,就会投递Quasar RAT和NetWiredRC有效载荷,从而进入感染周期。
这些宏代码位于恶意RTF文档内的Excel工作表中,其作用就是下载其他的有效载荷。RTF文档的扩展名为.doc,使用Microsoft Word中打开该文档时,会弹出宏警告窗口(见图1),通常来说,用户可以通过该窗口来启用或禁用宏指令。但是,对于这个恶意RTF文档来说,就算用户在系统第一次发出警告的时候就单击了“Disable Macros(禁用宏)”按钮,Word仍会不停弹出警告窗口。
Fig1: 弹出的宏警告窗口
实际上,用户根本没有办法阻止这些弹出窗口,除非单击启用宏的按钮,或者强制退出Word。当前,这个恶意的RTF会弹出10个警告窗口,因为该文件内有10个嵌入的Excel工作表(参见图2;黄色圆点指示的是嵌入的Excel工作表)。
图2:RTF文档的内容
为了达到连续弹出警告窗口的目的,恶意软件作者为嵌入式Excel工作表对象(OLE对象)使用了\objupdate控件[1](见图3)。这个函数会触发嵌入式Excel工作表内的宏代码,也就是说,每当该RTF文档被载入MS Word应用程序时,宏代码就会被执行,这样就会弹出多个警告窗口了。
图3:RTF中的\objupdate控件
需要注意的是,虽然在CVE-2017-0199漏洞利用代码[2]中也使用了这个\objupdate控件,但是,当前的这个恶意文档尚未使用该漏洞或任何其他漏洞。
图4:感染流程
恶意宏代码分析
在这次***活动中,我们发现该恶意宏代码出现了两个变种(见图5)。当然,两个宏代码变种的作用是相同的,只不过分别使用Schtasks和cmd.exe执行PowerShell命令,最终都会下载中间有效载荷(请参见图6)。
图5:宏代码
图6:PowerShell命令
这个恶意软件还通过修改注册表来实现Word、PowerPoint和Excel的宏命令的永久启用。
中间有效载荷
这里的宏代码使用PowerShell下载恶意VBS文件,并将其保存在%PUBLIC%文件夹中,文件名为svchost32.vbs。
这个恶意的VBS代码(图7)会执行以下操作:
第1步
终止所有正在运行的Microsoft Word和Excel进程实例。
(使用HTTPS协议)下载最终有效载荷,并将其保存在%PUBLIC%文件夹中,文件名为svchost.exe。
执行下载的有效载荷。
图7:经过反混淆处理的恶意VBS代码
第2步
通过修改注册表,启用宏并禁用Microsoft Word、PowerPoint和Excel(适用于版本11-16,版本13除外)的视图保护设置。
第3步
创建一个名为“WindowsUpdates”的计划任务,在200分钟后运行该有效载荷(svchost32.vbs)。
第4步
删除由宏代码创建的“WindowsUpdate”计划任务。
第5步
下载其他有效载荷并将其保存在%PUBLIC%文件夹中名为svchosts.exe的文件中。但在分析该恶意代码过程中,发现它并没有下载这个有效载荷,由此可以推断,这个功能已经在最近的变体中被删除了。
最终有效载荷
我们发现,NetwiredRC和QusarRat恶意软件是该***活动中的最终有效载荷。实际上,这两个软件都是远程管理工具(RAT)。QusarRat是一个开源工具[3],具有远程录像、远程Shell和键盘记录功能;而NetwiredRC则具有查找文件、远程shell、键盘记录、屏幕截图、密码窃取等功能。
IOCs
小结
Zscaler ThreatLabZ团队正在积极跟踪和检测这些有效载荷,以确保我们的客户免受恶意RTF文档和其他通过社交工程传播的恶意软件的侵害。