上周帮朋友公司做红蓝对抗复盘,发现一个挺有意思的现象:不是技术不行,而是很多队伍在演练还没开始前,就已经埋好了失败的种子。
1. 环境没对齐,蓝队查日志,红队在改DNS
红队说:“我们用C2绕过WAF了。”蓝队一脸懵:“啥是C2?我们连防火墙日志都没开。”
常见操作:红队按自己习惯打,蓝队按平时运维节奏守。结果红队爆破成功了,蓝队还在等告警邮件——因为SIEM根本没接入认证系统。环境不统一、规则不提前确认,等于双方在两个平行宇宙里打架。
2. 以为“上线即安全”,漏掉基础配置
某次演练,红队没碰核心业务,直接拿下一台开发测试机,SSH密码是 admin123,Web后台地址写在 GitHub 公开仓库 README 里。
更离谱的是,这台机器还开着 telnet,root 账号没禁用。蓝队事后解释:“这是临时环境,没人管。”——可演练不分临时和正式,只分“被拿下”和“没被拿下”。
3. 日志形同虚设,出事全靠猜
有家单位花了大价钱上EDR,但所有终端日志只存本地,没汇总;WAF日志开着,但没人配置自动归档,磁盘满了就自动覆盖。红队打完收工,蓝队翻三天日志,最后靠服务器进程列表里多出来的 ./xmr-miner 才确认被黑。
不是没工具,是没把日志当“证据链”来用。
4. 应急响应流程写在PPT里,没跑过真实路径
演练中蓝队发现异常流量,按流程该先隔离主机、再取证、再上报。结果第一步就卡住:没人知道隔离按钮在哪(防火墙策略页面藏得太深),有人想拔网线,被隔壁运维拦住:“这连着监控系统!”
纸上流程≠肌肉记忆。没在测试环境走通一遍,真出事只会更乱。
5. 忽略人这个最大变量
钓鱼邮件模板用“财务部发奖金名单.xlsx”,附件名却是 salary_list.js;员工点开后弹窗报错,没人上报,因为“以前也这样”。还有人把演练通知当成垃圾邮件,直接点了“退订”——结果退订链接是红队搭的恶意跳转页。
技术能加固,意识得天天练。一次全员钓鱼测试比十次渗透报告都管用。
攻防演练不是考试,是照镜子。照见的不是谁强谁弱,而是日常哪些动作已经松动、哪些环节早该拧紧螺丝。