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

一、摘要

事情起因:有台测试服务器很久没用了,突然监控到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博客

相关推荐
东软吴彦祖13 分钟前
包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
linux·redis·mysql·nginx·缓存·负载均衡
卷卷的小趴菜学编程36 分钟前
c++之List容器的模拟实现
服务器·c语言·开发语言·数据结构·c++·算法·list
艾杰Hydra39 分钟前
LInux配置PXE 服务器
linux·运维·服务器
多恩Stone42 分钟前
【ubuntu 连接显示器无法显示】可以通过 ssh 连接 ubuntu 服务器正常使用,但服务器连接显示器没有输出
服务器·ubuntu·计算机外设
慵懒的猫mi1 小时前
deepin分享-Linux & Windows 双系统时间不一致解决方案
linux·运维·windows·mysql·deepin
Allen Bright1 小时前
使用 JMeter 的 Autostop Listener 插件:自动化性能测试的守护者
运维·jmeter·自动化
晚秋贰拾伍1 小时前
设计模式的艺术-代理模式
运维·安全·设计模式·系统安全·代理模式·运维开发·开闭原则
阿无@_@1 小时前
2、ceph的安装——方式二ceph-deploy
linux·ceph·centos
牙牙7051 小时前
ansible一键安装nginx二进制版本
服务器·nginx·ansible
hhzz1 小时前
ansible自动化运维实战--复制模块和用户模块(3)
运维·自动化·ansible