MOFU MOFU

技術的なことから、趣味の分野までいろいろメモ程度に書いていきます

Wiresharkを使って、Wifiのパケットをキャプチャ

最近、某サイトでのログインがセキュアじゃないと、友人と話していたので、実際スニファってどんな環境でできるのかなということになり、独立したネットワーク構築してやってみればいいんじゃねって軽く言ったんですが、実際どうやるのか考えてもいなかったので、ちょっと試してみました。

これを、公衆無線LANとか、実際の環境でやったらダメですよ!!

で、どういう環境で、実際スニファリングできるかというと、
バカハブにつながっている端末上、同じWifiに乗っかている端末上です。他にもルーターのパケット直接読むとかいろいろありそうですが。

実際にやってみたい(もちろん、自分のプライベート環境で)と思ったのでバカハブ売ってないのかなと思ったのですが、今売られているのが、ほとんどスイッチングハブといって、パケットをバッファリングし、ターゲットに直接送信しているもの。バカハブはブロードキャストしているだけだからスニファリングできるんですね。

じゃあ、Wifiでやればいいじゃん、ということで、自宅のWifiルーターをつかって、スマホの通信を見てみました。

スマホ(キャプチャされる奴) -> ルーター <- PC(キャプチャするやつ)

こんなかんじです。
まず、Wiresharkを起動し、menuのCapture->Optionsを開きます。

次に、Wi-Fi:en0をダブルクリックし、
capture packets in promiscuous mode
capture packets in monitor mode
の両方にチェックを入れて、メニューを閉じます。

次に、パケットを複合するための設定をします。
Edit->Preferencesを開き、
Protocols->IEEE 802.11をクリック、
Enable decryptionにチェックを入れます。

OKでPreferenceを閉じます。

View->Wireless Toolbarにチェックを入れると、
ツールバーが追加されるので、Decryption Keysをクリック。

Newをクリック
TypeはWPA-PWDを選択し、じぶんのSSIDとWPAキーを入力し
OK

あとは、キャプチャするだけです。

WPAの場合、クライアントごとにキーが生成されるので、最初の通信を読み取る必要があります。
そのため、この場合はスマホWi-FIをキャプチャ開始してからオンにします。

どんどんパケットが流れるので、あとはip.addrとかでフィルターをかけて見るだけです。
スマホのブラウザから、POSTしてみたところ、

平文の通信は、全て見えます!!
こわいこわい

もちろん、SSLで暗号化されている場合は見れませんが。

公衆無線LANが暗号化されている、されていないにかかわらず、利用する際は、特に気をつけたほうが良さそうです。

あとこの方法は悪用厳禁です。試す場合はくれぐれも、自分の環境で