挖矿病毒定时任务彻底查杀清理教程:从检测到根除

挖矿病毒入侵服务器后,最头疼的现象是过一会儿进程又自动跑起来,这多是因为定时任务残留。
彻底查杀挖矿病毒定时任务的核心思路是:先停进程,再查所有定时任务触发器,最后清理关联文件和权限
本文面向零基础用户,从 SSH 登录开始,完整演示如何定位并清除所有可疑定时任务,让病毒无法复活。

登录前准备与安全备份

操作前请先确认两点:

  • 使用 root 账号或拥有 sudo 权限的用户通过 SSH 登录服务器。
  • 备份重要数据(例如网站文件、数据库),避免误删。

建议先执行一个快速快照(云服务器控制台通常提供),万一操作失误可以回滚。
下面所有命令基于 CentOS 7/8、Ubuntu 20.04+ 或 Debian 系统,通用性较高。

第一步:停止当前挖矿进程并锁定文件

挖矿病毒常修改自己的进程名,但可以通过 CPU 异常占用找到它:

top -c   # 查看 CPU 占用最高的进程,记下 PID

找到后先用 kill -9 PID 强制终止。
然后立即使用 lsofls -la /proc/PID/exe 定位病毒文件路径,并删除主文件。
注意:如果文件正在运行,先 kill 再立刻删除。

为了防止病毒脚本通过网络下载新版本,可以临时关闭恶意 IP 的访问(通过防火墙),或者直接断网操作,但断网后不能从源排查远程定时任务。
安全做法是:删除后立刻修改 root 密码和 SSH 端口,减少再次入侵风险。

第二步:彻底检查所有定时任务来源

Linux 定时任务主要有 4 种位置,都需要逐一排查:

1. 当前用户 crontab

crontab -l   # 查看当前用户的计划任务
# 如果有可疑行,用 crontab -e 编辑并删除整行,或直接执行:
crontab -r   # 删除当前用户所有定时任务(谨慎,会清空)
如果系统有多个用户,用 for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done 批量查看所有用户的任务。

2. 系统 crontab 目录

ls -la /var/spool/cron/          # 存放各用户 crontab 文件
ls -la /etc/cron.d/              # 系统级计划任务
cat /etc/crontab                 # 主配置文件
cat /etc/anacrontab              # anacron 定时任务

检查这些文件是否包含乱码、base64 编码或明显恶意域名(如随机字母 + .top/.xyz 等),确认后删除整行或整个文件。

3. systemd 定时器

挖矿病毒也可能注册为 systemd timer:

systemctl list-timers --all      # 列出所有定时器
# 重点关注有可疑服务名的 timer,例如:
systemctl disable --now 可疑定时器名称
rm -f /etc/systemd/system/可疑定时器名称  /etc/systemd/system/可疑服务名称
systemctl daemon-reload

4. 其他隐藏位置

  • ~/.bashrc~/.profile~/.bash_logout 中可能嵌入反弹定时任务(如通过 at 命令)。
  • at 任务:atq 查看,atrm 编号 删除。
  • 临时目录脚本:检查 /tmp//var/tmp//dev/shm/ 下是否有近期修改的可执行文件或 shell 脚本。

第三步:清除关联脚本与启动项

删除定时任务后,病毒脚本还可能藏在这些位置:

  • /etc/init.d//etc/rc.d/rc.local 中的启动命令。
  • 利用 SSH 密钥文件(~/.ssh/authorized_keys)添加后门,检查是否有未知公钥。
  • /etc/ld.so.preload 和动态库劫持(使用 strace 排查)。

建议全部完成后重启服务器一次,确认病毒不再复活。

第四步:避坑指南与效果验证

常见踩坑点

  • 误删系统任务:删除 /etc/cron.d/ 中的 sysstatlogrotate 等系统自带任务,会导致日志不轮转、性能监控失效。建议确认任务所属包后再决定。简单方法:查看文件注释或执行 rpm -qf /etc/cron.d/xxx(CentOS)或 dpkg -S /etc/cron.d/xxx(Ubuntu)判断是否属于系统包。
  • 只清理定时任务不清理脚本:病毒脚本本体仍在磁盘,下次 cron 触发时又从备份中复活。一定要找到原始脚本文件删除。
  • 忘记检查其他用户:挖矿病毒可能创建新用户并将定时任务藏在 /var/spool/cron/用户名 下。用 awk -F: '$3>=1000{print $1}' /etc/passwd 查看普通用户,逐一检查。

效果验证

# 30分钟后再次检查
crontab -l
systemctl list-timers --all
ps aux | grep -E '(minerd|xmrig|kworker|kdevtmp|sysupdate)'   # 常见挖矿进程名

如果都没有,可以运行一段时间观察 CPU 占用是否正常。

常见问题解答

问:我删除 crontab 后,病毒又自动恢复了,为什么?
答:可能还有另外的定时任务(如 systemd timer)或持久化脚本在每几分钟自动写入 crontab。请按本文第二步检查所有位置。

问:执行 crontab -r 会删除所有普通计划任务吗?
答:是的,它会清空当前用户的所有 crontab。如果该用户系统有正常任务(如备份脚本),请先备份。
正确做法:手动编辑 crontab -e 删除可疑行。

问:怎么确认一个定时任务是不是挖矿病毒?
答:看任务执行的命令是否包含下载远程脚本、执行 base64 解码、运行不知名二进制文件,或访问可疑域名(如 xmr.xxx)。另外,名字可能是正常系统命令(如 systemd-boot)但内容异常。

问:杀完病毒后需要重装系统吗?
答:如果病毒篡改了内核模块、SSH 后门或 rootkit,最好重装系统。仅定时任务级别感染,按本教程清理后一般可恢复,但建议改密、更新补丁、关闭不必要的端口。

如果你在操作中遇到特殊变量或进程名难以清除,可以在安全环境下使用 chkrootkitrkhunter 辅助检测,但最终清除仍以手动排查为准。

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

机房迁移升级通知

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