NetBIOS 会话服务与 139 端口
139 是 NetBIOS 会话服务端口,早期 Windows 的文件与打印共享通过它承载 SMB 会话。现代 Windows 已改为直接使用 445,139 只在兼容老客户端或网卡仍启用 NetBIOS 时出现。它与 137、138、445 常被扫描器一并探测,公网暴露既有信息泄露风险,也是永恒之蓝一类蠕虫的传播通道,因此边界防火墙应默认拒绝这几个端口的入站。
基本信息
| 服务 | NetBIOS 会话服务(承载 SMB) |
|---|---|
| 协议 | TCP(NetBIOS 名称与数据报服务另有 UDP 端口) |
| 相邻端口 | 137 名称服务、138 数据报服务、445 直连 SMB |
| 现状 | 仅在兼容旧客户端时使用 |
| 配置位置 | 网卡属性中的 WINS 选项或组策略 |
| 安全等级 | 仅内网,建议逐步关闭 |
典型使用场景
- 老旧客户端访问共享:早期系统只支持通过 NetBIOS 会话访问共享
- 历史系统兼容期:升级过程中需要同时保留新旧两条访问路径
- 资产与暴露面盘点:确认网内主机是否仍启用 NetBIOS
- 安全加固验收:核对 137 至 139 与 445 的封禁结果
- 事件排查:出现这些端口的异常连接通常意味着可疑访问
查看 NetBIOS 配置(Windows)
查看 NetBIOS 配置(Windows)
Get-CimInstance Win32_NetworkAdapterConfiguration | Select-Object Description,TcpipNetbiosOptions # 0 表示随 DHCP 决定
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol,RequireSecuritySignature # SMBv1 与签名状态
netstat -ano | findstr ':139' # 本机是否仍有监听139 与 445 的承载差异
| 端口 | 承载方式 | 现状 |
|---|---|---|
| 139/tcp | SMB 会话跑在 NetBIOS 会话层之上 | 仅在启用 NetBIOS 或旧客户端场景出现 |
| 445/tcp | SMB 直接承载在 TCP 之上 | 现代 Windows 文件共享默认 |
| 137/udp | NetBIOS 名称解析 | 通常由 DNS 取代 |
| 138/udp | NetBIOS 数据报服务 | 用于浏览与通告 |
SMB 面自检与逐步关闭
SMB 面自检与逐步关闭
Test-NetConnection fileserver -Port 445 # 先确认 445 可用
Test-NetConnection fileserver -Port 139 # 再确认 139 是否仍被依赖
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force # 评估兼容性后关闭 SMBv1
# 网卡属性中禁用 TCP/IP 上的 NetBIOS,或通过组策略统一下发从 Linux 侧分别探测两个端口
从 Linux 侧分别探测两个端口
nc -vz fileserver 445 # 通即现代共享可用
nc -vz fileserver 139 # 不通属于现代默认形态,不算故障
smbclient -L //fileserver -N # 顺带确认匿名列举是否已被禁用边界防火墙应拒绝 137 至 139 与 445 的入站流量;只封 445 而保留 139,旧协议路径依旧能被利用。
关闭 NetBIOS 前先盘点依赖:部分老系统的共享发现与打印服务依赖它,突然禁用会出现用户找不到共享的现象;建议按网段分批推进并保留回退方案。
修复要点不只在边界:蠕虫依赖的漏洞需要在主机侧装补丁并禁用旧版协议,防火墙封禁只是降低传播速度,两端同时做才算完整。