2

Wireshark を使用して特定のワイヤレス ネットワークのパケットをキャプチャする方法を知りたいです。

ワイヤレス カードを監視モードに設定して、さまざまなネットワークのすべてのパケットをキャプチャできますが、特定の分析のために、キャプチャ手順中にネットワークに関連しないすべてのパケットを破棄する必要があります。

それを行うためのディスプレイフィルターが存在することは知っていますが、それらを事前にフィルタリングする必要があります(キャプチャフィルターのように)。

CAPTURE->OPTIONS に移動すると、キャプチャ フィルタを設定できますが、正確なフィルタはわかりません。それらは表示フィルタとは異なるため、wlan.bssid==xx:xx:xx:xx:xx:xx は機能しません。

助言がありますか?

ありがとう

4

2 に答える 2

3

wlan パケットの先頭からインデックスを使用できます。多少の調整が必要ですが、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 バイトの数値を表現できないためです。これは、他の用途にも適用できます (オフセットが必要なだけです)。

于 2018-07-17T17:41:53.357 に答える
0

素晴らしい質問であり、私も理解しようとしてきたものです。

簡単に言えば、wireshark ツールは BSSID でフィルタリングできないということです。Wireshark は、SO_ATTACH_FILTER ioctl を介してカーネル Linux Socker Filter (BPF に基づく) を使用する pcap を使用します。BSSID 用の BPF フィルタはありません。

Another tool, airodump-ng, CAN capture by BSSID because it passes all 802.11 frames into user space and decodes/filters frames there. It works surprisingly well considering all the user-space processing.

But even a low-volume 80211 network is fairly noisy. For example, my SOHO captures 11K frames in under two minutes; and I still drop frames. Grabbing all the 80211 frames for the five visible (but small!) BSSIDs near me and I receive 141K frames (104MB) in just under three minutes.

I'm looking to do an embedded frame sniffer/injector using EMMC or SD flash so I need to be careful about pushing the limits.

そのため、ローカル BSSID フレームのみをフィルター処理するカスタム BDF フィルターを作成しようとしています。そして、「ノイズの多い」フレームを大量にドロップするように拡張したいと考えています。制御フレームと管理フレームのほとんどはフィルタリングできます。フレーム内の BSSID アドレスの位置は、ToDS および FromDS 制御ビットに基づいています。

とにかく、ソリューションにブレッドクラムを提供したことを願っています。airodump ユーザー空間ソリューションが最も簡単なだけかもしれません。

于 2015-04-23T01:01:35.157 に答える