去年秋天,内网我蹲在客户机房角落,攻防盯着屏幕上跳动的演练告警日志。攻击队刚用钓鱼邮件拿下了一个财务终端的内网权限,正横向扫描内网。攻防防守方三个人,演练对着态势感知平台手忙脚乱。内网那场演练最终以攻击队拿到域控收尾——而防守方甚至没搞清楚对方是攻防从哪台机器进来的。
这就是演练内网攻防演练的常态。外网打点只是内网开场,真正的攻防较量发生在防火墙背后。很多人以为买了EDR、演练部署了蜜罐就万事大吉,内网实际上攻击队最擅长的攻防恰恰是绕过这些。他们用合法账号登录,演练走正常协议通信,流量看起来和运维人员没区别。
我见过最漂亮的一次内网渗透,攻击队只用了三个步骤。先通过一个未授权的Redis服务写入SSH公钥,拿到一台测试服务器。然后在上面翻到运维人员留的Ansible配置文件,里面明文存着几十台机器的凭据。最后用这些凭据登录跳板机,直接连到核心数据库。整个过程没触发任何告警,因为所有操作都是“合法”的。
防守方的问题往往出在看不见的地方。资产台账对不上,影子资产一堆;服务账号密码复用,一个泄露全线崩溃;日志采集不全,攻击路径还原不出来。更麻烦的是人——很多企业的安全团队和运维团队是割裂的,安全的人不懂业务系统,运维的人不关心安全配置。演练时两边互相甩锅,攻击队趁乱得分。
有个细节值得注意。某次演练中,攻击队在内网潜伏了整整四天,每天只做一件事:用net view命令枚举共享。防守方看到大量445端口连接,以为是正常文件访问,没管。第五天攻击队通过一个共享目录里的脚本文件,拿到了域管哈希。事后复盘,防守方承认他们根本没监控内网SMB流量。
内网攻防的本质是信息不对称。攻击队找一条路就够了,防守方要堵住所有路。但现实是,大部分企业的内网比想象中脆弱。默认配置、弱口令、过期补丁、过度授权——这些老问题年年提,年年有。演练时暴露出来,演练后整改一阵,过半年又恢复原样。
我个人的判断是,内网防守别追求大而全。先把资产盘清楚,把域管、数据库、核心业务系统的访问路径理出来,在这些关键节点上做细粒度监控。比如域控的登录事件,正常情况一天就那么几次,突然出现异常时间、异常源IP的登录,直接告警。再比如数据库的批量导出操作,非运维时段出现就是可疑。
攻击队其实也怕麻烦。如果内网处处有陷阱,走一步触发一个告警,他们也会转向更容易的目标。演练比分不重要,重要的是通过对抗发现真实短板。那些在演练中被打穿的系统,真到了实战就是最先丢的阵地。
最后说个观察。做得好的防守方都有一个共同点:他们不依赖单一产品,而是把网络流量、终端日志、身份认证数据串起来看。一个账号在A地登录,五分钟后又从B地登录,中间还访问了文件服务器——这种关联分析比任何单点告警都管用。工具是死的,人才是活的。