您永远不会独自一人走:人行道后门获得Linux变体

ESET研究人员发现了Sprablinggoblin APT组已经广泛的武器库中的另一个工具:人行道后门的Linux变体

ESET研究人员发现了Sprablinggoblin APT组已经广泛的武器库中的另一个工具:人行道后门的Linux变体

ESET研究人员发现了人行道后门的Linux变体,这是Spraklinggoblin APT组使用的多个自定义植入物之一。该变体在2021年2月对香港大学进行了部署,该大学在2020年5月的学生抗议活动期间已经被Spraplinggoblin瞄准了同一所针对的大学。我们最初将此命名为此后门StageClient,但现在仅将其称为Siendwalk Linux。我们还发现先前已知的Linux后门 - 幽灵大鼠,首先记录由360 NetLab - 实际上也是人行道Linux变体,与我们确定的样本具有多个共同点。

Spraklinggoblin是一个恰当的团体,其战术,技术和程序(TTP)与APT41和钡部分重叠。它利用基于Motnug和Chacha20的装载机,人行横道和人行道的后门以及Korplug(又名Plugx)和钴打击。尽管该小组主要针对东亚和东南亚,但我们还看到了闪闪发光的哥布林针对世界各地的各种组织和垂直行业,特别关注学术领域。SprablingGoblin是可以访问ShadowPad后门的团体之一。

该博客文章记录了人行道Linux,其受害者学,以及与最初发现的人行道后门的众多相似之处。

归因

人行道后门是Spraplinggoblin的独有的。除了人行道的Linux变体和各种闪闪发光的Goblin工具之间的多个代码相似性外,Sitewalk Linux样品之一使用C&C地址(66.42.103 [。] 222先前由Spaprlinggoblin使用

考虑到所有这些因素,我们以高置信度的人行道Linux归因于Sparklinggoblin APT组。

受害者学

即使我们现在知道,在Virustotal上,在我们的遥测中,我们发现只有一个受到这条人行道变体的受害者:一所香港大学,在学生抗议活动中,这两者都受到了两者的针对性,但在我们的遥测中,我们发现只有一个受害者,即使在我们的遥测中,我们发现只有一个受害者,即闪闪发光的戈布林(使用Motnug加载器和人行横道后门)和鱼贩(使用Shadowpad和Spyder后门)。请注意,当时我们将这两个不同的活动群放在更广泛的Winnti群体面额之下。

闪闪发光的戈布林first compromised this particular university in May 2020, and we first detected the Linux variant of SideWalk in that university’s network in February 2021. The group continuously targeted this organization over a long period of time, successfully compromising multiple key servers, including a print server, an email server, and a server used to manage student schedules and course registrations.

通往人行道Linux的道路

人行道,我们首先在其窗户形式中描述的人行道我们的博客文章8月24日Th,2021年,是一种多用途后门,可以加载从C&C服务器发送的其他模块。它利用Google文档作为死亡量解析器,而CloudFlare工人则将其用作C&C服务器。它可以正确处理代理背后的通信。

妥协链目前尚不清楚,但我们认为最初的攻击向量可能是剥削。该假设基于360 NetLab文章,描述了针对IP摄像机的Specter Botnet和NVR和DVR设备,以及香港受害者使用了脆弱的WordPress服务器的事实,因为有许多尝试安装各种网络壳的尝试。

我们首先记录了人行道的Linux变体停滞7月2日nd,2021年,当时没有连接到SprablingGoblin及其自定义的人行道后门。使用原始名称是因为字符串的重复出现停滞在代码中。

在进一步研究StageClient的同时,我们发现了一个关于幽灵僵尸网络由360 NetLab描述。该Blogpost描述了具有灵活配置的模块化Linux后门,该后门使用CHACHA20加密变体 - 基本上是StageClient功能的子集。进一步检查证实了这一假设。我们还发现了所有二进制文件中存在的功能,基础架构和符号的巨大重叠。

我们比较了停滞的样品E5E6E100876E652189E7D25FFCF06DE959093433与幽灵样品7DF0BE2774B17F672B96860D013A93E97862E6C并找到了许多相似之处,我们在下面列出了其中一些相似之处。

首先,C&C命令有一个重叠。接下来,样品具有相同的配置和加密方法的结构(见图1和图2)。

图1.用修改的符号的StageClient的配置

图2.带有修改符号的Spectre的配置

此外,样品的模块的管理方式几乎相同,大多数接口都是相同的。StageClient的模块只需要实现一个用于关闭模块的其他处理程序。五个已知模块中的三个几乎相同。

最后,我们可以看到比较样品的网络协议中的引人注目的重叠。CHACHA20的一种变体以相同的方式使用LZ4压缩两次。StageClient和Spectre都创建了许多线程(请参见图3和图4),以管理和接收异步消息以及心跳。

图3. StageClient的一部分StageClient :: StartNetwork功能

图4.幽灵的一部分StartNetwork功能

尽管所有这些惊人的相似之处,但仍有几个变化。最著名的是:

  • 作者从C语言切换到C ++。原因是未知的,但是由于其多态性支持,在C ++中实现此类模块化体系结构应该更容易。
  • 添加了通过HTTP交换消息的选项(见图5和图6)。

图5.在停滞不前发送消息

图6.在幽灵中发送消息

  • 可下载的插件被替换为实现相同目的的预编译模块;添加了许多新命令和两个新模块。
  • 添加了模块Taskschedulermod,作为内置的cron实用程序。它的Cron表存储在内存中;这些作业是通过网络接收的,并作为壳命令执行。
  • 添加了模块sysinfomgr,提供有关基础系统的信息,例如已安装的软件包和硬件详细信息列表。

这些相似之处使我们确信幽灵和停滞不见来自同一恶意软件家族。但是,考虑到2021年2月针对香港大学使用的停滞变体之间的众多代码重叠与Windows的人行道,如下一部分所述,我们现在相信Specter和Stageclient都是Siendwalk的Linux变体,因此我们已经决定决定将它们称为人行道Linux。

与Windows变体的相似之处

人行道窗口和人行道Linux共享太多相似之处,无法在此博客文章的范围内描述,因此在这里我们只涵盖了最引人注目的。

chacha20

在Chacha20加密的实现中,明显的相似性是显而易见的:两个变体都使用具有初始值的计数器0x0b这是在我们的博客文章中提到的,这是人行道CHACHA20实施的特殊性。

软件体系结构

一个人行道特殊性是使用多个线程执行一个特定的任务。我们注意到,在两个变体中,恰好同时执行五个线程,每个线程都有特定的任务。以下列表描述了每个函数;线程名称来自代码:

  • StageClient :: ThreadNetworkReverse
    如果尚未建立与C&C服务器的连接,则此线程定期尝试从Dead-Drop解析器检索本地代理配置和C&C服务器位置。如果上一步成功,它将尝试启动与C&C服务器的连接。
  • StageClient :: ThreadHeartDetect
    如果后门没有在指定的时间内接收命令,则此线程可以终止与C&C服务器的连接,或者切换到“ NAP”模式,该模式引入了该行为的较小更改。
  • StageClient :: ThreadPollingDriven
    如果没有其他排队的数据要发送,则此线程会定期将心跳命令发送到C&C服务器,该命令还可以包含当前时间。
  • StageClient :: ThreadBizMsgSend
    该线程会定期检查是否存在所有其他线程使用的消息队列中的数据,如果是的话,是否有数据进行处理。
  • StageClient :: ThreadBizmsghandler
    该线程定期检查是否有从C&C服务器收到的任何已待处理消息,如果是的话,可以处理它们。

配置

与人行道窗口一样,使用Chacha20解密配置。

校验和

首先,在解密之前,请进行数据完整性检查。在人行道的两种实现中,此检查都相似(见图7和图8):在CHACHA20非CE上计算的MD5哈希是串联到加密配置数据的。然后,对此哈希进行了预定义值,如果不相等,则人行道退出。

图7.人行道Linux:配置完整性检查

图8.人行道窗口:配置完整性检查

布局

图9提供了我们分析的样品中解密配置的摘录。

图9.配置零件E5E6E100876E652189E7D25FFCF06DE959093433(左)和FA6A40D3FC5CD4D975A01E298179A0B36AA02D4E(正确的)

与人行道Windows One相比,人行道Linux配置包含的信息少。这是有道理的,因为人行道窗口中的大多数配置工件都用作加密和网络参数,而其中大多数在人行道Linux中是内部的。

使用chacha20解密

如前所述,人行道使用主要的全局结构来存储其配置。如图10所示,首先使用修改后的Chacha20实现进行了这种配置。

图10. chacha20在人行道窗口(左)和人行道linux(右)中解密呼叫(右)

请注意,Chacha20键在两个变体中都完全相同,从而加强了两者之间的连接。

死水溶要

在两个样本中,死亡滴定解析器有效载荷都是相同的。正如我们在人行道上的博客文章中提醒的那样,图11描绘了从死亡销售解析器中获取的有效载荷的格式。

图11. Google文档文档中托管的字符串格式

对于第一个定界符,我们注意到publickey:弦的一部分被忽略;字符串AE68 […] 3eff直接搜索,如图所示图12

图12.人行道Linux的第一个定界线例程(左),结束定界符和中限界例程(右)

分界符是相同的,以及整个解码算法。

受害者指纹

为了指示受害者,在受害者的机器上收集了不同的人工制品。我们注意到所获取的信息完全相同,甚至以相同的顺序获取。

由于两种情况下的启动时间都是符合Windows的时间格式,因此我们可以假设操作员的控制器在Windows下运行,并且Linux和Windows受害者的控制器相同。支持这一假设的另一个论点是,在人行道的两个实现中使用的CHACHA20密钥都是相同的。

通信协议

数据序列化

受感染的机器和C&C之间的通信协议是HTTP或HTTP,具体取决于配置,但在这两种情况下,数据都以相同的方式序列化。实现不仅非常相似,而且在两个实现中都使用了相同的加密密钥,这再次强调了两个变体之间的相似性。

发布请求

在人行道上用于从C&C服务器提取命令和有效载荷的帖子请求中,一个明显的观点是使用两个参数GTSIDgtuvid,如图13所示。在Linux变体中使用了相同的参数。

图13.人行道窗口使用的帖子请求的示例

另一个有趣的点是,Windows变体以完全独立于位置的shellcode运行,而Linux变体是共享库。但是,我们认为恶意软件的作者可以使用诸如srdi将编译的人行道PE转换为shellCode,而不是手动编写shellCode。

命令

如表1所示,在Linux变体中仅实现或实现了四个命令。

表1.人行道的Linux版本中具有不同或丢失实现的命令

命令ID(来自C&C) Windows变体 Linux变体
0x7c 加载由C&C服务器发送的插件。 未在人行道Linux中实现。
0x82 收集有关运行过程和所有者的域信息(所有者SID,帐户名称,过程名称,域信息)。 没做什么。
0x8c 数据序列化函数。 未处理的命令,但属于默认情况,该命令正在向所有已加载的模块广播消息。
0x8e 将接收到的数据写入位于的文件%AllusersProfile%\ utxp \ nat \ , 在哪里<文件名>是返回的价值的哈希VirtualAlloc在每个执行恶意软件时。

版本控制

在Linux变体中,我们观察到Windows变体中未找到的特异性:计算版本号(见图14)。

图14.人行道Linux中的版本控制功能

硬编码日期可能是此版本的Sitewalk Linux的开发的开始或结束。最终计算是根据价值根据年度,每日和月份制定的2020年10月26日。在这种情况下,结果是1171798691840

插件

在人行道Linux变体中,内置模块;它们无法从C&C服务器中获取。这与Windows变体是一个显着的区别。其中一些内置功能,例如收集系统信息(sysinfomgr,例如),例如网络配置,直接通过Windows变体中的专用函数完成。在Windows变体中,可以通过C&C通信添加一些插件。

防御逃避

人行道上的窗户变体延长了其代码的目标。它修剪了所有数据和代码,这些数据和代码是不必要的,并将其加密给了其余的数据和代码。另一方面,Linux变体包含符号,并留下一些独特的身份验证键和其他未加密的工件,这使检测和分析变得更加容易。

此外,Windows变体中数量更高的内线函数表明,其代码是通过更高级别的编译器优化来编译的。

结论

2021年2月用来攻击香港大学的后门是与人行道后门的恶意软件家族,实际上是后门的Linux变体。该Linux版本与Windows对应物以及各种新颖性表现出了几个相似之处。

有关有关我们发布有关WeliveSecurity的研究的任何询问,请与我们联系金博棋牌appthrantintel@eset.com

ESET Research现在还提供私人APT Intelligence报告和数据供稿。有关此服务的任何查询,请访问ESET威胁智能页。

IOC

可以在我们的GitHub存储库

SHA-1 文件名 ESET检测名称 描述
FA6A40D3FC5CD4D975A01E298179A0B36AA02D4E ssh_tunnel1_0 linux/sidewalk.l 人行道Linux(StageClient变体)
7DF0BE2774B17F672B96860D013A93E97862E6C hw_ex_watchdog.exe linux/sidewalk.b 人行道Linux(幽灵变体)

网络

领域 IP 首先看到 笔记
rec.micosoft [。] GA 172.67.8 [。] 59 2021-06-15 人行道C&C服务器(StageClient变体)
66.42.103 [。] 222 2020-09-25 人行道C&C服务器(360 NetLab的Blogpost的Spectre变体)

MITER ATT&CK技术

该表是使用版本11MITER ATT&CK框架的框架。

战术 ID 姓名 描述
资源开发 T1587.001 开发功能:恶意软件 Spraplinggoblin使用自己的恶意软件库。
发现 T1016 系统网络配置发现 人行道Linux能够找到受损机器的网络配置,包括代理配置。
命令与控制 T1071.001 应用程序层协议:Web协议 人行道Linux通过C&C服务器通过HTTPS通信。
T1573.001 加密渠道:对称加密 人行道Linux使用CHACHA20来加密通信数据。

注册以收到电子邮件更新,每当我们在我们的乌克兰危机 - 数字安全资源中心

通讯

讨论