半夜接到监控告警,服务器CPU飙到100%,或者HIDS狂报Webshell,甚至直接收到了勒索信。确认服务器沦陷了。
很多新手遇到这种事,一慌就直接SSH上去 kill -9 杀进程,或者 rm -rf 删文件,甚至反手就是一个 reboot 重启。
兄弟,听我一句劝,这一套连招下去,内存里的攻击痕迹全没了,日志可能被覆盖,取证直接报废,后面溯源只能靠猜。
今天不扯那些虚头巴脑的理论,就从一个一线安全运维的视角,聊聊服务器真被入侵了,现场到底该按什么顺序操作,用什么命令,怎么保全证据,怎么把业务救回来。
一、 第一阶段:抑制隔离(先控风险,保护证据)
发现被入侵,第一原则是止损,第二原则是保护现场。
🚫 现场绝对禁忌(踩坑血泪教训)
- 绝对不要直接重启服务器:内存里的网络连接、未落盘的恶意代码、攻击者的Session全没了。有些勒索病毒甚至设定了重启就加密或删除文件的逻辑。
- 不要随意删除可疑文件:删了就没法做沙箱分析和特征提取了。
- 不要直接清空或修改日志:攻击者可能会清理日志,但你作为防守方,必须保证原始日志的完整性。
隔离实操(带着顾虑做隔离)
业务方通常死活不让断网,怕影响收入。这时候别硬刚,采取折中方案:
- 网络层隔离:在交换机ACL或云安全组上,只封禁异常外联IP和攻击源IP,断开非必要的公网端口映射,但保留你的管理口IP。
- 账号冻结:如果发现可疑账号,先在系统里禁用(Disable),别直接删,留着溯源。
二、 第二阶段:现场取证+溯源回溯(核心实操)
隔离完之后,开始抓内鬼。这部分是硬骨头,命令直接抄。
1. Linux 主机排查命令
# 1. 查异常进程与网络连接(找挖矿或反弹Shell)
ps -ef | grep -v "\[" | awk '{print $2, $8, $11}' | sort -k2 -nr | head -n 20
netstat -antp | grep ESTABLISHED
lsof -p <可疑PID> # 查看该进程打开了哪些文件
# 2. 查登录痕迹与历史命令
last # 查成功登录
lastb # 查失败登录(爆破痕迹)
history # 查当前用户历史命令
cat ~/.bash_history # 查隐藏的历史命令
# 3. 查持久化后门(定时任务与启动项)
crontab -l
cat /etc/crontab
ls -al /etc/cron.*
systemctl list-unit-files --state=enabled
# 4. 查关键日志(重点看安全与定时任务日志)
tail -n 500 /var/log/secure # 看SSH登录和提权
tail -n 500 /var/log/cron # 看定时任务执行情况
tail -n 500 /var/log/messages # 看系统常规报错
2. Windows 主机排查与事件ID
Windows主要看安全日志,记住这几个关键事件ID:
- 4624:登录成功
- 4625:登录失败(大量出现就是爆破)
- 4720:新建用户(攻击者建后门账号)
- 1102:日志被清除(看到1102直接定性为恶意入侵)
# 1. 导出安全日志(先备份,别直接在事件查看器里看)
wevtutil epl Security C:\sec_backup.evtx
# 2. 查最近的成功登录
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} -MaxEvents 20 | Select-Object TimeCreated, Message
# 3. 查新建用户
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4720}
# 4. 查网络连接和进程
netstat -ano
tasklist /svc
3. 溯源回溯:还原攻击链
拿到日志后,怎么串起来?
- 找入口:看Web访问日志(找SQL注入、文件上传);看安全日志(找RDP 3389爆破)。
- 找时间:确定第一波异常登录的时间点。
- 找源IP:提取攻击者IP,丢到威胁情报平台查一下,看是不是已知矿池或C2节点。
- 找横向:看内网连接日志,攻击者有没有用这台机器做跳板扫描内网其他机器。
找不到日志怎么办?
如果攻击者把本地日志清了,别死磕。去查边界设备(WAF、IPS、NDR)的流量日志,或者查数据库的审计日志,甚至看同网段其他机器的日志,从侧面拼凑攻击链。
三、 第三阶段:根除威胁,清除后门
这里面临一个最现实的取舍。
方案A:业务允许,直接重装(强烈推荐)
只要条件允许,备份数据后直接重装系统。这是唯一能保证100%干净的方法。你永远不知道攻击者有没有留Rootkit或者内核级后门。
方案B:业务不能停机,就地清理(带着风险操作)
如果业务绝对不能断,只能就地清理,但你要清楚风险极高,大概率清不干净。
- 杀进程与删文件:先杀进程,再删文件(顺序反了文件可能被进程重新拉起)。
- 清定时任务与启动项:把恶意的
crontab和注册表启动项删掉。 - 删隐藏账号:
- Linux:查
/etc/passwd里 UID 为 0 的非 root 账号。 - Windows:查注册表
SAM键值,找带$的隐藏账号。
- Linux:查
- 改密码:把所有相关账号密码全改了。
四、 第四阶段:业务恢复上线的正确流程
清理完千万别直接接回生产网络,否则秒被二次打穿。
- 隔离区修复:在隔离状态下,把导致入侵的漏洞补上(比如修补Web代码、打系统补丁、修复弱口令)。
- 全面杀毒与校验:跑一遍最新的杀毒软件,确认没有异常外联和残留后门。
- 分步上线:先放开内网访问,观察半天;没问题再放开外网访问。期间盯紧流量监控,确认没有再次触发告警。
五、 第五阶段:复盘闭环
事情平息后,别以为就完事了,还得输出复盘报告,不然下次背锅的还是你。报告必须包含:
- 时间线:从入侵发生、发现、处置到恢复的精确时间。
- 入侵路径:攻击者是怎么进来的,利用了哪个漏洞。
- 损失评估:数据有没有泄露,业务停了多久。
- 整改建议:这是重点。针对这次暴露的问题,提出具体的加固措施(比如收敛端口、上WAF、改架构),并明确责任人和完成时间。
六、 个人实战总结:应急响应最容易犯的错
干了这么多年应急,发现大家最容易犯的错误就这几个:
- 没抓包/没留内存镜像就断网:断网后很多内存里的加密流量和通信特征就抓不到了。
- 只杀进程没删文件:你刚
kill掉,定时任务一触发,恶意文件又把自己拉起来了。 - 没改密码/没踢Session:文件清了,但攻击者手里的 Valid Session 还没失效,或者密码没改,人家换个IP又登进来了。
- 不敢跟业务方硬刚:该断网的时候心软,导致攻击者在内网横向移动,最后把核心数据库也感染了。
做安全运维,平时多流汗,战时才能少流血。希望这篇实战总结能帮大家在遇到事儿的时候不慌。
博主互动时间:
各位兄弟,你们在处理服务器入侵时,遇到过最奇葩的后门隐藏方式是什么?或者在跟业务方沟通断网时有什么话术技巧?欢迎在评论区交流,互相避坑!觉得有用,点个赞收藏一下,关键时刻能保命~

1万+

被折叠的 条评论
为什么被折叠?



