NBNS数据包

NBNS是网络基本输入/输出系统 (NetBIOS) 名称服务器的缩写。它也是TCP/IP协议的一部分。它负责将计算机名转化为对应的IP。其中,Name query NB是请求包,Name query response NB是响应包。双方的端口号均为137。NBNS在WIndows用的较少,Windows普遍采用LLMNR协议。

如果计算机需要知道一个NetBIOS名称或者域名对应的IP地址,首先会查找本地Hosts文件和NetBIOS缓存,其次会去联系DNS服务器进行解析。如果这几种方式都无法完成解析,则计算机会发出NBNS数据包。

### 使用Wireshark捕获和分析NBNS协议流量 #### 启动Wireshark并设置捕捉环境 为了有效捕获NBMS协议的数据包,需先启动Wireshark工具。选择目标网络接口卡(NIC),对于无线局域网连接尤为如此[^1]。 #### 应用显示过滤器 在准备就绪之后,在Wireshark界面中的“显示过滤器”框内输入`nbns`作为过滤条件来限定只查看与NetBIOS名称服务有关的信息流。 #### 开始数据包捕捉过程 点击开始按钮执行实际抓取操作;此时软件会实时监控选定链路上发生的通信事件,并依据先前设定好的筛选规则自动保留符合条件的记录项供后续研究之用。 #### NBNS协议报文分析实例 一旦获取足够的样本资料后即可停止录制动作进而转入细致入微地剖析环节当中去: - **请求消息结构** - `Transaction ID`: 唯一标识一次查询事务。 - `Flags`: 表明当前交互性质(如是否为广播形式发出)。 - `Questions Count`: 记录所含问句数量。 - **响应消息特征** - 包括但不限于上述字段外加额外部分用来携带应答具体内容,比如资源记录列表等。 ```python # Python伪代码用于模拟Wireshark中可能实现的功能片段 def capture_nbns_packets(interface="wlan0"): import pyshark cap = pyshark.LiveCapture(interface=interface, display_filter='nbns') try: print("Starting to capture NBNS packets...") for packet in cap.sniff_continuously(): if 'NBNS' in str(packet.layers): transaction_id = getattr(packet.nbns, "id", None) flags = getattr(packet.nbns, "flags", None) print(f"Captured a NBNS packet with Transaction ID {transaction_id}, Flags: {flags}") except KeyboardInterrupt: print("\nStopping the capture.") capture_nbns_packets() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值