2011年10月5日水曜日

Macで無線LANキャプチャ

仕事柄、無線LANの電波をキャプチャして解析したりすることがよくあります。こんな時はBSDのtcpdumpを使うのですが、IEEE802.11のマネージメントフレームとかを見るには絶滅危惧種のAtherosの無線LANチップでないと(たぶん)ダメだったりして今後が危ぶまれていたのですが、先日の沖縄で知り合いがMacでキャプチャする方法を発見しました。(いや、普通にmanに載ってるんですけどね(^^; )

使うコマンドはBSDと同じ"tcpdump"。これに"-I" (大文字のアイ)オプションを付けるとIEEE802.11のフレームもキャプチャできます。BSDの"-y IEEE802_11_RADIO"と同等のようです。ちなみにこれを教えてもらったのはSkypeを通してだったのですが、"-I"と"-l"(小文字のエル)を間違えて、なかなかできなかったのは内緒です(^^;

使い方はシェルからこんな感じで。
sudo tcpdump -n -l -I -i en1

"en1"のところはもちろん無線LANインターフェースにします。ただ、これだとMacがAssociateしてるチャンネルになっちゃいます。

なんとかチャンネル変えられないかなぁ、なんて言ってたら、また発見してくれました。奥深くに隠された(?) "airport" なるコマンド。"-h" オプションでオプションの説明が出てきます。一旦Deauthして、チャンネルを変えると無事希望のチャンネルをキャプチャできるようになりました(^^)

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z

まず "-z" オプションでDeauth。

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -c36

次に "-c" オプションでチャンネル指定。

これでわざわざBSD+AtherosなPCを持ちださなくても、Macでキャプチャできるようになりました(^^)

0 件のコメント:

コメントを投稿