服务器被入侵收到短信时,最正确的反应是立即隔离而非盲目排查,第一时间在云控制台或物理机上执行“禁止外网访问”操作,再按日志取证、进程定位、漏洞修复的顺序逐步处理。
短信只是入侵行为的“报警器”,真正要紧的是切断攻击者的手,防止数据被拖走或服务器变成挖矿木马的肉鸡,下面按照实战应对顺序,拆解每一个关键动作。
收到入侵告警短信,先判断这条短信是不是真的
绝大多数云厂商和安全设备都会在检测到异常时发送告警短信,但“收到短信”有两种情况,处理方式完全不同。
第一步:确认短信来源是否可信
攻击者有时会伪造“服务器入侵告警”短信,诱导你点击钓鱼链接并提交账号密码。 判断标准如下:
- 查看短信发送号码是否为云厂商官方客服号(如简米云短信中心、酷番云安全告警),而非私人手机号
- 短信内若附带短链接且要求“登录验证”“查看详情”,务必不要点击,改为手动浏览器输入云控制台地址
- 对比短信中提到的服务器IP、地域是否与你名下资产一致
第二步:登录云控制台核对告警详情
行业共识认为,实名认证的云账号在控制台收到的告警记录,比短信本身更具参考价值,因为控制台消息可追溯且通常具备时间戳。
- 登录云厂商控制台,进入“安全中心”或“告警管理”页面
- 查看告警类型:暴力破解、异常登录、Webshell上传、木马文件落地等
- 记录告警时间、源IP、被入侵的实例ID和地域
如果控制台确认存在异常记录,直接进入下面的隔离操作,如果控制台无任何告警记录,且短信内容异常,基本可判断为钓鱼短信,忽略即可,但建议将该号码标记为骚扰/诈骗。
服务器被入侵如何排查:先断网再取证,顺序不能反
很多人收到短信后习惯先登录服务器执行top命令查看进程,这是一个非常危险的动作,因为攻击者可能正在实时监控你的操作,继续登录会扩大入侵窗口。
隔离操作分为两种场景
| 场景 | 操作路径 | 耗时 |
|---|---|---|
| 云服务器(有控制台) | 控制台 → 实例列表 → 更多 → 网络设置 → 禁止外网访问(或写安全组规则,入方向全部拒绝) | 1-2分钟 |
| 物理机/私有云 | 直接拔掉网线,或登录交换机/防火墙对目标端口做ACL封锁 | 2-3分钟 |
隔离后,建议再开启“只出不进”的策略,即允许服务器主动外联下载补丁和工具,但禁止外部任何端口访问,方便后续排查。
隔离之后,按照下面顺序提取证据
先保全日志,再翻进程,最后看文件。 顺序错了会导致日志被覆盖、被攻击者删除。
- 执行
last -20查看近20条登录记录,关注异常IP和登录时间 - 将
/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)复制到本地目录,执行cp备份,防止后续排查触发日志清理 - 执行
history查看历史命令,但部分攻击者会清理.bash_history,可用cat ~/.bash_history | tail -50碰运气
服务器入侵处理流程:定位攻击路径并清除后门
隔离只是止血,定位攻击路径才是根治,你需要在保住证据的前提下,快速判断对方是怎么进来的。
排查重点一:SSH和远程登录记录
据统计,较大比例的服务器入侵事件源于弱口令爆破,而非0day漏洞。
- 执行
cat /var/log/secure | grep "Failed password" | tail -20查看失败登录次数最多的IP - 执行
cat /var/log/secure | grep "Accepted password" | tail -10查看成功登录的可疑IP - 检查
/root/.ssh/authorized_keys文件,确认是否存在陌生公钥,攻击者常通过写入公钥实现免密持久化,这是rootkit级别的后门,务必清除
排查重点二:异常进程与网络连接
被入侵后,最常见的资源消耗是CPU骤增(挖矿)、对外大量发包(DDoS傀儡),需要对比当前进程和正常基线。
- 执行
ps aux --sort=-%cpu | head -15,查看CPU占用最高的进程,重点盯“看不懂的二进制路径”,比如/tmp/kworker、/var/tmp/.x这类隐藏目录 - 执行
ss -antp | grep ESTAB查看当前外联连接,出现大量非业务端口(如4444、5555、6666)说明存在反弹shell - 执行
systemctl list-units --type=service --state=running,查看是否新增了可疑systemd服务(攻击者常注册服务实现开机自启)
排查重点三:定时任务和启动项
攻击者最喜欢在定时任务里藏后门,因为不重启就不会暴露。
- 执行
crontab -l和cat /etc/crontab,查看是否存在指向/tmp、/var/tmp的脚本 - 检查
/etc/rc.local和/etc/systemd/system/multi-user.target.wants/目录,比对最近24小时内新增的文件(可用ls -lt按时间排序)
收到入侵短信后,恢复业务前必须完成的加固动作
排除完攻击路径并清除恶意文件后,不能急着重启服务上线,必须先完成一轮系统级加固,否则大概率二次沦陷。
账号与认证方面
- 修改所有用户密码(尤其root),新密码至少12位混合字符
- 禁用root远程登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no - 删除或锁定未知账号:执行
cat /etc/passwd | grep /bin/bash,逐一确认每个shell账号归属
网络与端口方面
- 将默认SSH端口22改为1024以上高位端口(需同步修改防火墙规则),降低被扫描概率
- 通过云安全组限制SSH和数据库端口的源IP白名单,仅放行自己办公网的IP
- 关闭不用的端口和服务:执行
netstat -tlnp列出当前监听端口,与业务比对,清理无用服务
漏洞与软件方面
- 执行系统更新
yum update -y或apt update && apt upgrade -y,补丁修复内核和基础库漏洞 - 重点排查Web目录(如/www/wwwroot)下的文件,删除近期新增的PHP、JSP、ASPX文件,Webshell通常以混淆文件名藏在这些目录
- 如果网站使用开源CMS(如WordPress、ThinkPHP),务必更新到最新版本,近年来多数入侵事件与CMS已知漏洞未修复直接相关
安全产品方面
建议部署云厂商的免费安骑士/云镜等防护组件,或自行安装Fail2ban这类防爆破工具。实时监控的价值在于:下次入侵还在早期阶段就能收到告警短信,而不是事后再补救。
服务器被入侵后的常见疑问
服务器被入侵收到短信怎么办,能不能先不处理?
不建议,攻击者驻留时间越短,数据泄露风险越小,不少企业抱着侥幸心理,结果第二天收到勒索邮件或发现数据库被清空,哪怕凌晨收到短信,也应该至少完成隔离操作,再睡回笼觉等待白天排查,但前提是隔离动作必须完成,隔离后攻击者已经无法继续操作。
入侵溯源是否需要找专业团队?
取决于服务器重要程度,如果是企业核心数据库或金融类业务,建议联系云厂商的安全应急响应团队或第三方等保测评机构,排查成本大约在数千到数万元区间,具体看排查深度和业务复杂度,个人博客或测试机,按本文流程排查即可覆盖大多数入侵场景。
清除后门后如何确认服务器已经安全?
执行chkrootkit和ClamAV对系统做一次全盘扫描,再结合最近的告警记录确认没有新的异常登录后,观察24-48小时内的CPU使用率和外联连接,稳定运行超过48小时且无异常告警,才可判定基本安全。
收到入侵短信从来不是好征兆,但也不至于天塌下来,按确认告警 → 切断网络 → 备份日志 → 定位路径 → 清除后门 → 全面加固这条链路走完,大多数入侵事件都能控制住,对抗攻击者的核心能力是行动速度,快一步就多一分主动权。