Glupteba变种:跨平台、模块化恶意软件分析
2020-10-01 10:40:00 Author: www.4hou.com(查看原文) 阅读量:273 收藏

研究人员近期发现一个Glupteba的变种。Glupteba是Operation Windigo 攻击活动中使用的木马,研究人员之前报告过其针对MikroTik 路由器的攻击以及C2 服务器的更新。

该变种的行为与其他Glupteba 变种有相似之处。此外,该变种还使用了模块化的广告恶意软件ManageX。

Figure-1-Attack-chain-diagram.jpg

图 1. 攻击链

使用Go 语言

在解压了攻击中使用的主释放器后,研究人员发现该恶意软件变种是用Go 语言开发的。Go 语言只有10 年的历史,而且用它来开发恶意软件是比较少见的。恶意软件开发人员选择Go 语言的原因可能是该语言的特征使得开发的恶意软件可以在进入受害者系统时不被发现。其中一个特征是可以用1个库来编译但是在不同的操作系统上仍然可以执行。这对跨平台的恶意软件来说是非常重要和有优势的。

用Go 语言开发的恶意软件的文件大小都比较大。这是因为Go 语言的标准库并没有很好的模块化,因此导入单个函数就会引入大量的代码。这也可以帮助恶意软件绕过系统的检测,因为许多反病毒软件可能不能或不会扫描太大的文件。而且研究人员也很难对大文件进行静态分析。

释放器

Glupteba 攻击中的主释放器是通过安装rootkit 组件来实现驻留的,rootkit组件会注入恶意代码到svchost.exe 进程中。该进程会成为payload的下载器,因为Glupteba 将payload 看作模块,这也是一种隐藏恶意进程的方法,即将恶意进程伪装成正常的进程。

恶意软件的模块化的方法是通过释放组件到系统中来实现的,这也可以避免被反病毒软件检测到。

因为释放器使用了UPX 打包器打包,因此静态分析并没有发现太多东西。

Figure-2-Indications-of-a-packed-sample.jpg

图 2. 打包的样本

使用UPX 解压器后发现样本是用C++编译的。

Figure-3-Compiler

图 3. 编译器

解压文件后表明样本是用Go 语言编写的。

Figure-4-Strings-of-a-Golang-compiled-sample.jpg

图 4. Golang编译的样本代码

样本无法通过常见的工具来解压。必须在调试器中打开文件才可以看到其中的字符串。此外,一些恶意软件分析攻击严重依赖样本中可读的字符串来确定样本是否是恶意的。这也是为什么恶意软件作者使用打包器的另外一个原因。

Figure-5-Suspicious-strings-indicating-the-adware-payload.jpg

图 5. 表明恶意广告payload的可疑字符串

样本中的字符串表明在不同的平台上使用了web浏览器。其中一个payload 中包含了恶意广告扩展的安装。此外,web浏览器的安装也不仅限于Windows 平台,还包含Linux平台、安卓平台和iOS 平台的web 浏览器。

Figure-6-String-related-to-the-use-of-DoublePulsar-tool.jpg

图 6. 与DoublePulsar 工具使用相关的字符串

恶意软件代码中提到的DoublePulsar 是Shadow Brokers 泄露的一个后门植入工具。该工具可以确保其他恶意代码的执行,并且一般是通过EternalBlue 漏洞利用来进行传播。

Figure-7.-Shellcode-injection-using-DoublePulsar-tool

图 7. 使用DoublePulsar 工具的shellcode 注入

扩展安装器payload

研究人员发现安装在一些机器上的payload 是一个安装的扩展,这些扩展通过执行wcrx.exe 来安装到系统中,wcrx.exe 是一个类似释放器的打包的文件。该文件会完成以下动作:

· 在机器上安装的web浏览器中添加名为chrome_filter 的浏览器扩展;

Figure-8-Extension-installed

图 8. 安装的扩展

· 连接到hxxp://fffffk[.]xyz/down/m_inc[.]js?1589344811463 并替换来自浏览器扩展的m_inc.js 文件。这是对每个访问的页面都会执行的内容脚本。

Figure-9.-URL-of-the-JS-file

图 9. JS 文件的URL

Figure-10-Contents-of-m_inc.js

图 10.  m_inc.js的内容

· 开始rundll32.exe,然后查询hxxp://info[.]d3pk[.]com/js_json 来寻找 JSON 列表,其中包含要注入到IE 浏览器的脚本。

Figure-11.-Memory-strings-of-rundll32.exe

图 11. rundll32.exe 内存字符串

研究人员进一步分析发现,系统中的master_preferences 文件含有恶意文件的迹象,比如chrome AppID。 文件包含有用户想要应用到计算机Chrome 浏览器的设置。在该文件中安装Chrome 扩展是一种向 Chrome浏览器添加功能和特征的方式。

Figure-12-Contents-of-master_preferences

图 12. master_preferences 的内容

其中的内容是一个Chrome AppID,这也是ManageX chrome 扩展的IoC。ManageX使用一个Chrome 浏览器的扩展来追踪用户浏览器的活动并与C2 域名进行通信。

漏洞利用

攻击中的释放器还包括使用初始的机器作为跳板,然后扫描内网来寻找有漏洞的机器。然后启动EternalBlue 漏洞利用在网络中传播释放器。

EternalBlue 漏洞利用是Microsoft SMBv1 中的安全漏洞(CVE-2017-0143 到 CVE-2017-0148),广泛应用于Windows 7、Windows Server 2008、Windows XP以及部分Windows 10系统中。这些样本中的字符串表明了目标Windows系统的版本、端口、架构,与Microsoft SMBv1 使用的非常类似。但是目前Microsoft SMBv1 都是被禁用或卸载了的。

Figure-13-Strings-from-the-unpacked-sample图 13. 未解压的样本中的字符串

Figure-14-Strings-from-the-unpacked-sample

图 14. 未解压的样本中的字符串

微软在2017年3月 就发布了这些漏洞的补丁,但是许多企业仍然没有进行修复。此外,还有许多恶意软件作者使用EternalBlue 漏洞利用进行加密货币挖矿等恶意活动。

本文翻译自:https://www.trendmicro.com/en_us/research/20/i/cross-platform-modular-glupteba-malware-uses-managex.html如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/jL1Y
如有侵权请联系:admin#unsafe.sh