针对Linux桌面用户的罕见间谍软件EvilGnome

2019-09-06 22:14:0112710人阅读


介绍


近期,Intezer Labs的研究人员发现一种新的Linux恶意软件EvilGnome,该恶意软件会伪装成Gnome拓展,但其实际上为Linux后门植入程序。EvilGnome主要针对Linux桌面用户,这点很罕见,毕竟Linux服务器占总Linux使用组成的70%,而桌面作业系统仅只有2%。过去在Linux上发现的加密矿工或是DDoS僵尸网络等恶意工具,通常都是瞄准服务器进行攻击的。

另外有证据表明该恶意软件可能跟俄罗斯APT组织Gamaredon有关。目前,所有主要的安全解决方案都没有检测到此恶意软件。

1564553390853338.png

图1:VirusTotal对EvilGnome样本的检测

我们传到VirusTotal的样本可能是一个测试版本,有未完成的键盘记录功能,还有注释、符号名和编译元数据,这些通常不会出现在生产版本中。EvilGnome的功能包括桌面截图、文件窃取、从麦克风捕获录音以及下载和执行其他模块。


与Gamaredon组织的关联


Gamaredon组织据称与俄罗斯有关,自2013年以来一直活跃,主要针对与乌克兰政府有关的个人,方式是通过鱼叉式网络钓鱼感染受害者盗窃目标信息。该组织的特点是其信息窃取工具,还有通过计划任务实现持久性的机制。

我们在对EvilGnome的调查中发现了它与Gamaredon的一些关联性:

1.托管商相同

EvilGnome使用的托管服务商是Gamaredon多年来一直使用的。具体来说,EvilGnome的C2 IP地址(195.62.52.101)在两个月前解析的两个Gamaredon的域名——gamework.ddns.net和workan.ddns.net相关联:

1564553411614351.png

图2:EvilGnome C2 IP查询

用RiskIQ来映射gamework.ddns.net域的历史,发现EvilGnome运行的IP地址两个月前由Gamaredon控制。

1564553420353403.png

图3:gamework.ddns.net DNS时间轴

2.基础设施相似

在研究EvilGnome C2时,我们发现它通过端口3436提供SSH服务。然后我们检查了目前正在运行的三个Gamaredon Group C2服务器上的3436端口,发现一个服务器开启了这个端口的SSH服务:

1564553454509128.png

图4:EvilGnome C2和Gamaredon的rnbo-ua.ddns.net的端口3436上都提供SSH服务

继续扫描,我们确定了另外两个服务器,其域名类似于Gamaredon域的命名模式(使用.space TTLD和ddns):

185.158.115.44  – > kotl.space

185.158.115.154  – > clsass.ddns.net

3.使用工具相似

Gamaredon不使用任何已知的Linux植入程序,我们也很难对不同操作系统间的工具进行比较,因为它们的开发过程和要求可能不相同,但我们可以从更高的层次上观察到它们的相似之处。EvilGnome采用的技术和模块,包括对SFX的使用,持久化任务调度程序和信息窃取工具,让我们想起了Gamaredon的Windows工具。在下一节中,我们将详细分析EvilGnome。


技术分析


使用Makeself SFX进行部署

此植入程序以自解压存档shell脚本(使用makeself创建)的形式提供。

makeself.sh是一个小型shell脚本,它能从目录生成一个可自解压的tar压缩存档,生成的文件显示为一个shell脚本(大多都有.run后缀),并且可以按shell脚本启动。然后,存档文件将解压到临时目录并执行任意命令(例如安装脚本)。这与Windows中使用WinZip自解压器生成的存档文件非常相似。

值得注意的是,操作人员没有从生成的makeself SFX中删掉元数据。封装日期、开发路径和工具的文件名都是公开的。我们可以观察到这个样本于7月4日创建:

1564553593331591.png

1564553600454747.png

图5:Makeself封装的元数据和归档文件的元数据

如上图所示,makeself脚本在解包后运行./setup.sh。

根据makeself的选项,我们能够指示脚本在不执行的情况下解包:

1564553609898669.png

图6:拆包Makeself

存档包含四个文件:

· gnome-shell-ext- 间谍代理可执行文件

· gnome-shell-ext.sh – 检查gnome-shell-ext是否已经在运行,如果没有则执行

· rtp.dat – gnome-shell-ext的配置文件

· setup.sh – 解包后由makeself运行的安装脚本

安装脚本将代理程序安装到〜/ .cache / gnome-software / gnome-shell-extensions /,试图伪装成Gnome shell扩展。Gnome shell扩展允许调整Gnome桌面并添加功能。

持久性是通过在crontab中每分钟运行一次gnome-shell-ext.sh来实现的。

最后,脚本执行gnome-shell-ext.sh,后者又启动核心可执行文件gnome-shell-ext:

1564553625397817.png

1564553631696121.png

图7:setup.sh


间谍代理


Intezer analysis对代理的分析显示此段代码之前未发现过:

1564553657622885.png

图8:Intezer Analyze报告的间谍代理样本

此文件中大量独特的“基因”不是我们常在Linux文件中看到。间谍代理是用C ++构建的,使用具有面向对象结构的类。二进制文件没有被剥离,这使我们能够理解符号和开发人员的意图。

启动时,代理程序将在新进程中运行,然后代理读取rtp.dat配置文件并将其直接加载到内存中:

1564553669578770.png

图9:从rtp.dat加载配置

我们在配置文件中标记了值得注意的字段:

1564553677887623.png

图10:配置剖析

前四个字节是C2的IP地址的十六进制表示:

0x65343ec3  - > 0xc3.0x3e.0x34.0x65  - > 195.62.52.101


模块


间谍代理包含五个名为“Shooter-”的模块:

1564553692911046.png

图11:“Shooter”模块

· ShooterSound – 捕获用户的麦克风音频并上传到C2

· ShooterImage – 捕获截图并上传到C2

· ShooterFile – 扫描文件系统以查找新创建的文件,并将它们上传到C2

· ShooterPing – 从C2接收新命令

· ShooterKey – 未实现也未使用,很可能是未完成的键盘记录模块

每个模块都在一个单独的线程中运行,共享资源(例如配置)的访问由互斥锁保护。

这些模块使用密钥“sdg62_AS.sa $ die3”加密他们的输出并使用RC5解密来自C2的数据,使用的是某俄罗斯开源库的修改版本:

1564553717583808.png

图12:RC5库

在连接失败,或者C2指示时,这些模块将其输出存储在~/ .cache / gnome-software / gnome-shell-extensions / tmp /:

1564553727208799.png

图13:存储的文件

我们现在将深入研究这五个模块及其选项:


ShooterPing


ShooterPing模块处理从C2接收的命令:

1564553753144114.png

图14:C2命令

包括:

· 下载并执行新文件

· 为文件扫描设置新过滤器

· 下载并设置新的运行时配置

· 将存储的输出传输到C2

· 停止shooter 模块运行

其他模块都以恒定间隔运行,由其中一个配置参数定义。C2可以通过ShooterPing下载新参数来控制此间隔。


ShooterFile


ShooterFile模块使用筛选器列表扫描文件系统,同时忽略特定文件和文件夹,如下图所示:

1564553775816695.png

图15:文件扫描过滤器

我们可以从filter_accepted_files列表中看到,代理的目的是窃取与文档相关的文件,但恶意软件没有使用该列表,表明还在开发中。


ShooterAudio


1564553787149626.png

图16:使用PulseAudio捕获音频

ShooterAudio模块使用PulseAudio从用户的麦克风捕获音频,使用的是rtp.dat的默认配置,模块每次迭代仅记录80,000字节的音频大小,因此模块只能在短时间内记录音频,这样模块起不了作用,除非C2设置更大的记录尺寸。

ShooterImage

此模块打开与XOrg显示服务器的连接,该服务器是Gnome桌面的后端。它使用Cairo开源库来截取用户桌面的截图。

1564553795633968.png

图17:使用XOrg Server捕获的屏幕截图


预防和反应


建议想要检查是否被感染的Linux用户检查“~/ .cache / gnome-software / gnome-shell-extensions”目录中的“gnome-shell-ext”可执行文件是否存在。 我们还基于代码重用技术创建了一个自定义YARA规则,用于检测EvilGnome的未来变体。


结论


EvilGnome是一种罕见的针对Linux桌面用户恶意软件。我们认为这是一个不成熟的测试版本,预计将来会出现新版本危害相关用户,这也可能会为该组织的走向带来更多启示。


IOCs


EvilGnome:

a21acbe7ee77c721f1adc76e7a7799c936e74348d32b4c38f3bf6357ed7e8032

82b69954410c83315dfe769eed4b6cfc7d11f0f62e26ff546542e35dcd7106b7

7ffab36b2fa68d0708c82f01a70c8d10614ca742d838b69007f5104337a4b869

195.62.52[.]101

Gamaredon组织:

185.158.115[.]44

185.158.115[.]154

clsass.ddns[.]net

kotl[.]space


本文翻译自:https://www.intezer.com/blog-evilgnome-rare-malware-spying-on-linux-desktop-users/

原文链接: https://www.4hou.com/web/19480.html

翻译作者:Change


0
现金券
0
兑换券
立即领取
领取成功