件共享漏洞主要是使用netbios协议
件共享漏洞主要是使用netbios协议
上周帮朋友看一个内网渗透测试报告,洞主扫描器列出一堆 445 端口开放的使用机器,其中三台直接能读到整个C盘。享漏s协朋友问:“这都2025年了,洞主怎么还有这种事?使用”我让他抓个包看看——果然,SMB 协商请求里混着 NetBIOS 的享漏s协会话服务。问题就出在这儿。洞主
文件共享漏洞的使用根源,十有八九要追溯到 NetBIOS 协议的享漏s协设计缺陷。这个上世纪80年代的洞主东西,原本是使用让几台IBM PC在局域网里互相找名字、传文件用的享漏s协。它跑在 TCP 139 端口上,洞主后来微软把它和 SMB 绑在一起,使用又搞出个 445 端口直接跑 SMB over TCP。可很多系统为了兼容老设备,NetBIOS 服务照样开着。攻击者只要发一个精心构造的 NetBIOS 名称查询,就能拿到机器名、工作组、甚至登录用户名。这玩意儿比 ping 还基础,但泄露的信息足够画出一张内网拓扑图。
更麻烦的是空会话。NetBIOS 允许匿名连接,IPC$ 共享一开,攻击者不需要任何凭据就能枚举用户、组、共享列表。我见过一台Windows Server 2008,扫描器用 nbtstat -A 直接列出了所有本地账户。管理员还一脸茫然:“我设了强密码啊。”密码再强,也架不住协议本身把门开着。
“NetBIOS 不是漏洞,它本身就是个漏洞。”——某次内部安全会议上,一个老工程师的原话。
具体案例。2017年“永恒之蓝”爆发时,很多人只盯着 MS17-010 这个SMB漏洞,却忽略了攻击载荷的传播路径——它正是通过 NetBIOS 名称解析找到相邻机器的。没有 NetBIOS,蠕虫的扩散速度至少慢一个数量级。再往前,2003年的冲击波、2004年的震荡波,都借了 NetBIOS 的便车。协议本身没变,变的是攻击工具越来越傻瓜化。
为什么禁不掉?兼容性。很多工业控制系统的老软件,写死了通过 NetBIOS 名称访问共享文件夹。你关了 139 端口,它直接报错“找不到网络路径”。IT 部门只能妥协,在防火墙里放行内网互访。结果一台中招,整片区域沦陷。我见过最离谱的,是一家医院的影像归档系统,因为 NetBIOS 广播风暴导致整个科室断网——不是被攻击,是协议自己把自己玩死了。
个人观察:现在谈文件共享安全,大家言必称 SMB 签名、SMB 加密、访问控制列表。这些当然重要。但如果你不把 NetBIOS 关掉,就像给防盗门装了指纹锁,却把窗户留条缝。nbtstat -n 能列出本地 NetBIOS 名称表,net view \\目标IP 能直接看共享——这些命令在渗透测试里依然是首选。防御方呢?组策略里禁用 NetBIOS over TCP/IP,或者干脆在交换机上封掉 UDP 137、138 和 TCP 139。445 端口该留着就留着,但别让 NetBIOS 再插一脚。
说句实在的,NetBIOS 早就该进博物馆了。可现实是,你随便扫一个企业内网,至少三成机器还在跑。不是技术难改,是没人愿意动。直到某天勒索软件把共享文件夹全加密了,才想起来问:“这协议怎么关?”
下次做安全基线检查,别只看补丁号。打开注册表,找到 HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces,把 NetbiosOptions 改成 2。或者更干脆,网络适配器属性里取消勾选“Microsoft 网络的文件和打印机共享”——虽然这招对某些老系统不管用。但至少,你堵上了那个最古老的洞。
```