排查云服务器被入侵(被黑)的核心思路是:先隔离止损 → 再取证分析 → 最后溯源修复。下面给你一套实战型排查清单,适用于 Linux 服务器(Windows 思路类似,命令不同)。
—
## 一、第一时间:隔离与止损(不要急着重启)
### 1. 限制影响范围
- 断开公网访问
- 安全组:先封掉 0.0.0.0/0 的 22/3389/80/443
- 若业务允许,直接 断开公网 IP 或解绑 EIP
- 不要立即重启
- 重启会丢失内存中的进程、网络连接、攻击痕迹
### 2. 备份现场(非常重要)
- 对磁盘做 快照 / 镜像
- 保留:
- /var/log
- /tmp
- 进程、网络连接状态
- 用于后续溯源和取证
—
## 二、基础信息收集(快速判断)
### 1. 系统状态bash<br># 系统负载<br>top / htop<br># 当前连接<br>ss -antlp<br>netstat -antlp<br># 查看异常进程<br>ps aux --sort=-%cpu | head<br>ps aux | grep -E 'bash|sh|curl|wget|nc|python|perl'<br>
### 2. 登录与账号bash<br># 当前登录<br>who<br>w<br># 历史登录<br>last<br>lastb<br># 用户列表<br>cat /etc/passwd<br># 可登录用户<br>awk -F: '$7 ~ /bash|sh/{print}' /etc/passwd<br>
✅ 重点看:
- 是否有新增用户
- 是否有 UID=0 的非 root 用户
- 是否有可疑 .ssh/authorized_keys
—
## 三、日志分析(最关键)
### 1. 登录日志bash<br>/var/log/secure # CentOS<br>/var/log/auth.log # Ubuntu<br>
重点搜索:
- 暴力破解成功
- 异常 IP 登录
- 非你所在地区 IPbash<br>grep "Accepted" /var/log/secure<br>grep "Failed" /var/log/secure | wc -l<br>
—
### 2. Web / 应用日志(非常常见)
如果你有 Web 服务:bash<br>/var/log/nginx/access.log<br>/var/log/httpd/access_log<br>
重点看:
- .php?cmd=
- wget http
- curl http
- 一句话木马
- 异常 POST 请求bash<br>grep -E "cmd=|wget|curl|base64" access.log<br>
—
### 3. 命令执行历史bash<br>history<br>cat ~/.bash_history<br>
检查:
- 是否有 chmod 777
- 下载恶意脚本
- 修改系统文件
—
## 四、恶意程序排查
### 1. 可疑文件bash<br>ls -lat /tmp<br>ls -lat /var/tmp<br>ls -lat /dev/shm<br>
常见特征:
- 最近修改
- 无扩展名
- 随机字母命名
### 2. 定时任务(常被忽略)bash<br>crontab -l<br>cat /etc/crontab<br>ls /etc/cron.*<br>
攻击常用手段:
- 定时下载木马
- 维持权限
—
### 3. 启动项bash<br>systemctl list-unit-files | grep enabled<br>chkconfig --list<br>
—
### 4. 网络连接bash<br>lsof -i<br>ss -antlp<br>
看:
- 是否有对外疯狂连接
- 是否连接矿池、境外 IP
- 是否反向 Shell
—
## 五、常见被黑原因(对照自查)
| 原因 | 表现 |
|----|----|
| SSH 暴力破解 | 大量失败登录 |
| 弱密码 | 无爆破直接登录 |
| 未修复漏洞 | Web 服务被上传木马 |
| Redis / Docker / MySQL 暴露公网 | 被直接利用 |
| 密钥泄露 | authorized_keys 被写入 |
| 供应链投毒 | 下载第三方脚本 |
✅ 80% 的入侵来自:弱密码 + 公网暴露 + 未更新
—
## 六、确认入侵后如何处理?
### 1. 根除(彻底方式)
> 最推荐方案
- 销毁当前服务器
- 从干净镜像重建
- 从备份恢复数据(确认备份无木马)
⚠️ 手动清理风险极高,残留率很高
—
### 2. 若必须清理(不推荐)
- 删除恶意用户
- 删除公钥
- 删除定时任务
- 删除后门文件
- 重装 SSH / Web 服务
- 修改所有密码和密钥
—
## 七、修复 & 防护建议(一定要做)
### 必须项
- ✅ 禁止 root 登录
- ✅ 使用 SSH 密钥
- ✅ 更改 SSH 端口
- ✅ 服务器只放行必要端口
- ✅ 定期打系统补丁
- ✅ Web 服务以非 root 运行
### 可选项
- 启用 云安全中心 / 主机安全
- 启用 Fail2ban
- 配置 WAF
- 定期日志审计
—
## 八、如果你愿意,我可以帮你“对着查”
你可以直接贴(脱敏后):
1. ss -antlp 输出
2. last 登录记录
3. Web 访问日志异常行
4. crontab -l
5. 是否有 Redis / Docker / MySQL 公网暴露
我可以帮你 快速判断是怎么被进来的。
如果你是 Windows 服务器,告诉我系统版本,我可以按 Windows 方式单独给你一份排查方案。