@[TOC]
渗透测试:NBT(NetBIOS)协议详解
1. 什么是 NetBIOS?
NetBIOS(Network Basic Input/Output System)是一种 网络通信协议,用于 局域网(LAN)内的设备命名、会话管理和数据传输,最早由 IBM 在 1983 年开发。
- NetBIOS 主要用于 Windows 计算机 之间的通信,早期依赖 NetBEUI(NetBIOS Extended User Interface)协议,但后来被 TCP/IP 取代。
- NetBIOS 提供了 名称解析(Name Service)、会话管理(Session Service)和 数据报服务(Datagram Service)。
2. 什么是 NBT(NetBIOS over TCP/IP)?
NBT(NetBIOS over TCP/IP)是 让 NetBIOS 在 TCP/IP 网络上运行 的协议,允许 Windows 计算机在 非 NetBEUI 网络(如互联网、现代局域网) 中进行 NetBIOS 解析和通信。
- NBT 允许基于 IP 进行 NetBIOS 设备发现、文件共享、远程访问等功能。
- 在 Windows 2000 以后,微软逐渐用 DNS 代替 NetBIOS,但在许多局域网中,NBT 仍然广泛使用,特别是在 Windows 共享(SMB)服务 相关的环境中。
3. NBT 主要的端口
NBT 使用 UDP 和 TCP 端口 进行通信:
| 端口 | 协议 | 用途 |
|---|---|---|
| 137 | UDP | NetBIOS Name Service(名称解析) |
| 138 | UDP | NetBIOS Datagram Service(数据报服务) |
| 139 | TCP | NetBIOS Session Service(会话服务,SMB 使用) |
端口 139 是 SMB(Server Message Block)文件共享的主要端口之一。
4. NBT 在渗透测试中的应用
在 内网渗透测试 或 信息收集 阶段,NBT 仍然是非常重要的目标。
4.1 发现 NetBIOS 设备
-
nbtscan:用于扫描 NetBIOS 设备信息,发现网络中的在线主机。
nbtscan -r 10.11.1.0/24 -
Windows 命令行工具:使用
nbtstat命令获取特定主机的 NetBIOS 信息。nbtstat -A 10.11.1.15 -
nmap:通过 UDP 端口 137 扫描 NetBIOS 服务,利用
nbstat脚本获取更多详细信息。nmap -sU -p 137 --script nbstat 10.11.1.0/24
4.2 Responder(NBT-NS Poisoning)
- 利用 NetBIOS 名称解析漏洞进行中间人攻击(MITM),窃取 Windows 认证信息。
sudo responder -I eth0 - 捕获 NetNTLMv2 哈希并尝试离线破解:
john --format=netntlmv2 hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
5. NBT 相关的攻击
由于 NetBIOS 仍然被许多 Windows 网络使用,攻击者可以利用以下方法进行渗透。
- NetBIOS Name Spoofing(NBT-NS 欺骗):拦截并伪造 Windows 认证请求。
- Pass-the-Hash(PTH):利用 SMB 和 NetBIOS 获取哈希并进行身份冒充。
- SMB 共享攻击:利用 NetBIOS 发现共享资源,并尝试匿名访问。
- NTLM 中继攻击:结合 Responder 进行身份盗用。
ntlmrelayx.py -tf targets.txt -smb2support
6. 现代网络中的 NetBIOS
✅ 由于 DNS 和 Active Directory(AD) 的普及,现代 Windows 网络 逐渐减少了对 NetBIOS 的依赖。 ✅ 但 许多老旧系统、工业控制系统(ICS)和企业内网 仍然 启用 NetBIOS,成为安全风险点。 ✅ 在 渗透测试、红队评估 中,NBT 仍然是 发现域信息、共享文件、获取凭据的重要手段。
7. 防御措施
7.1 关闭 NetBIOS 服务
- 在 Windows 服务器或客户端上,禁用 NetBIOS:
ncpa.cpl # 打开网络适配器设置- 选择网络适配器 → 右键属性 → Internet 协议版本 4(TCP/IPv4) → 高级 → WINS 选项卡 → 禁用 NetBIOS。
7.2 过滤相关端口
- 在防火墙上 关闭 UDP 137、138 以及 TCP 139 端口。
- 使用 Group Policy(GPO)限制 NetBIOS 解析。
7.3 启用 SMB 签名
- 在 Windows 域环境中,启用 SMB 签名以防止中间人攻击。
gpedit.msc # 组策略管理- 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 → “Microsoft 网络服务器:数字签名(始终)” → 启用。
7.4 监测 NetBIOS 攻击
- 通过 SIEM 监控 NBT-NS 请求 及可疑 NetBIOS 连接。
- 部署 IDS/IPS 规则检测 NBT-NS Poisoning 攻击。
原文 https://blog.csdn.net/2301_79518550/article/details/145441918