-
-
[翻译]新版本SLUB摒弃GitHub,使用Slack通信
-
发表于: 2019-7-28 06:49 7415
-
原文作者 Cedric Pernet, Elliot Cao, Jaromir Horejsi, Joseph C. Chen, William Gamazo Sanchez
我们四个月前曝光了一个新的恶意软件,趋势科技将其命名为SLUB。SLUB此前利用具有CVE-2018-8174 VBScript引擎漏洞的网站进行水坑攻击,并使用GitHub和Stack进行恶意软件与控制服务器之间的通信。
7月9日,我们通过另一个水坑攻击的网站发现了新版本的SLUB。这个恶意网站利用的是CVE-2019-0752,这是趋势科技发现的一个Internet Explorer 0day(ZDI)漏洞,该漏洞今年4月刚刚修补。这是我们第一次发现此漏洞的实际利用。
这个新版本的SLUB恶意软件已经停止使用GitHub作为一种交流方式,而是通过两个免费工作区大量使用Slack。 Slack是一个协作消息系统,允许用户通过使用频道创建和使用自己的工作空间,类似于互联网中继聊天(IRC)系统。 Slack已关闭了SLUB相关的工作区。
巧合的是,涉及SLUB水坑攻击的两个网站都有支持朝鲜政府的内容。
SLUB恶意软件的感染源于对具有CVE-2018-8174或CVE-2019-0752漏洞的网站进行水坑攻击。 使用未修补的Internet Explorer浏览器浏览这些网站的电脑将被SLUB加载程序感染。
下面列出了漏洞利用脚本执行加载程序的步骤。 感染链类似于之前的SLUB版本; 然而,这个版本采用不同的技术来绕过杀毒软件de启发式和机器学习算法:
在PowerShell下使用隐藏的WindowStyle和混淆手段(obfuscation)来加载SLUB。
使用Rundll32调用从水坑攻击感染网站下载的“假冒C ++运行”恶意DLL(假冒dll名称:mfcm14u.dll)。
恶意DLL按照Windows命名惯例实现导出符号,并使用实际的Windows API名称:AfxmReleaseManagedReferences。 请注意,这种命名约定的组合可以帮助攻击者绕过机器学习算法。
图1. 下载和启动SLUB加载程序的PowerShell脚本
PowerShell脚本将检查系统的体系结构,以确认应该下载哪些恶意DLL文件。 恶意DLL文件实际上是SLUB加载器。 对于x86系统,将下载32位SLUB加载程序,并将使用CVE-2019-0808,这是3月份修补的一个相对较新的漏洞。 在x64系统中,将下载64位SLUB加载程序,并将利用CVE-2019-0803(4月修补的另一个新漏洞)。 两者都用于Windows的权限提升。 然后,加载程序将检查系统的体系结构,以确认是否要下载并使用x86版本或x64版本的SLUB恶意软件来感染受害者。所有漏洞利用程序,加载程序和SLUB恶意软件都直接托管在用于水坑攻击的感染网站上。
图2. SLUB恶意软件感染链
图3. SLUB恶意软件感染链的网络流量特征
自从我们发布了关于SLUB的上一份报告以来,后门已经更新,并且实施了一些改进。 最值得注意的变化是完全采用Slack作为组织和命令受感染机器的途径。
下面列出详细的变化:
不再使用GitHub
操作员创建一个Slack工作区
每个受感染的计算机都加入工作区,在工作区中创建一个名为<use_name> - <pc_name>的单独通道
命令和控制(C&C)通信仅使用这些Slack通道; 如果操作员想要在受感染的机器上执行命令,他会向受害者特定的通道插入一条消息并固定此消息
受害者机器从其专用通道读取固定消息,解析消息并执行所请求的命令
除了这些改动,我们还从两个Slack令牌发现了新信息,这两个Slack令牌被硬编码为二进制(类似于以前的版本)。