服务器疑似被入侵的初步排查步骤
发布时间:2026-07-10 13:26       
更新时间:2026-07-11 11:18
怀疑服务器被入侵时,最忌讳上来就重启或重装——现场一丢,痕迹就没了。正确做法是先固定证据、逐步排查,下面几步按顺序走。
## 第一步:查登录记录
```
last -20 # 最近的登录记录,看陌生 IP 与时段
sudo lastb -20 # 登录失败记录,看量是否异常大
w # 当前在线用户
```
重点看非工作时段、陌生来源 IP 的登录。发现可疑账号时,用 last 用户名 追它的完整活动轨迹;再逐个翻各用户的历史命令:cat /home/*/.bash_history,看有没有下载、提权类操作。攻击者也常清空历史文件,历史记录异常短本身就值得怀疑。
## 第二步:查异常进程与外联
```
ps aux --sort=-%cpu | head
ss -tnp | grep -v LISTEN
```
CPU 占用异常的进程重点核对。注意名字形似系统进程、却跑在 /tmp、/dev/shm、/var/tmp 下的可执行文件,这些目录本不该有程序;定位到可疑 PID 后,ls -l /proc/PID/exe 看它真实的二进制路径。连接列表里出现陌生境外 IP 的外联也要警惕。确认有紧急危险时,可先用防火墙把可疑来源封掉止血:sudo iptables -A INPUT -s 对方IP -j DROP。
## 第三步:查计划任务与自启
攻击者做持久化最爱藏在这些地方:
```
crontab -l
sudo ls -la /etc/cron.d/ /var/spool/cron/
systemctl list-unit-files --state=enabled
```
内容看不懂的任务逐条核对,来路不明的先停用,并把内容复制留证。每分钟级的高频任务、指向 /tmp 下脚本的任务,优先级最高逐条查。
## 第四步:查公钥与账号
免密登录的后门通常埋在这里:
```
cat ~/.ssh/authorized_keys
sudo find / -name authorized_keys -exec ls -l {} \;
awk -F: '$3==0{print $1}' /etc/passwd
```
陌生的公钥行删除前先复制留档;最后一条命令检查有没有新增 UID 为 0 的账号。想进一步核对系统文件有没有被改,CentOS 可用 rpm -Va,Ubuntu 装 debsums 后执行 debsums -c,被篡改的二进制会现形。
以上是初步动作。确认入侵后应隔离网络、保留镜像,再走重装恢复。排查期间别删除可疑文件,先复制到别处留证,处理完记得改全部相关密码与密钥,同一密钥对在别的机器上用过的,一律视为泄露,全部换新。