スポンサーリンク

検証

WiresharkでIEEE802.11フレームをキャプチャ―する方法

投稿日:


まず初めにWi-Fiとは、IEEE802.11規格を無線LAN通信に採用したブランド名のことで、通信規格ではないので、Wi-Fiを使った通信を無線LAN通信と表現しています。


Wiresharkでは、無線LANの中身をキャプチャすることが出来ます。例えば、以下はwindowsで無線LANの通信をキャプチャした様子です。


ここで疑問に思う点があります。


よく見ると、windowsでキャプチャした無線LAN通信は、有線の通信規格であるEthernetの規格がMAC層に表示されています。今回キャプチャした無線通信には、IEEE802.11規格が表示されていなければおかしいはずです。



なぜWindowsのWiresharkでIEEE802.11フレームをキャプチャ出来ないのか



実はこれは、wiresharkで無線パケットをキャプチャしたときに、windows OS側で、IEEE802.11 MAC フレーム等から、必要な情報を抽出して、疑似的にEthernet規格に合わせて表示しています。なので、単にwiresharkで無線LANパケットをキャプチャすると、Ethernetが表示されて、「あれおかしいな?!」ということになってしまいます。


これを解決するために、”モニターモード” という機能を使います。モニターモードでキャプチャすることで、IEEE802.11フレームをキャプチャすることが出来ます。



モニターモードは、wiresharkのモードではなく、無線アダプター (厳密には無線LANアダプターに内蔵されているチップセット) のモードの一つです。無線LANのネットワークに所属せずに、届いた無線LAN電波をひたすら取得する無線LANアダプターのモードです。基本的に、ノートPC内蔵の無線LANアダプターには、このモニターモードの機能は付いておりません。なので、新しくUSB接続する無線LANアダプターを購入する必要があります。



ちなみにもう少し言うと、 windows版のwiresharkは、WinpcapというPCAP (キャプチャしたパケットを解析して可視化するライブラリ) を用いているため、モニターモードを使える無線LANアダプターを使っても、IEEE802.11フレームをキャプチャすることが出来ません。しかし一応、windowsでもIEEE802.11フレームを取得する手段があります。”AirPcap” というモニターモードでパケットキャプチャできるソフトウェア&無線LANアダプターが販売されています。ところがとてもお高いです。


Linux版のwiresharkは、libpcapを使ってパケットキャプチャするため、モニターモードで無線LANアダプターを使えば、IEEE802.11をキャプチャ出来ます。それに無線アダプターも比較的安価で手に入ります。したがって、Linuxを使うことをお勧めします。




モニターモードで動かせる無線LANアダプターを紹介しているサイトがありますので、そちらを載せておきます。



Linuxの場合だと、ノートPC内蔵のwlanアダプター(厳密にはチップセット)が対応していれば、ドライバー次第ではモニタモードにすることが出来る場合があります。とはいえど対応していないことが多く、デフォルトのドライバーを適切なドライバーに入れ替えて、モニターモードを起動させる方法もあるようです。しかし、ネット上で適切なドライバを探すのは困難かと思われます。

wlanアダプターに内蔵されているチップセット (ハードウェア) とドライバ(ソフトウェア) の両者がモニターモードに対応して、初めてモニターモードで起動させることが出来ます。


前置きが長くなってしまいましたが、Linux版のwiresharkでIEEE802.11フレームをキャプチャしてみます。


IEEE802.11 RadiotapヘッダーとMACフレームをパケットキャプチャしてみる!



AirPcapは高いので、Kali Linux で行っていきますが、Ubuntuなどのその他Linuxでも同様の手順です。



ちなみに、Virtual Box上のLinu環境で行う場合は、USB2.0以上はデフォルトでは認識しません。無線LANアダプターをVirtual Box上のLinuxで認識させるために、まずVirtual Box上のUSB設定を行なわなければいけないので、ご注意下さい。

https://wireless-network.net/virtualbox-ubuntu-usb/





準備が整ったら、wiresharkを起動させます。左上の方に以下の画像のように、”キャプチャオプション” があるのでクリックします。



キャプチャオプションの画面サイズは、おそらく小さいかと思います。なので、横に引き伸ばすと、以下のようになります。その中に、モニターモードと書かれた項目のところで、モニターモードを使用する無線LANインタフェースにレ点を打ちます。そして、キャプチャする無線LANインタフェース (私の場合はwlan0) を選択して、右下の “開始” をクリックします。



以下のようにIEEE802.11フレームのキャプチャが成功しているのが、分かります。ちなみにAPは、102ms (約0.1秒) ごとに一回のペースでビーコンフレームを送信するので、すごい勢いでキャプチャされていきます。



ちなみにモニターモードでwiresharkを動かすと、無線LANアダプターはモニタモードのままなので、AP (無線LANルータ) につなげれません。


モニターモードは、有線のプロミスキャスモードとは違って、自分がそのネットワークに所属せずに、自分宛以外のパケットもキャプチャしてしまうメリットがあります。一方でそのままモニターモードのまま放置しておくと、CPUの負荷と、いざネットワークにつなげようとしたときに、つながらないので、しっかりと通常モード (Managed) に戻しましょう。




やり方はPC再起動させるか、以下のコマンドをたたきます。

ifconfig wlan0 down
iwconfig wlan0 mode managed
ifconfig wlan0 up



wlan0のところは、お使いの環境のインターフェース名を入れます。Managedが私たちが普通に使う通常モードのことです。



今回はここまでです。

最後まで読んでいただきありがとうございました。

スポンサーリンク

-検証

Copyright© 無線&ネットワーク屋 , 2019 All Rights Reserved Powered by STINGER.