在过去的几年间,Linux系统已成为各路威胁分子眼里越来越明显的目标。据我们观察,2023年上半年出现了260000个独特的Linux样本,正如本文表明的那样,攻击Linux的活动可以持续多年,而不被网络安全界注意。

我们决定调查一组可疑3950947b0f.u.fdmpkg[.]org

•c6d76b1748b67fbc21ab493281dd1c7a558e3047.u.fdmpkg[.]org

•0727年bedf5c1f85f58337798a63812aa986448473.u.fdmpkg[.]org

•c3a05f0dac05669765800471abc1fdaba15e3360.u.fdmpkg[.]org

在安全研究人员看来,这些域名看起来令人担忧,因为它们可能表明恶意软件使用域名生成算法进行C2通信。于是,我们决定仔细研究fdmpkg[.]org域名。

一个恶意的Debian代码库

我们发现有问题的域名有一个deb.fdmpkg[.]org子域名。在浏览器中输入该子域名,可显示以下网页:

图1

正如页面所示,这个子域名声称托管“Free Download Manager”(免费下载管理器)这款软件的Debian代码库。我们进一步分析后发现,这个软件的Debian软件包可以从https://deb.fdmpkg[.]org/freedownloadmanager.deb URL下载。该软件包其实含有在安装时执行的受感染的postinst脚本。该脚本将两个ELF文件投放到路径/var/tmp/crond和/var/tmp/bs下。然后,它通过创建一个cron任务(存储在/etc/cron.d/collect文件中)来建立持久性,该任务每10分钟启动/var/tmp/crond文件。

受感染软件包安装的免费下载管理器版本于2020年1月24日发布。与此同时,postinst脚本含有俄语和乌克兰语评论,包括有关恶意软件改进的信息以及黑客活动分子的声明,提到了日期20200126(2020年1月26日)和20200127(2020年1月27日)。

图2

基于DNS的后门

一旦安装了恶意软件包,可执行文件/var/tmp/crond在每次启动时都会通过cron运行。这个可执行文件是一个后门,并不从外部库导入任何函数。为了访问Linux API,它在静态链接dietlibc库的帮助下激活系统调用。

一旦启动,该后门向域名发出type A DNS请求。作为对该请求的响应,后门接收两个IP地址,它们编码辅助C2服务器的地址和端口。我们研究时返回了以下地址:

•172.111.48[.]101

•172.1.0[.]80

上面列表中的第一个IP地址是辅助C2服务器的地址,而第二个地址含有连接端口(编码在第三和第四个八位字节中)以及连接类型(编码在第二个八位字节中)。

解析DNS请求的响应后,后门启动反向shell,使用辅助C2服务器进行通信。通信协议是SSL或TCP,具体取决于连接类型。以SSL为例,crond后门启动/var/tmp/bs可执行文件,并将所有进一步的通信委托给它。否则,反向shell则由crond后门本身创建。

Bash窃取器

在发现crond后门创建了一个反向shell后,我们决定检查攻击者如何使用这个shell。为此,我们在恶意软件分析沙箱中安装了受感染的免费下载管理器软件包。在分析了crond生成的流量后,我们确定攻击者在沙箱中部署了Bash窃取器。这个窃取器收集各种数据,比如系统信息、浏览历史记录、保存的密码、加密货币钱包文件,以及知名云服务(AWS、谷歌云、Oracle Cloud Infrastructure和Azure)的凭据。

图3

从受感染的机器收集信息后,窃取器从C2服务器下载一个上传工具二进制文件,并将其保存到/var/tmp/atd。然后,它使用这个二进制文件将窃取器的执行结果上传到攻击者的基础设施。

我们没有观察到通过反向shell进行的任何其他活动,因此整条感染链可以用下图来描述:

图4

揭开感染途径的奥秘

在分析了感染链的所有组件后,我们想找出受感染的Debian软件包如何分发给受害者。我们查看了免费下载管理器的官方网站(freedownloadmanager[.]org)。结果发现,可从该网站下载的软件包原来托管在files2.freedownloadmanager[.]org域名上,它们并没有被植入后门。

然后我们决定对fdmpkg[.]org进行一番开源检查。这番检查发现了StackOverflow和Reddit等网站上的十几个帖子,用户一直在讨论受感染的免费下载管理器分发引起的问题,而没有意识到他们实际上成为了恶意软件的受害者。这些帖子是在从2020年到2022年的三年时间里发布的。

在Unix Stack Exchange上的这样一个帖子(https://unix.stackexchange.com/questions/590510/kubuntu-20-04-shutdown-reboot-hangs-at-waiting-for-process-crond)中,发帖者抱怨“Waiting for process: crond”消息阻止了计算机的关闭:

图5

处理同一个问题的用户对这个帖子作出了回复,他们认为这个问题是由免费下载管理器软件引起的。他们建议删除三个文件:/etc/cron.d/collect、/var/tmp/crond和/var/tmp/bs。然而,没有人提到这三个文件是恶意文件。

图6

在2020年创建的另一个帖子中,一位Reddit用户询问是否可以在不运行postinst脚本的情况下安装免费下载管理器,这个用户不知道该脚本其实含有恶意软件。

图7

此外,发帖人粘贴了脚本内容;另一位Reddit用户在评论中指出,这可能是恶意脚本。然而,这些用户没有识别出分发受感染软件包的网站,也没有发现这个脚本执行的功能。

我们还在Reddit上发现了一个帖子,提到该软件的官方网站早在2015年就在传播恶意软件了。然而后来发现,这个帖子中描述的恶意软件与我们发现的活动无关。

图8

社交网络上的所有这些帖子让我们认为恶意的Debian软件包可能是通过freedownloadmanager[.]org网站、经由供应链攻击分发的。因此,我们决定寻找证明或反驳这种说法的进一步的事实。

意外的重定向

在检查YouTube上有关免费下载管理器上的视频时,我们发现了几个演示如何在Linux机器上安装该软件的教程。我们观察到了出现在所有这些视频中的以下操作:

•视频制作者在浏览器中打开免费下载管理器的合法网站(freedownloadmanager[.]org);

•之后他们点击了该软件Linux版本的“下载”按钮;

•他们被重定向到恶意的https://deb.fdmpkg[.]org/freedownloadmanager.deb URL,其中托管了受感染版本的免费下载管理器。

图9

我们还注意到,并非在所有情况下都重定向到恶意的deb.fdmpkg[.]org域名。在同一时间段发布的另一个视频中,一名用户点击了该软件网站上的“下载”按钮,最终从合法网站下载了免费下载管理器。

因此,恶意软件开发人员编写的恶意重定向可能以某种程度的概率出现,或者基于潜在受害者的数字指纹出现。

我们进一步检查了合法的免费下载管理器网站,想知道软件开发人员是否意识到他们的网站可能受到威胁。在该软件博客于2021年发表的一条评论中,一位用户抱怨,他观察到可以访问5d6167ef729c91662badef0950f795bf362cbb99.u.fdmpkg[.]org域名。用户blogadmin对这个评论的回复称,免费下载管理器与这个域名无关,建议只使用该软件的官方版本:

图10

然而,没有人进而去发现这个用户最后如何安装了这个可疑版本的免费下载管理器。因此,软件的官方网站继续分发恶意Debian软件包,直到至少2022年。

后门的起源

在确定了受感染的免费下载管理器软件包如何分发之后,我们决定检查在我们的研究过程中发现的植入程序是否与其他恶意软件样本有代码重叠。事实证明,crond后门是一个名为Bew的后门的修改版本。自2013年以来,面向Linux的卡巴斯基安全解决方案一直可以检测出其变体。

图11

2013年版Bew的代码(左边,MD5: 96d8d47a579717223786498113fbb913)和crond后门的代码(右边,MD5: 6ced2df96e1ef6b35f25ea0f208e5440)

Bew后门已经被分析了多次,第一次分析结果发表在2014年。此外,2017年,CERN发布了有关使用Bew的BusyWinman活动的信息。据CERN声称,Bew感染是通过路过式下载进行的。

至于窃取器,它的早期版本由Yoroi在2019年予以描述。它是在利用Exim邮件服务器中的漏洞后被使用的。

图12

2019年描述的Bash窃取器(左边,MD5: 8C7EFB0493B6FB805B2C2F0593DE0AB1)和2022年的FDM活动中使用的窃取器(右边,MD5: AD7F99D44931489B2C38DF7A5A166C4D)

为什么没有更早发现恶意软件包?

这次活动中观察到的恶意软件自2013年以来就已经为人所知。此外,从社交网络上的多个帖子可以看出,这些植入程序具有很强的蒙蔽性。据我们观察,这次活动的受害者遍布世界各地,包括巴西、中国、沙特阿拉伯和俄罗斯,鉴于这些事实,恶意的免费下载管理器软件包在三年多的时间里未被发现似乎不可思议。

我们认为这归咎于以下几个因素:

•与Windows相反,Linux恶意软件极少被观察到;

•感染恶意Debian软件包有一定的概率:一些用户收到了受感染的软件包,另一些用户最终下载了合法软件包;

•讨论免费下载管理器问题的社交网络用户没有怀疑问题是由恶意软件引起的。

虽然这起活动目前处于不活跃状态,但免费下载管理器的这个案例表明,凭肉眼很难检测Linux系统上正在进行的网络攻击。因此,Linux系统(桌面和服务器)必须配备可靠高效的安全解决方案。

攻陷指标

•文件校验和 

b77f63f14d0b2bde3f4f62f4323aad87194da11d71c117a487e18ff3f2cd468d(恶意Debian软件包)

2214c7a0256f07ce7b7aab8f61ef9cbaff10a456c8b9f2a97d8f713abd660349(crond后门)

93358bfb6ee0caced889e94cd82f6f417965087203ca9a5fce8dc7f6e1b8a3ea(bs后门)

d73be6e13732d365412d71791e5eb1096c7bb13d6f7fd533d8c04392ca0b69b5(atd上传工具)

•文件路径

/etc/cron.d/collect

/var/tmp/crond

/var/tmp/bs

/var/tmp/atd

•网络指标

fdmpkg[.]org

172.111.48[.]101