温馨提示×

如何排查centos exploit痕迹

小樊
41
2026-09-03 04:24:31
栏目: 智能运维

在 CentOS(或其他 Linux 发行版)上排查 exploit(漏洞利用 / 入侵)痕迹,通常遵循“系统状态 → 账号 → 进程 → 网络 → 文件 → 日志 → 持久化”的思路。下面给你一套可操作的排查清单


一、先确认系统状态(不要先重启)

⚠️ 若怀疑被入侵,尽量不要重启,以免破坏内存中的攻击痕迹。

uptime
w
last
who

重点关注:

  • 异常登录时间 / IP
  • 不认识的账户
  • 系统负载异常高

二、排查账户与权限

cat /etc/passwd
cat /etc/shadow
awk -F: '$3==0 {print $1}' /etc/passwd   # UID=0 的账户

检查:

  • 是否存在未知 root 账户
  • 是否有新增用户
  • sudoers 是否被改
cat /etc/sudoers
ls -l /etc/sudoers.d/

三、排查进程与异常程序

ps auxf
top

重点看:

  • 未知进程名
  • 高 CPU / 内存占用
  • 指向 /tmp/dev/shm/var/tmp

进一步:

lsof -p <pid>
ls -l /proc/<pid>/exe

四、网络排查(很关键)

netstat -antup
ss -antup

重点:

  • 异常外连 IP
  • 非常规端口
  • 隐藏监听端口(用 netstat + ss 对比)

查看连接来源:

netstat -ant | grep ESTABLISHED

五、检查文件篡改与 Webshell

1. 系统命令是否被替换

rpm -V coreutils
rpm -V bash

2. 查找近期修改文件

find / -mtime -7 -type f
find /var/www -mtime -3

3. 常见 Web 后门路径

  • /var/www/html
  • /usr/local/nginx/html
  • 上传目录

搜索可疑内容:

grep -R "eval(" /var/www
grep -R "base64_decode" /var/www

六、排查持久化(重点)

1. 定时任务

crontab -l
ls -l /etc/cron*
cat /var/spool/cron/*

2. 启动项

systemctl list-unit-files | grep enabled
ls -l /etc/init.d/

3. rc.local

cat /etc/rc.local

七、日志分析(最关键证据)

1. 登录日志

/var/log/secure
/var/log/auth.log
grep "Failed password" /var/log/secure
grep "Accepted" /var/log/secure

2. 历史命令

cat ~/.bash_history
cat /root/.bash_history

3. Web 日志(如有)

/var/log/nginx/access.log
/var/log/httpd/access_log

八、常见 Exploit 痕迹特征

  • /tmp/.ICE-unix/tmp/.* 隐藏文件
  • ld.so.preload 被修改
cat /etc/ld.so.preload
  • iptables 被清掉
  • ssh 公钥被写入
cat ~/.ssh/authorized_keys

九、工具辅助(进阶)

  • rkhunter
  • chkrootkit
  • lynis
  • osquery(企业级)

十、确认入侵后的建议

  1. 断网隔离
  2. 保存日志与内存镜像
  3. 从干净备份恢复
  4. 升级内核与软件
  5. 复盘漏洞来源(端口 / 服务 / 弱口令)

如果你愿意,可以告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 服务器暴露公网 还是 内网
  • 具体现象(如 CPU 飙高、网站被改、SSH 被锁)

我可以帮你做更针对性的排查步骤

0