检测云服务器是否被入侵需要全面检查系统异常,包括 异常进程、可疑文件、网络连接、用户登录记录 等。以下是详细排查步骤:

1. 检查当前活跃进程
1.1 查看高资源占用的进程
top -c # 动态查看CPU/内存占用最高的进程 htop # 更直观的进程监控工具(需安装) ps aux --sort=-%cpu | head -10 # 查看CPU占用前10的进程 ps aux --sort=-%mem | head -10 # 查看内存占用前10的进程
重点关注:
-
异常进程名(如随机字符串、伪装成系统进程的名称)。
-
非预期的
root用户进程。
1.2 检查隐藏进程
ps -ef | grep -v "\[" # 过滤内核进程,查看所有用户进程 ls -al /proc/*/exe 2>/dev/null | grep deleted # 查找已删除但仍运行的进程(常见于木马)
2. 检查网络连接
2.1 查看异常网络连接
netstat -antp # 查看所有TCP连接及关联进程 ss -tulnp # 更现代的替代命令 lsof -i # 列出所有网络连接和打开的文件
重点关注:
-
外部IP的异常连接(尤其是
ESTABLISHED状态)。 -
非标准端口(如
6666、23333等)的监听。
2.2 检查恶意外联
# 检查是否有进程向可疑IP发送数据 sudo tcpdump -i eth0 -n -c 100 'dst net not your_trusted_network'
如果发现未知IP的流量,可能是数据外泄或僵尸网络活动。
3. 检查用户和登录记录
3.1 查看最近登录记录
last -a # 查看所有用户登录历史 lastb # 查看失败的登录尝试(需启用日志) grep "Failed password" /var/log/auth.log # 检查SSH暴力破解记录(Ubuntu) grep "Invalid user" /var/log/secure # (CentOS/RHEL)
3.2 检查异常用户
cat /etc/passwd | grep -v "/bin/false" | grep -v "/sbin/nologin" # 查看可登录用户 sudo grep ":0:" /etc/passwd # 检查是否有UID=0的非root用户(提权后门) awk -F: '($3 == 0) {print}' /etc/passwd # 同上
4. 检查后门文件
4.1 查找可疑文件
# 查找近期被修改的文件(7天内) find / -type f -mtime -7 -exec ls -la {} \; | grep -vE "/proc|/sys|/var/log" # 查找隐藏的恶意脚本(如 .php、.sh、.py 等) find / -name "*.php" -o -name "*.sh" -o -name "*.py" | grep -vE "/var/www|/usr/lib" # 检查 /tmp、/dev/shm 等临时目录 ls -la /tmp /dev/shm | grep -vE "systemd|\.\.|\.$"
4.2 检查定时任务(Cron)
crontab -l # 查看当前用户的计划任务 ls -la /etc/cron* /var/spool/cron/* # 检查系统级和用户级任务 cat /etc/crontab
5. 检查系统日志
5.1 关键日志文件
# SSH登录日志 tail -100 /var/log/auth.log # Ubuntu/Debian tail -100 /var/log/secure # CentOS/RHEL # 系统日志 journalctl -xe --no-pager | tail -50 # Systemd日志(CentOS 7+/Ubuntu 16+) dmesg | grep -i "error" # 内核日志
5.2 检查日志是否被篡改
# 查看日志文件是否被删除或清空 ls -la /var/log/ | grep -E "auth.log|secure|messages" # 检查日志文件是否被替换(如 auth.log -> /dev/null) ls -la /var/log/auth.log | grep "\->"
6. 使用安全工具扫描
6.1 Rootkit 检测
# 安装并运行 chkrootkit sudo apt install chkrootkit -y # Ubuntu/Debian sudo yum install chkrootkit -y # CentOS/RHEL sudo chkrootkit # 安装并运行 rkhunter sudo apt install rkhunter -y # Ubuntu/Debian &a按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。
提交工单