假设我有两个AP。我希望一个AP监视另一个AP的信标信息,例如该AP是否缓冲了信息流,TSF以及信标中包含的所有信息。他们可以监视每个。我在iwlist扫描中发现,我们可以得到其他AP的TSF,但我不知道iwlist扫描如何获取信标信息,即使我已经阅读了源代码。我的无线驱动程序是ath9k。如何获取另一个AP的信标信息?
你有什么想法吗?如何从扫描的信标帧中提取一些信息?谢谢。
假设我有两个AP。我希望一个AP监视另一个AP的信标信息,例如该AP是否缓冲了信息流,TSF以及信标中包含的所有信息。他们可以监视每个。我在iwlist扫描中发现,我们可以得到其他AP的TSF,但我不知道iwlist扫描如何获取信标信息,即使我已经阅读了源代码。我的无线驱动程序是ath9k。如何获取另一个AP的信标信息?
你有什么想法吗?如何从扫描的信标帧中提取一些信息?谢谢。
如果您想要嗅探和分析信标,则需要在接口 上设置监控模式,并将该信道设置为AP信道。
你可以做到这一点,例如IW实用
iw wlan0 set monitor otherbss
iw wlan0 set channel X
找出AP信道只是一些扫描像
iw wlan0 scan
如果您的硬件和驱动程序支持监控模式下,你应该能够运行Wireshark 并查看AP的信标。 要编写解析信标和监视事件的实用程序,可以使用libpcap 或在python中为其绑定例如。
wpa_supplicant
是广泛使用的wifi中间件,提供BSS命令来获取AP信息,如TSF和IE。
使用wpa_cli
,您可以发送命令到wpa_supplicant
。
以下是通过利用wpa_cli
获取tsf值的示例。 (假设接口名称是为wlan0)
wpa_cli -iwlan0 scan
Wpa_cli -iwlan0 scan_result
# (Find out bss id of APs you want to get tsf.)
wpa_cli -iwlan0 bss "bss id"
如果你想这样做在你的代码,在互联网上参阅wpa_ctrl.c
。
您需要有支持监视模式和802.11帧的理解的无线网卡。
话虽如此,有像libpcap和libtins的库,使您能够轻松捕获和执行数据包的分析或操作。
我已经使用了libtins(http://libtins.github.io/),并建议你看看它。它是一个易于使用的C++库,并以自身的信标帧为例(http://libtins.github.io/examples/beacon-display/)。