线上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

Cla­mAV 是一款开源的防病毒引擎,用于检测各类恶意软件。其特色是提供命令行扫描,定制病毒数据库更新,以及对新病毒的快速反应。适用于各种系统,包括 Win­dows、Mac 以及 Linux 等。本教程将指导你如何安装、配置和使用 Cla­mAV 的主要功能。

5.1 安装

对于 De­bian/Ubuntu 系统,使用以下命令安装:

sudo apt-get update
sudo apt-get install clamav clamav-daemon

对于 Cen­tOS/RHEL 系统,使用以下命令安装:

sudo yum install epel-release
sudo yum install clamav clamav-update

5.2 配置

完成安装后,必须更新 Cla­mAV 的病毒数据库。这将帮助 Cla­mAV 识别并抵御最新的威胁。可以使用以下命令进行更新:

sudo freshclam

5.3 使用

以下是 Cla­mAV 关于 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 是 Cla­mAV 防病毒服务器 clamd 的客户端,用于与后台持续运行并加载病毒数据库的 clamd 进行交互以执行病毒扫描,使得频繁或大规模的扫描任务更加高效。

如果要使用 Cla­mAV 守护进程 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

出现以下信息,说明安装正确:

 

posted @ 2025-07-02 13:33  羊脂玉净瓶  阅读(98)  评论(0)    收藏  举报