Linux 服务器被植入挖矿进程

前两天有读者问:服务器突然很卡,CPU占用飙到100%,会不会是被植入了挖矿程序?
这种情况在Linux服务器上非常常见,尤其是SSH密码弱或存在未修补漏洞的机器。
本文就手把手教你如何手动查杀挖矿进程,全程用命令操作,零基础也能跟着做。

第一步:快速定位可疑进程

拿到服务器后,先不要急着杀掉所有高占用进程,否则可能触发挖矿程序的自保护机制。
建议按以下顺序排查:

  1. 查看CPU占用最高的进程

执行 top -c,按 Shift + P 按CPU使用率排序。观察占用靠前的进程名,正常的系统进程(如sshdnginxjava)路径一般在/usr/opt等标准目录;挖矿进程通常伪装成类似 [kthreadd][kswapd0] 的系统名,或者使用随机字符、/tmp/.systemd等路径。
重点:记录下进程PID(比如12345)和完整命令行(第二列显示的命令行参数,按c键可展开)。

  1. 确认进程是否挖矿

如果进程名看起来很可疑,用 ls -l /proc/12345/exe 查看其可执行文件真实路径。
挖矿程序常藏在/tmp/var/tmp/dev/shm或隐藏目录(如.systemd/.lib)下。
另外,挖矿进程通常会连接矿池,用 lsof -p 12345 看网络连接,一般会连接到境外IP的443或3333等端口。

第二步:暂停进程并获取关键文件

不要直接用 kill -9,很多挖矿程序会监控自身进程,被杀后自动拉起。
先用 kill -STOP 12345 暂停进程,让它不再消耗CPU,同时阻止它自动恢复。
接着马上备份关键信息:

  • cp /proc/12345/exe /root/malware_sample (可执行文件副本,留作分析)
  • cp /proc/12345/cmdline /root/malware_cmdline (启动参数)
  • lsof -p 12345 > /root/malware_lsof.txt (文件句柄和网络连接)

获取完整信息后,再执行 kill -9 12345 彻底杀死进程。
注意这一步要快,避免被守护进程发现。

第三步:清理恶意文件和持久化后门

杀掉进程只是治标,必须删除磁盘上的文件和启动项,否则重启后又会复活。
重点检查以下位置:

常见的隐藏路径

  • ~/.ssh/authorized_keys 检查是否被添加了攻击者的公钥(出现不认识的公钥行,说明SSH后门已植入)
  • /etc/rc.local~/.bashrc~/.profile 检查是否有可疑启动命令
  • /etc/cron.d//var/spool/cron/crontabs/ 检查定时任务,挖矿脚本常通过*/5 * * * * wget ... 形式远程下载
  • /etc/systemd/system/ 检查是否有恶意服务单元文件,用 systemctl list-units --type=service --state=running 列出所有运行的服务

清理命令示例

  • 删除恶意文件:rm -rf /tmp/.systemd /var/tmp/.systemd (根据上一步定位的路径)
  • 清理SSH后门:用 vi ~/.ssh/authorized_keys 删除异常公钥行
  • 清理定时任务:用 crontab -e 删除异常条目,或用 systemctl stop malicious-service && systemctl disable malicious-service
避坑提示:有些挖矿程序会写内核模块(通过lsmod查看),或者在/etc/ld.so.preload中注入动态库。检查/etc/ld.so.preload文件是否存在,如果存在并指向异常路径,用 echo '' > /etc/ld.so.preload 清空文件内容。

第四步:验证清理效果并加固服务器

清理完毕后,重启服务器让所有变更生效(shutdown -r nowreboot)。
重启后立即观察:

  • tophtop 确认CPU占用是否恢复正常的10%以下
  • netstat -antp 查看是否有异常外联连接
  • systemctl list-units --type=service --state=running 确认无异常服务
  • 定时任务检查:crontab -lls -la /etc/cron.* 确认干净
  • 重新检查/etc/ld.so.preload~/.ssh/authorized_keys等敏感文件

常见问题解答

  • Q:杀完进程过一会又出现怎么办?

A:说明有守护进程或定时任务还在执行,重新从第1步排查,重点关注/etc/cron.d//var/spool/cron/crontabs/~/.config/等目录。

  • Q:用top找不到高占用进程,但CPU依然很高?

A:
可能是挖矿程序已升级为驱动级隐藏,
使用htop(更强大的监控工具)或者直接cat /proc/cpuinfo | grep 'cpu MHz'看频率,
同时检查/sys/devices/system/cpu/下的异常文件。

  • Q:清理后服务器正常了,但过了两天又中招?

A:
可能是SSH密码太弱或者开放了不必要的端口,
务必修改所有用户密码为强密码,
关闭root远程登录(PermitRootLogin no),
并安装denyhostsfail2ban

如果你正在处理Linux服务器被植入挖矿进程,如何手动查杀?
,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
对新手来说,最实用的还是每次发现异常后坚持从进程、文件、定时任务三个维度逐一清理,配合系统加固,基本能解决95%的挖矿问题。

分享到:
上一篇
用大模型写运维配置,导致安全漏洞被利用
下一篇
宝塔面板多站点伪静态配置错误,导致页面 404
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意