云服务器被入侵是一件非常紧急的事情,需要快速、冷静、按步骤排查和处置。下面给你一套实战型排查流程,适用于 Linux 云服务器(Windows 思路类似,但命令不同)。
一、第一时间要做的(不要慌)
1️⃣ 做好隔离(防止继续扩散)
- 不要直接重启服务器(会丢失入侵痕迹)
- 如果业务允许:
- 断开公网 IP / 安全组放行规则
- 或把服务器从负载均衡中摘除
- 保留现场,优先排查,再恢复
二、账号与登录排查(最优先)
1️⃣ 查看当前登录用户
who
w
2️⃣ 查看历史登录记录
last
lastlog
lastb # 失败的登录
重点看:
3️⃣ 检查账号是否被篡改
cat /etc/passwd
cat /etc/shadow
重点检查:
- 是否有新增账号
- UID 为 0 的账号(超级权限)
- 家目录异常的账号
4️⃣ 检查 SSH 配置
cat /root/.ssh/authorized_keys
cat /home/*/.ssh/authorized_keys
⚠️ 常见入侵方式:
- 被写入公钥
- sshd 配置被改(允许 root、空密码)
三、进程与网络连接排查
1️⃣ 查看异常进程
top
ps aux --sort=-%cpu | head
ps aux | grep -v grep | grep -E "bash|sh|curl|wget|nc"
重点看:
- 陌生进程名
- 进程路径异常(/tmp、/dev/shm)
- CPU / 内存异常占用
2️⃣ 查看网络连接
netstat -antlp
ss -antlp
重点看:
3️⃣ 查看进程对应的文件
ls -l /proc/进程ID/exe
四、文件与后门排查
1️⃣ 检查最近被修改的文件
find / -mtime -3 -type f 2>/dev/null
重点目录:
/tmp/var/tmp/dev/shm/root/home
2️⃣ 检查可疑脚本
grep -R "bash\|sh\|curl\|wget\|nc\|perl\|python" /tmp 2>/dev/null
3️⃣ 检查定时任务(非常常见)
crontab -l
cat /etc/crontab
ls /etc/cron.d/
ls /var/spool/cron/
⚠️ 很多挖矿、后门都在 cron 里
五、系统日志分析
1️⃣ 登录相关日志
/var/log/secure
/var/log/auth.log
重点看:
2️⃣ 系统与服务日志
/var/log/messages
/var/log/syslog
3️⃣ Web 入侵排查(如有 Web 服务)
- 检查 Web 访问日志
- 上传目录是否有 webshell
- 是否有异常 POST 请求
六、恶意程序与 Rootkit 检查(进阶)
1️⃣ 检查命令是否被替换
which ps top netstat
rpm -Va # CentOS
dpkg -V # Ubuntu
2️⃣ 使用安全工具
⚠️ 注意:有些高级入侵会隐藏进程和文件
七、确认入侵方式(非常重要)
常见原因:
- SSH 弱口令 / 密钥泄露
- Redis / MySQL / Docker 未授权访问
- 漏洞利用(Struts、Log4j、Web 应用)
- 上传漏洞
- 第三方软件后门
八、处置建议(不要只“杀进程”)
✅ 正确做法:
- 记录入侵证据
- 清除后门(账号、公钥、cron、进程)
- 修复漏洞
- 修改所有密码和密钥
- 重装系统(最安全)
❌ 错误做法:
九、事后加固建议
- 禁用 root 远程登录
- 使用 SSH 密钥 + 强密码
- 配置安全组(最小权限)
- 定期更新系统
- 安装云安全中心 / 主机安全 Agent
- 定期备份
十、如果你愿意,我可以帮你
你可以直接发我:
- 服务器系统(CentOS / Ubuntu / 其他)
- 是否 Web 服务、数据库
- 已发现的可疑现象(进程、IP、日志)
我可以 一步步带你排查,甚至帮你写排查脚本。