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が暗号化されている、されていないにかかわらず、利用する際は、特に気をつけたほうが良さそうです。
あとこの方法は悪用厳禁です。試す場合はくれぐれも、自分の環境で