售前咨询400-838-0503

如何检测云服务器是否被入侵?(查后门/异常进程)

发布:2025-03-28 20:18

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


1. 检查当前活跃进程

1.1 查看高资源占用的进程

bash
复制
top -c          # 动态查看CPU/内存占用最高的进程
htop            # 更直观的进程监控工具(需安装)
ps aux --sort=-%cpu | head -10  # 查看CPU占用前10的进程
ps aux --sort=-%mem | head -10  # 查看内存占用前10的进程

重点关注

  • 异常进程名(如随机字符串、伪装成系统进程的名称)。

  • 非预期的 root 用户进程。

1.2 检查隐藏进程

bash
复制
ps -ef | grep -v "\["  # 过滤内核进程,查看所有用户进程
ls -al /proc/*/exe 2>/dev/null | grep deleted  # 查找已删除但仍运行的进程(常见于木马)

2. 检查网络连接

2.1 查看异常网络连接

bash
复制
netstat -antp    # 查看所有TCP连接及关联进程
ss -tulnp        # 更现代的替代命令
lsof -i          # 列出所有网络连接和打开的文件

重点关注

  • 外部IP的异常连接(尤其是 ESTABLISHED 状态)。

  • 非标准端口(如 666623333 等)的监听。

2.2 检查恶意外联

bash
复制
# 检查是否有进程向可疑IP发送数据
sudo tcpdump -i eth0 -n -c 100 'dst net not your_trusted_network'

如果发现未知IP的流量,可能是数据外泄或僵尸网络活动。


3. 检查用户和登录记录

3.1 查看最近登录记录

bash
复制
last -a          # 查看所有用户登录历史
lastb            # 查看失败的登录尝试(需启用日志)
grep "Failed password" /var/log/auth.log  # 检查SSH暴力破解记录(Ubuntu)
grep "Invalid user" /var/log/secure      # (CentOS/RHEL)

3.2 检查异常用户

bash
复制
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 查找可疑文件

bash
复制
# 查找近期被修改的文件(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)

bash
复制
crontab -l       # 查看当前用户的计划任务
ls -la /etc/cron* /var/spool/cron/*  # 检查系统级和用户级任务
cat /etc/crontab

5. 检查系统日志

5.1 关键日志文件

bash
复制
# 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 检查日志是否被篡改

bash
复制
# 查看日志文件是否被删除或清空
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 检测

bash
复制
# 安装并运行 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

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单