上一篇 分享链接 返回 返回顶部

如何判断服务器是否中了挖矿病毒,怎么清除挖矿病毒

发布人:纽特云计算 发布时间:11小时前 阅读量:388

在当今的互联网环境下,服务器被入侵并沦为“矿工”的案例层出不穷。这不仅会导致昂贵的算力资源被浪费,还可能造成业务中断甚至数据泄露。

作为一名开发者或系统管理员,如何快速识别并“清理门户”?这是一份实操指南。


第一部分:如何判断服务器中了挖矿病毒?

挖矿程序通常会消耗大量的 CPUGPU 资源,表现得非常“贪婪”。你可以通过以下几个维度进行排查:

1. 观察资源占用(最直观)

使用 tophtop 命令观察。

  • 高 CPU 占用: 如果 CPU 长期处于 90% - 100%,且排在首位的进程名看起来很奇怪(如随机乱码或冒充系统进程名为 sysupdate),则高度可疑。

  • 隐身策略: 有些高级病毒会在你运行 top 命令时自动退出,关掉命令后又重新启动。如果你发现系统负载(Load Average)很高,但 top 里看不到高占用进程,说明可能遇到了这种“躲猫猫”病毒。

2. 检查异常网络连接

挖矿程序需要与矿池(Pool)通信来获取任务并提交成果。

  • 使用命令:netstat -antpss -antp

  • 疑点: 观察是否有连接到非常规端口(如 3333, 4444, 14444)或境外 IP 的加密通信(TLS/SSL)。

3. 查看定时任务(Crontab)

为了实现“死灰复燃”,挖矿脚本通常会把自己写进定时任务。

  • 检查命令:crontab -l 以及 /etc/crontab

  • 重点关注: 那些包含 curlwget 从未知 URL 下载脚本并执行的条目。

4. 检查系统日志

查看 /var/log/auth.log (Ubuntu/Debian) 或 /var/log/secure (CentOS)。

  • 检查是否有大量高频的 SSH 登录失败记录,这通常意味着病毒是通过暴力破解进来的。


第二部分:如何彻底清除挖矿病毒?

清除挖矿病毒不能只靠“杀进程”,因为它们往往有守护进程或定时任务保护。请按照以下步骤操作:

步骤 1:切断外网连接

如果业务允许,先通过安全组(Security Group)或防火墙封禁非必要的出站流量,尤其是针对可疑 IP 的访问,防止病毒下载后续组件。

步骤 2:阻断定时任务

在杀掉进程前,必须先铲除它的“根”。

  • 编辑定时任务:crontab -e,删除所有可疑行。

  • 检查目录:/etc/cron.d//etc/cron.daily/ 等,清理异常文件。

步骤 3:终止病毒进程

  1. 找到 PID:从 topps -ef 中确定。

  2. 强行停止:kill -9 <PID>

  3. 注意: 如果杀掉后立即重启,请检查是否有关联的系统服务(Systemd Service)。使用 systemctl list-units 查找可疑服务并停止。

步骤 4:清理病毒文件

  • 通过 ls -l /proc/<PID>/exe 找到病毒文件在磁盘上的真实路径。

  • 将其删除。同时检查 /tmp//var/tmp//dev/shm/,这些是病毒最喜欢藏身的目录。

步骤 5:修复 SSH 后门

挖矿病毒常会在 ~/.ssh/authorized_keys 中添加自己的公钥,以便随时再次进入。

  • 务必清理该文件,删除不属于你的公钥。


第三部分:预防永远胜于治疗

  1. 强密码策略: 永远不要使用弱密码,建议直接禁用密码登录,改用 SSH 密钥对

  2. 最小权限原则: 业务程序不要使用 root 权限运行。

  3. 定期更新: 修复已知的系统漏洞(如 Log4j、Redis 漏洞等),这些通常是病毒进入的通道。

  4. 安全组配置: 仅放行必要的端口(如 80, 443),严禁对公网开放 Redis(6379)、MySQL(3306)等高危端口。


避坑提示: 有些挖矿病毒会修改 /etc/ld.so.preload 来劫持系统命令。如果你发现 lstop 命令的结果不可信,记得检查这个文件。

更多服务器安全知识可以关注纽特云官网https://www.niuteyun.com/

目录结构
全文
企微客服 企微客服
微信公众号 微信公众号
服务热线: 400-168-999
电子邮箱: niuteyun@126.com