我想知道如何使用wireshark捕获特定无线网络的数据包。
我已经能够捕获不同网络的所有数据包,将我的无线网卡设置为监控模式,但是对于特定的分析,我需要在捕获过程中丢弃所有与我的网络无关的数据包。
我知道现有的显示过滤器可以做到这一点,但我需要提前过滤它们(比如使用捕获过滤器)。
如果我转到CAPTURE->OPTIONS,我可以设置capture filters,但我不知道确切的filter,因为它们与display filter不同,事实上wlan.bssid==xx:xx不工作。
有什么建议吗?
谢谢
发布于 2018-07-18 01:41:53
它需要一些引导,但BSSID字段处于固定的、可预测的位置。
BSSID位于第16位,因此如果您想要模拟以下内容:
wlan.bssid=12:34:56:78:9a:bc你必须这样做:
wlan[16:4] == 0x12345678 and wlan[20:2] == 0x9abc 您必须将前4个二进制八位数转换为int32,最后2个转换为int16,并使用2个子句,因为BPF不能表示6字节数,但我已经使用过它,它工作得很好。这也可以适应其他用途(您只需要偏移量)。
发布于 2015-04-23 09:01:35
简单的答案是wireshark工具不能过滤BSSID。Wireshark使用pcap,它通过SO_ATTACH_FILTER ioctl使用内核Linux Socker过滤器(基于BPF)。BSSID没有BPF筛选器。
另一个工具airodump-ng可以通过BSSID捕获,因为它将所有802.11帧传递到用户空间,并在那里解码/过滤帧。
例如,我的SOHO在不到两分钟的时间内捕获11K帧;而我仍然丢弃帧。我附近的BSSID和我在不到三分钟内收到141K帧(104MB)。
我希望做一个嵌入式帧嗅探器/注入器使用EMMC或SD闪存,所以我需要小心突破限制。
因此,我正在尝试编写一个自定义的BDF过滤器,以便只过滤本地BSSID帧。我希望扩展它来删除大量的“嘈杂”帧--大多数控制和管理帧都可以过滤掉。
无论如何,希望我为解决方案提供了一些面包屑。它可能只是一个airodump用户空间解决方案是最简单的。
https://stackoverflow.com/questions/11628996
复制相似问题