我有一个包含 802.11 流量的 pcap 文件。我如何从这个 pcap 文件中了解任何接入点的正常运行时间是多少?有一个名为 TimeStamp 的字段,这个字段对我来说重要吗?
我如何了解接入点的正常运行时间?
PCAP 文件中的时间戳是捕获平台观察到流量的时间。这意味着要高精度的挂钟时间。预计并非所有平台都实现高精度挂钟时间(例如,平台甚至可能不运行 NTP,更不用说更准确的技术了)。此外,约定使用其他零时的实现是允许的 PCAP。例如,一些用于共享 PCAP 文件的清理器会将第一个数据包设为零时,以避免泄漏捕获完成的挂钟时间。
从 PCAP 导出正常运行时间需要了解接入点、其配置的协议以及(在更复杂的部署中)接入点控制器的覆盖策略。几分钟没有流量可能并不意味着接入点正在重新启动,或者它可能,这一切都取决于细节。
此外,对于无线电系统,流量不足可能表明监控平台无法接收,而不一定是接入点无法传输。有人可能一直在用微波炉加热他们的午餐:-)
使用 SNMP 是一种更典型的收集设备正常运行时间的方法。可以使用 SNMP 变量 sysUpTime 检索设备正常运行时间。具有 SNMP 对象 ID iso(1).identified-organization(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3)。它是一个关键变量,并在所有声称符合 SNMP 的平台上实施。
编辑
问题的海报已经澄清了他们的问题
我想知道 airodump-ng 如何从信标时间戳字段计算此正常运行时间
在 802.11 硬件中有一个 1MHz 时钟,它保存在一个 64 位寄存器中。该寄存器在通电时被初始化为零。因此,该时钟寄存器的值最初是 WLAN 控制器的正常运行时间(以微秒为单位)。
当一个 Beacon 帧或 Probe Response 帧被发送时,该时钟寄存器的值被放置在 Timestamp 字段中。
对于具有单个接入点的 WLAN,您的“aircrack-ng”程序可以打印信标帧的时间戳字段并声称该值是接入点的正常运行时间。
然而,在一个多接入点系统中,一个接入点接收到的所有信标中时间戳的最高值被写回到该接入点的 1MHz 时钟寄存器中。使用这种技术,所有接入点都集中在一个 1MHz 时钟的共同值上(嗯,在 25µs 左右)。
在多接入点的情况下,我们只能说单个接入点的信标时间戳是接入点正常运行时间的上限——任何特定接入点的实际正常运行时间可能会更低。事实上,很容易想象一个没有接入点具有时间戳所声称的正常运行时间的场景。
更多信息谷歌“802.11时间戳同步功能”,这是我上面概述的算法的名称。您可以从 IEEE 网站免费下载 802.11 规范。您会在该规范中找到深入解释的 TSF。正如您可以从没有接入点、多 SSID 接入点等的 Adhoc 网络中想象的那样,还有更多的深度。