线上Linux服务器中挖矿病毒怎么办?
情况说明:挖矿进程被隐藏(CPU占用50%,htop/top却看不到异常进程),结束挖矿进程后马上又会运行起来(crontab -l查看发现没有定时任务)。
1、中毒表现
服务器是24核的,前12核的CPU占用一直处于100%,即使重启服务器,马上就会占用12核的CPU,并且系统内存占用也很大。中毒表现有如下几点:
- 在没有使用软件的情况下,CPU使用率很高(使用top或者htop查看系统内存占用情况)。
- 通过netstat -natp发现有异常IP地址。
- 发热极其严重,风扇狂转。
- 服务器莫名其妙突然卡顿。
2、解决办法
2.1 断网并修改root密码
在发现中了挖矿病毒后,一定要首先断网并修改root密码!!!
2.2 找出隐藏的挖矿进程
这里利用两个工具【sysdig】和【unhide】来搜寻被隐藏的进程。
# 安装 sysdig
sudo apt install sysdig
# 安装 unhide
sudo apt install unhide
# 输出cpu占用的排行,可以显示出隐藏的进程
sudo sysdig -c topprocs_cpu
# 搜索隐藏进程,proc目录下保存的是所有正在运行程序的进程ID,即PID
sudo unhide proc
这时就找到了挖矿病毒的PID,但是直接kill -9 PID杀死进程后就会发现不到1分钟的时间,就会有一个新的挖矿进程出现,因此这个挖矿进程肯定是被什么服务所启动的,接下来我们便需要找到这个服务并将其关闭。
2.3 关闭病毒启动服务
通过上面unhide proc发现的隐藏进程,利用systemctl status PID来检查 systemd 管理的服务或者进程状态,来看一下该病毒到底是如何被启动的。
systemctl status 3084
# 3084为病毒的PID
查看输出的CGroup段信息,可以看到一个后缀为.service的服务,该服务就是病毒的启动服务。
# 终止病毒启动服务
systemctl stop xxxxX.service
# 终止挖矿服务的开机自启
systemctl disable xxxxX.service
2.4 杀掉挖矿进程
在关闭了挖矿病毒的启动服务之后,现在就可以将挖矿进程kill了。kill之后,CPU恢复正常,并且也没有了隐藏进程。
kill -9 PID
3、防止黑客再次入侵
3.1 查找异常IP
# 通过 netstat -natp 显示网络相关信息,查看是否存在异常IP
netstat -natp
将查到的异常IP直接在百度中输入就可以看到该IP的一些信息。
3.2 封禁异常IP
利用防火墙 iptables 对异常IP进行封禁。
# 对异常IP封禁
sudo iptables -I INPUT -s IP -j DROP
# 检查是否已经成功添加
iptables -L INPUT -v -n
默认情况下,通过 iptables 添加的规则在系统重启后会丢失。如果希望规则在重启后依然有效,需要将规则保存到配置文件中。可以使用 iptables-persistent 工具来实现。
# 安装iptables-persistent
sudo apt-get install iptables-persistent
# 将规则保存到配置文件
sudo netfilter-persistent save
# 设置为开机自启
systemctl enable iptables
# 打开服务
systemctl start iptables
3.3 查看是否有陌生公钥
cat ~/.ssh/authorized_keys
如果有陌生公钥立即删掉。
4、安装安全狗进行防护
安装说明请查看官网地址:https://www.safedog.cn/install_desc_server.html
操作手册:https://www.safedog.cn/download/software/safedogfwq_linux_Help.pdf
以下是安全狗安装成功后的ui界面。
5、Linux病毒扫描工具ClamAV
https://www.moewah.com/archives/5296.html
ClamAV 是一款开源的防病毒引擎,用于检测各类恶意软件。其特色是提供命令行扫描,定制病毒数据库更新,以及对新病毒的快速反应。适用于各种系统,包括 Windows、Mac 以及 Linux 等。本教程将指导你如何安装、配置和使用 ClamAV 的主要功能。
5.1 安装
对于 Debian/Ubuntu 系统,使用以下命令安装:
sudo apt-get update
sudo apt-get install clamav clamav-daemon
对于 CentOS/RHEL 系统,使用以下命令安装:
sudo yum install epel-release
sudo yum install clamav clamav-update
5.2 配置
完成安装后,必须更新 ClamAV 的病毒数据库。这将帮助 ClamAV 识别并抵御最新的威胁。可以使用以下命令进行更新:
sudo freshclam
5.3 使用
以下是 ClamAV 关于 clamscan 命令常见使用示例,更多用法请运行 clamscan -help 查看帮助文件:
# 扫描单个文件
clamscan /path/to/your/file
# 扫描整个目录
clamscan -r /path/to/directory
# 自动删除检测到的病毒
clamscan --remove -r /path/to/directory
# 为扫描结果生成报告
clamscan -r /path/to/directory > scanreport.txt
# 在扫描时显示病毒被发现的信息
clamscan -r --bell -i /path/to/directory
clamdscan 是 ClamAV 防病毒服务器 clamd 的客户端,用于与后台持续运行并加载病毒数据库的 clamd 进行交互以执行病毒扫描,使得频繁或大规模的扫描任务更加高效。
如果要使用 ClamAV 守护进程 clamdscan 命令进行扫描,首先确保守护进程已启动:
sudo systemctl start clamav-daemon
接下来,使用 clamdscan 命令执行扫描,例如:
clamdscan /path/to/your/file
或
clamdscan -r /path/to/your/directory
多线程递归扫描目录文件,同时会传递文件描述符:
clamdscan --multiscan --fdpass /path/to/scan
其他补充
6、安全狗安装缺少命令组件解决方案
Need system command 'locate' to install safedog for linux.Installation aborted!
是缺少搜索命令组件,用下面命令进行安装
yum -y install mlocate
Need system command 'lspci' to install safedog for linux.Installation aborted!
用下面命令进行安装
yum -y install pciutils
Need system command 'lsof' to install safedog for linux.Installation aborted!
用下面命令进行安装
yum install lsof
Need system command 'netstat' to install safedog for linux.Installation aborted!
用下面命令进行安装
yum install net-tools
Need system command 'killall' to install safedog for linux.Installation aborted!
用下面命令进行安装
yum install psmisc
7、Linux——“没有可用软件包”
在CentOS 7上,当使用yum命令安装软件包时,如果出现“没有可用的软件包”提示,这通常意味着yum源中已经没有对应的安装包了。
解决方法——>安装epel-release软件包
yum install -y epel-release
8、linux系统上安装sysdig
sysdig是一个超级系统工具,比 strace、tcpdump、lsof 加起来还强大。可用来捕获系统状态信息,保存数据并进行过滤和分析。
在linux系统上安装sysdig可以一键式安装:
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig| sudo bash
这是一个在线的自动安装工具,是一个 shell 脚本,会识别常用的 linux 发行版本,并根据对应的版本配置源,最后是安装 Sysdig 包。
测试是否安装成功:
sysdig -pc -c topconns
出现以下信息,说明安装正确:

浙公网安备 33010602011771号