恶意软件DLOADR:使用Edge和Chrome浏览器中的扩展作为后门

阅读量    45239 |   稿费 200

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

概述

近期,我们注意到在VirusTotal中出现了一系列测试提交,基于提交来源和提交文件的名称,我们推测这些文件都来源于摩尔多瓦的一个恶意软件开发组织。根据推测,目前该组织正在研究一种新型恶意软件。从编码方式判断,该恶意软件很有可能通过嵌入到垃圾邮件中附件的方式传播。趋势科技将该恶意软件检测为JSDLOADR和W2KM_DLOADR。
我们对恶意软件(TROJ_SPYSIVIT.A和JAVA SPYSIVIT.A)进行了分析,其中最值得注意的地方是它们的Payload。它包含了某个版本的Revisit远程管理工具,该工具被用于劫持被感染的系统。更重要的是,该恶意软件还带有一个恶意扩展,可以作为后门,窃取浏览器上的信息。
滥用合法的远程访问工具(并窃取其配置)这件事并不新鲜。我们此前曾经在通过垃圾邮件传播的另一个恶意软件TeamSpy中发现过( https://blog.avast.com/a-deeper-look-into-malware-abusing-teamviewer ),他们滥用TeamViewer( https://blog.trendmicro.com/trendlabs-security-intelligence/unsupported-teamviewer-versions-exploited-backdoors-keylogging/ )远程控制受感染的计算机。尽管如此,我们分析了该恶意软件所采用的全部技术,认为它具有较大的威胁性。例如,它滥用了合法的应用程序编程接口(API)、Chrome WebDriver( https://sites.google.com/a/chromium.org/chromedriver/ )和Microsoft WebDriver( https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ )等开源工具。
该恶意软件的感染链如下:

通过恶意宏交付

我们通过综合分析DLOADR嵌入的各种恶意文档,发现其交付(Delivery)方式具有某种特殊性。例如,根据恶意软件的命名方式,我们认为它仍然处于开发之中。此外,部分命名还使用了社会工程学来诱惑用户打开。我们发现的恶意文档文件名包括:TEST1234.docm、Employment Application(2).dotm、tewst123.dotm、test2.docm、123.doc、test1111.docm、t1.docm、INVOICE.docm、Invoice_Example.dotm、Doc1.docm、Fake Resume.doc、wwww.doc和zzzzz.dot等。
在文档内,包含嵌入的恶意宏,其中的一些被混淆。这些恶意宏都具有相同的功能——投放到用户电脑,并执行Javascript脚本。该JavaScirpt脚本将会下载一个ZIP文件,进行解压后执行其中的内容。我们发现目前存在两类Payload,一种是基于NodeJS,另一种是基于Java。
下图为恶意软件所嵌入文档的截图,我们看到该文档伪装为发票和Office提示界面:


下图为其中一个恶意文档中的宏代码:

 

NodeJS App Payload

在NodeJS ZIP压缩包中包含几个文件。宏首先执行node.exe和install.js,它会执行一个安装脚本来检查用户是否具有管理员权限,并查看用户所在的组。然后,调用install.vbs文件,该文件又调用install_do.js。如果该进程能够进行权限提升,那么就会增加新的防火墙规则,以保证它即将安装远程访问工具能够正常通信。它通过在启动文件夹中创建快捷方式(LNK)文件的方式来保持持久性。Install_do.js还将在系统浏览器扩展目录中安装浏览器扩展,并创建一个timestamp.dat文件。该文件用于保存安装时间的时间戳值,后面将在攻击链中用于被感染主机的唯一标识符。
然后,Ink_service.vbs(如下图所示)将会启动,它将运行service.js,这是一个只有一行代码的文件,负责通过开发辅助模块node-bindings( https://www.npmjs.com/package/bindings )加载一个名为app的本地NodeJS模块。
NodeJS压缩包的内容:

添加防火墙规则的代码部分:

加载本地NodeJS扩展:

 

本地NodeJS扩展如何启动远程访问工具

位于build/app.node的扩展会通过taskkill /IM <文件名>来终止目前打开的Web浏览器,然后执行Revisit 0.63应用程序( http://rvisit.net/ ),该应用程序实际上是一个合法且经过签名的远程访问工具。请注意,Revisit目前有0.8.3的版本,这也就意味着DLOADR安装的是旧版本的远程访问工具。
与TeamViewer类似,Revisit会通过机器标识符和密码登录,从而显示图形用户界面(GUI)。这些信息需要传递给远程用户,才能够成功连接到当前主机。恶意扩展会执行此客户端,但它不会显示GUI窗口,原因在于其扩展中包含一段搜索“TFMain”窗口的代码。一旦搜索到,它将滥用带有参数SW_HIDE的ShowWindow应用程序编程接口( https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548(v=vs.85).aspx ),从而实现隐藏客户端窗口。
下图展示了VisIT的应用程序窗口及其他相应窗口的列表。我们需要注意一些窗口的名称:通常来说TPanel和TMaskEdit中包含主机ID,而TMemo中包含密码信息。

下图展示了负责隐藏TFMain窗口,并读取机器码和密码的代码部分。在此之后,代码会通过滥用FindWindowEx API( https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500(v=vs.85).aspx )来识别所需的窗口,并通过发送WM_GETTEXT消息( https://msdn.microsoft.com/en-us/library/windows/desktop/ms632627(v=vs.85).aspx )来读取该字段的内容。这两个值将保存到名为vnc_access.dat的文件中。
在此之后,app.node将执行vnc_access.js脚本,该脚本将收集到的远程访问工具配置上传到命令与控制(C&C)服务器上。至此,攻击者就可以看到被感染主机的ID和密码,从而能够远程连接到被感染主机,获得对被感染主机的完全控制权限。
获取远程访问工具的配置信息:

将信息上传至C&C服务器:

 

JavaAPP Payload如何启动远程访问工具

基于Java的Payload工作原理与NodeJS类似,但执行顺序有所不同,具体如下:
1、宏执行exe -jar elevate.jar & exit(JavaAPP被重命名为javaw.exe,一个用于运行Java的合法Oracle程序);
2、jar执行elevate.exe和elevate.bat(其中elevate.exe是一个尝试进行权限提升,并以提升后的权限启动程序的工具,可能受到GitHub上托管的开源工具的启发);
3、bat脚本执行javapp.exe -jar JavaApp.jar;
4、jar函数类似于NodeJS扩展(app.node)中的JavaScript和VisualBasic脚本,唯一的区别是其使用Java语言编写而成,JavaApp.jar会安装恶意浏览器扩展,建立持久性,终止浏览器进程并重新启动,最后启动远程访问工具并获得配置信息。

 

使用恶意浏览器扩展作为后门

在分析NodeJS和Java模块时,我们发现该恶意软件为Google Chrome和Microsoft Edge都部署了恶意浏览器扩展。一旦恶意的NodeJS或Java进程检测到系统上存在启动的Chrome或Edge浏览器,它将终止原有的浏览器进程,并创建另一个进程,同时在新创建的进程中加载恶意扩展。在Chrome上,它还会使用命令行参数和Selenium( https://docs.seleniumhq.org/ )来禁用安全检查,从而使恶意扩展顺利加载。
我们发现,这种恶意扩展程序适用于Chrome,但同时也与Edge兼容。这种兼容性是微软去年推出的一项功能( https://docs.microsoft.com/en-us/microsoft-edge/extensions/guides/porting-chrome-extensions ),可以帮助开发人员将他们的Chrome扩展程序移植到Edge浏览器中。同时,Selenium也可以用于将扩展加载到Edge中。
恶意扩展被设计为后门。只要被感染用户打开网页,恶意扩展程序就会将网站URL和HTTP Referrer信息发送到C&C服务器。然后,C&C服务器可以返回任何恶意代码,该代码将被网页上的扩展程序执行。在我们的测试过程中,我们没有发现C&C服务器向被感染主机发送任何代码。
此外,该扩展程序还可以嗅探某些操作,包括单击按钮、从下拉列表中选择项目、在网页表单中输入任何值。在嗅探到这些信息后,该扩展会立即将此信息发送给C&C服务器。我们已经在Chrome和Edge上验证了此行为。
创建一个新的Chrome 进程以加载恶意扩展:

恶意Chrome扩展程序可以移植到Edge:

扩展程序如何嗅探用户操作:

 

C&C通信

下图展示了受感染主机与C&C服务器之间发生的C&C通信。恶意软件在POST请求中使用以下未经加密的参数来发送嗅探数据:
1、deviceID:被感染时间的时间戳;
2、url:活动浏览器的选项卡中当前打开的网站;
3、/api/navigate/:C&C服务器的URL路径,用于报告被感染用户所有访问过的URL。
在后面,我们使用被感染主机访问了google.com,并成功捕获到了记录该访问行为的相关通信。
被感染主机与C&C服务器的通信:

根据上图中信息,我们已经知道,/api/input/是用于向C&C服务器报告所有用户输入的URL路径。而下图展现了在被感染主机上使用Google进行搜索时产生的通信。其中,name是用户输入查询的HTML元素ID,value是在输入字段中输入的文本。下图中高亮显示的文本展现了被感染用户在Google网站的输入框中输入inputString后产生的C&C通信。

 

总结

事实上,考虑到此类恶意软件的性质及其Payload造成的潜在影响,我们认为个人和组织应该采用行之有效的策略来抵御恶意电子邮件的威胁。此外,用户应该启用Microsoft Word的安全设置,对宏进行限制,或者直接禁用宏。
我们已经向Google和Microsoft披露了我们的调查结果,并将于他们展开合作,确保恶意扩展不会对Chrome和Edge浏览器的安全性产生影响。
IoC信息请参见附录: https://documents.trendmicro.com/assets/appendix-malicious-edge-and-chrome-extension-used-to-deliver-backdoor.pdf

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多