Wiresharkを用いたWi-fiスキャン

目的

パケットキャプチャツールであるWiresharkを用いて、無線LANを流れるパケットをキャプチャします。

準備

まずは下記のものを用意してください

  1. 無線LANに接続可能なLinuxマシン

インストール

Ubuntu

                        $ sudo apt-get install wireshark
                    

ArchLinux

                        $ sudo pacman -Sy wireshark
                    

設定

まずは、インターフェースの設定を行います。

無線LANカードには次のようなモードがあります。

  • マネージモード:普段最も使う、アクセスポイントへ接続するモード
  • アドホックモード:アクセスポイントを介さず端末同士で直接接続するモード 最近ではゲーム機の通信などに用いられる
  • マスターモード:テザリングなど、自分がアクセスポイントとなり、クライアントを接続させて通信するモード
  • モニターモード:今回使う、自分はデータの送信は行わず、ただ飛び交うパケットを受信し続けるモード

これらからわかるように普段は無線LANカードはマネージモードになっています。 このままでは、飛び交うパケットのキャプチャができないのでモニターモードに設定します。

iwconfigで確認してみましょう。

                    $ iwconfig
                

wlan0やlwp2s0などで表されるのが無線LANカードです。 Mode:のうしろにManagedと書いてある場合はマネージモードになっています。

設定

まずは、普段は無線LANカードは有効になっています。 設定を行うためにip linkを使ってdownにさせます。

wlp2s0はiwconfigで確認したデバイス名に各自置き換えてください。

                        # Ubuntuの場合
                        $ sudo iwconfig wlp2s0 down
                        # ArchLinuxの場合
                        $ sudo ip link set down wlp2s0
                    

この操作を行わないと、下記のように怒られます。

                        Error for wireless request "Set Mode" (8B06) :
                            SET failed on device wlp2s0 : Device or resource busy.
                    

ip linkでdownにさせたため、ifconfigで確認すると、wlp2s0(または任意のデバイス名)は見えなくなっています。

                        $ ifconfig
                    

さて、これで設定を行うことができるようになりました。

無線LANカードのモードをモニターモードに設定します。

                        $ sudo iwconfig wlp2s0 mode monitor
                    

これでモードがモニターモードに設定されました。 iwconfigで確認してみましょう。

                        $ iwconfig
                    

Mode:Monitorとなっていると思います。 Managedに戻す場合は、monitorの部分をmanagedに変えてください。

次にさきほど、ip linkでdownにしたインターフェースをupにします。 これによってifconfigでも確認できるようになり、インターフェースが使えるように。

                        # Ubuntuの場合
                        $ sudo iwconfig wlp2s0 up
                        # ArchLinuxの場合
                        $ sudo ip link set up wlp2s0
                        # 次にどちらの場合も
                        $ ifconfig
                    

これで設定は完了です。

もし、ビーコンパケットを読んでカレントチャンネルを得た場合は、チャンネルを変える必要が出てくるかもしれません。 チャンネルを変える場合は下記のように実行してください。

この場合はチャンネルを8に変えてください。

                        $ sudo iwconfig wlp2s0 channel 8
                    

キャプチャ

設定を完了させたので、いよいよキャプチャを行います。

wiresharkを起動してください。

                    $ sudo wireshark
                

ここからはいつもどおりのパケットキャプチャです。 wiresharkの説明を見ながらインターフェースをwlp2s0など無線LANカードに設定して、キャプチャを行ってください。

おわりに

いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。

2015/7/28

参考サイト