Linux挖矿病毒(kswapd0进程使cpu爆满)

news/2024/11/8 10:12:07 标签: linux, 运维, 服务器

一、摘要

事情起因:有台测试服务器很久没用了,突然监控到CPU飙到了95以上,并且阿里云服务器厂商还发送了通知消息,【阿里云】尊敬的xxh: 经检测您的阿里云服务(ECS实例)i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒。

二、排查病毒

1.检查服务器的CPU和内存使用率 top

也可以通过阿里云的监控平台查看进程的CPU和内存的占用率,并且还可以告知你进程目录。

发现进程(kauditd0)占用很高的CPU。并且test用户从来没创建过,而且直接通过kill 命令杀死进程之后不到一分钟又会启动。

2.检查系统登录日志

# 系统日志一般在 /var/log 目录
# 查看登录日志 可能是auth.log 或 securexx.log相关日志,都可以查看

# 此命令是检查登录失败的信息
more /var/log/auth.log | grep "Failed password"
# 此命令是检查登录成功的信息
more /var/log/auth.log | grep "Accepted password"

 从上图可知,有人一直在尝试登录系统。

从此图可知,这个test用户已经破解并成功登录。

3.找病毒服务

(1)查找异常IP 命令:netstat -natp

再查询IP地址,果然不对劲。

(2)通过ps -ef|grep kauditd0 找到进程ID

(3)查看病毒如何启动服务

通过systemd 管理的服务或者进程状态,来看一下该病毒到底是如何被启动的。命令:

systemctl status 进程ID

查看输出的CGroup段信息,可以看到一个后缀为.service的服务,该服务就是病毒的启动服务 

4.找病毒文件目录

(1)查找病毒文件,从陌生的test用户入手

        1)切换到test 用户的家目录下,查找隐藏目录

# 切换到test用户家目录
cd /home/test
# 查看当前所有目录
ls -a

那么找病毒文件目录就依次查找test用户目录下的文件 最终在.configrc7 目录下。并且进程和阿里云监控平台进程一致,说明就是这个就是病毒文件目录。 

(2)直接通过病毒的进程号查找

到/proc/目录下查找对应的pid号,即/proc/进程ID。可以在这目录下找到kswapd0进程的详细信息。

ll /proc/进程ID
 (3)分析该目录下的执行文件

拿到执行文件的MD5值发现基本均为挖矿病毒文件。  通过MD5值可以检测病毒的工具:https://s.threatbook.com/

 可以确定感染了挖矿病毒。  

5.排查系统定时任务

通过命令 crontab -l 可以查看是否有其他的定时任务。

再查看某个用户的定时任务 命令:crontab -l -u test

存在定时任务,将定时任务清除。进入文件 crontab -e -u test 保存并退出。

OK,现在定时任务删除成功。

6.关闭病毒服务(可优先处理)

为了服务的安全考虑,先把病毒服务关闭,再来清理病毒服务文件。

# 终止病毒启动服务
systemctl stop cron.service
# 终止挖矿服务的开机自启
systemctl disable cron.service 

杀死病毒进程,kill -9 进程ID 。观察 kauditd0 进程并且CPU也恢复正常了 。

 三、处置病毒

1.处理登录密钥

切换 test 账号,因为我们有root账号 切换test不需要输入密码。

# 切换test
su test
# 切换到家目录
cd ~
# 查看.ssh目录下的密钥文件
cat .ssh/authorized_keys

删除密钥 rm -rf  authorized_keys

2.删除病毒文件

在排查病毒的时候,我们已经找到了相关的病毒文件 在/home/test/.configrc7/a 目录。

通过命令直接删除 rm -rf ./* 表示删除当前目录下所有的文件。

在通过 find 命令查找是否还有其他的文件,找到之后直接删除。

再删除/home/test/目录下所有的文件(这个目录下存在定时执行的相关任务)。目录下都是隐藏文件

rm -rf /home/test/.*

3.处理test账号

下图可知目前test账号和用户组信息。

(1)删除 test 账号

# 删除test用户及其目录
userdel -r test

此图说明test账号还有个进程2162,将其杀死即可。

kill -9 2162

(2)验证

说明:test账号已经删除成功。

4.善后

可以修改Linux相关登录账号,限制服务器的访问的IP,修改ssh端口等。

参考:linux服务器挖矿病毒处理方案-CSDN博客

Linux挖矿应急响应处置_workminer-CSDN博客


http://www.niftyadmin.cn/n/5743726.html

相关文章

探索开放资源上指令微调语言模型的现状

人工智能咨询培训老师叶梓 转载标明出处 开放模型在经过适当的指令调整后,性能可以与最先进的专有模型相媲美。但目前缺乏全面的评估,使得跨模型比较变得困难。来自Allen Institute for AI和华盛顿大学的研究人员们进行了一项全面的研究,探索…

Linux驱动开发——零散知识分享

本篇文章记录我学习Linux驱动时的一些零散知识,旨在记录成长,分享心得,希望我的分享能给你带来不一样的收获! 1、C 语言字符串转换为整数二点函数atoi 在 C 语言中,atoi 函数用于将字符串转换为整数。其原型定义在头文…

【361】基于springboot的招生宣传管理系统

摘 要 使用旧方法对招生宣传管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在招生宣传管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的招…

java构造方法 C语言字符串的输入与输出

1. (1) public static void main(String[] args) { //student snew student(); student snew student("fanwenshuo",18);System.out.println(s.getAge());System.out.println(s.getName());} } //如果自定义了构造方法,系统不再默…

go 集成go-redis 缓存操作

一、什么是Go Redis 这是一个流行的Go语言Redis客户端库,它提供了细化的API,对每个Redis命令的功能进行了封装,使得用户只需记住命令,具体的用法可以直接查看接口的声明,使用成本较低。go-redis对数据类型按照Redis底…

基于SSM(Spring + Spring MVC + MyBatis)框架的快递管理系统

基于SSM(Spring Spring MVC MyBatis)框架的快递管理系统是一个典型的Web应用程序,用于管理和跟踪快递包裹的信息。下面我将提供一个简单的案例程序概述,包括主要的功能模块和技术栈介绍。 项目概述 功能需求 用户管理&#x…

【hdfs】【hbase】【大数据技术基础】实践二 HBase Java API编程

实践二 HBase Java API编程 为什么可以写命令还要编写程序?自动化批量处理? 尽管我们可以通过HBase的shell命令行工具进行数据操作,但在实际的生产环境中,为了提高效率和实现自动化处理,我们通常需要编写程序来与HBa…

前端八股文(一)HTML 持续更新中。。。

html常见八股 1.src和href的区别? src: 用于js脚本,img、iframe、script等标签 加载时会阻塞主线程,将资源内容嵌入到当前标签所在的位置,将其指向的资源下载应用到文档内 href: 用于链接a、link等标签…