探测请求帧

网络工程 IEEE-802.11 MAC地址 包分析 切入点
2022-02-19 03:57:07

客观的

这里的最终目标是使用 Scapy 构建一个 python 程序,以检测我机器范围内的所有接入点。

理解

我知道这通常是通过使用802.11 Frame Types来完成的,特别是探测请求帧和探测响应。

误解

但是,我似乎缺少一个概念。

使用 scapy,我可以像这样发送探测请求帧:

local_mac = 'AA:BA:CA:DA:EA:FA'
dest_mac = 'AB:BB:CB:DB:EB:FB'
srp(Dot11(type=0, subtype=4, addr1 = local_mac, addr2 = dest_mac), iface = 'wlan0')

如您所见,我需要尚未发现的接入点的目标 MAC 地址。那么,在发现接入点之前,我应该如何知道目标 MAC 地址?

这在实现此结果的其他应用程序中是如何完成的——例如我的计算机提供给我可能连接到的接入点列表?

2个回答

您显然不知道 AP 的 MAC 地址,因此您想将其发送给所有人。您使用广播地址 FF:FF:FF:FF:FF:FF。每个设备都会收到这个数据包,并且 AP 会以探测响应进行响应。

只听信标是不够的。通常,SSID 是隐藏的,因此您必须主动探查它们。

获取 WAP 的 MAC 地址的方法是监听 WAP 发送的信标帧。

这来自您问题中的链接:

信标帧:接入​​点定期发送信标帧以宣布其存在并中继信息,例如时间戳、SSID 和有关接入点的其他参数到范围内的无线电 NIC。无线电 NIC 不断扫描所有 802.11 无线电信道并收听信标,以此作为选择最佳关联接入点的基础。