7

我正在编写一个 Python 模块来查找附近的 WiFi 客户端设备。我当前的扫描仪所做的只是侦听探测请求并记录客户端 MAC 地址。

我遇到的问题是我完全依赖设备广播探测请求让我发现它。

我想知道是否有其他方法可以发现设备。使用这个站点作为 802.11 指南,我想出了一些想法:

  • 发送具有通用 SSID 的广播数据包以查看客户端是否响应。例如,使用“Netgear”作为 AP SSID 发送广播,并查看是否有任何具有已知“Netgear”配置文件的客户端响应
  • 发送解除关联数据包以强制已连接的客户端重新扫描电波

我还没有测试这两个想法。只是吐个球。

想法?

4

4 回答 4

3

我认为广播的想法不会奏效。802.11 中的广播流量未得到确认,因此站点没有理由响应此类流量。唯一的方法是,如果您连接到有问题的 AP,在这种情况下,您可以执行广播 ICMP 回显请求或类似的操作(但您只能从同一 ESS 中的站点获得响应)。

我认为取消关联数据包的想法也行不通,因为它必须发送到电台,而您可能不知道该地址。

我建议只嗅探所有流量并跟踪您看到的 MAC 地址。您不必依赖电台探测,但您确实依赖于他们有时会发送一些东西(任何东西)。

于 2010-10-23T18:44:46.710 回答
3

我实际上正在做同样的事情。据我所知,正如@PerEkman 指出的那样,似乎没有办法从客户端设备引发响应。

您的第一个想法 - 使用通用 SSID 设置 AP - 非常类似于被称为 Mis-Association 的 WiFi hack(以及其他名称)。查看http://www.packtpub.com/article/backtrack-5-attacking-the-client了解有关恶意黑客如何使用此技术的更多信息。

如果您愿意,您可以等待来自附近客户端设备的探测请求,然后创建一个 SSID 与客户端正在查找的内容匹配的 AP。当然,这种方法的主要缺点是可能需要与客户端设备一样多的 AP。

您也许还可以从这里使用一些想法:http: //hackaday.com/2011/10/04/wifi-jamming-via-deauthentication-packets/ 信息有点稀疏,但似乎表明可以在给定通道上向广播 (255.255.255.255) 发送取消身份验证数据包,并强制该通道上的所有客户端使用各自的 AP 重新进行身份验证(假设它们在一个上)。然后你就可以等待 reauths 并以这种方式获取你的信息。也许其他人可以证实这一点?

于 2013-04-29T20:46:56.903 回答
1

您还可以查找由 Wi-Fi 客户端设备发送到接入点的数据帧和数据空帧。这些来自 STA 的上行链路帧将在帧控制字段中具有 ToDs=1 和 FromDs=0。即使客户端设备没有主动下载数据,大多数客户端设备也会经常定期发送数据空帧,作为保持活动状态或向接入点发送其当前节能状态的信号。

于 2011-08-10T20:28:33.080 回答
0

如果有疑问,请在 Github 上搜索>——那里已经有很多关于 802.11 协议的项目。

于 2022-02-25T01:39:51.677 回答