simotin13's message

simotin13といいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

WiFiのパケットをWireSharkでキャプチャする方法

スマホの通信(WiFi)をキャプチャする必要があり、少しネットを調べてみたのですが、あまりいい方法が見つからなかったので思いついた方法を試してみました。

試してみた結果、いい感じにスマホが送受信するパケットをWireSharkでキャプチャすることができたので記事として挙げておきたいと思います。

注意

紹介する方法はWindows7でしかできない方法になります。他のOSについては別途試したときに記事を書きたいと思います。

作戦

パソコンをWiFiのAPにする

WiFiのパケットをキャプチャする場合、WiFiルータのところでキャプチャする必要がありますが、ルーターの通信をキャプチャするとなるとできなくはないのですが、環境構築とかが少し面倒です。

他に手軽にできる方法が無いか考えて、パソコンをアクセスポイントにして流れてくるパケットをキャプチャするという方法を思いつきました。

今回試した環境は、Windows7のPCです。インターネットには有線LAN経由で接続した状態にします。

準備するもの

パソコンをWiFiのAPにする場合、親機になれるUSBの無線LANドングルがあれば実現可能です。

USB無線LANドングルは1つの独立したネットワークアダプタとして認識されるのでWireSharkでキャプチャするときも便利です。

いろいろ調べてみると、バッファローのWLI-UC-GNM2SであればWindows7であればWiFiの親機のになれるとのことで購入して試してみました。

注意点

(冒頭の注意にも書きましたが)便利そうなこのUSBドングルですが、親機の機能はWindows7に限られるそうですので注意が必要です。
私の手元にはWindows7のPCがあったので試せましたがWindows8~10やMac環境の方はこのやり方は試せないので注意が必要です。

手順

USBドングルを手元に用意できたら、まずは各種ドライバ・ユーティリティーソフトをインストールします。
ちなみに、インストール後にソフトウェアルーターを起動することができるのですが、WireSharkがアダプタを認識できないようなので再起動した方がよさそうです。

インストール後ソフトウェアルーターを起動するとタスクトレイにアイコンが表示されます。

右クリックして"オプション"からSSIDやパスワードの設定が可能です。

f:id:simotin13:20170816001331p:plain


後はソフトウェアルーターを起動し、スマホから接続するだけです。結構簡単につながりました。
このソフトウェアルータにはDHCPの機能も提供されているようで、私が試した環境ではスマホ側のIPは、192.168.123.26になりました。

f:id:simotin13:20170816002641p:plain

無事接続できるとソフトウェアルータの画面で接続台数が1になっている事が確認できます。

f:id:simotin13:20170816002940p:plain


さて、APとして機能すれば後はWireSharkでパケットを覗いてみるだけです。

WireSharkを起動すると、私の環境ではワイヤレスネットワーク接続2というインターフェースが追加されていました。

f:id:simotin13:20170816003028p:plain


早速立ち上げて、スマホを操作してみるといい感じにパケットがキャプチャできています!

f:id:simotin13:20170816002900p:plain

大成功!

ということでスマホタブレット等のWiFi通信機器のパケットをキャプチャしたい方の参考になれば幸いです。

その他のやり方は?

今回試したやり方だとPCがWindows7に限定されます。上記のやり方を試した後で少し考えたのですが、WiFiのアダプターがついているPCであればソフトウェアルーターさえ用意できればUSBドングルを購入しなくても同じようにキャプチャできるような気がします。

少し調べてみるとsoftAPというソフトウェアルータ機能もあるようですので今度はそのやり方を試してみたいと思います。

また、WiFiルーターのパケットをキャプチャするという方法も可能です。

WiFiとWANをつなぐレイヤーでキャプチャすればスマホのパケットも見ることができそうです。

この場合、WiFiルータとONUミラーリング機能を持ったスイッチが必要になります。

高機能なスイッチは高いイメージがありますが、NETGEARの製品で手頃に買えるタイプの商品がおすすめです。私も5ポートのタイプの商品を愛用しています。


組込開発をしていると、試験フェーズで、ネットワークの機能を試験する際に、意図した通信が出来ているかパケットレベルで見たい時がありますが、こういったミラーリング機能があるスイッチがあると試験が捗りますし、そもそもないと試験ができないような場合もあります。

追記

WireSharkネタですが、pcapファイルをC言語で出力するコードを書いてみました。
mcommit.hatenadiary.com