■
Wiresharkを用いたWi-fiスキャン
目的
パケットキャプチャツールであるWiresharkを用いて、無線LANを流れるパケットをキャプチャします。
準備
まずは下記のものを用意してください
- 無線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