WiresharkでWifiでの通信を取れるか検証した話

某大学のWifiの学生認証が平文だったので、そのことを指摘する前に自室のWifiで平文通信をキャッチできるか検証してみました。公共の場所での許可のないキャプチャは違法となりますのでご注意を…

使用した機材

  • BUFFALO WI-U2-300DS
  • Kali Linux 2019.4 (VirtualBox)

手順

まずはKali Linuxを起動して、WI-U2-300DSを接続します。(VirtualBoxではUSBコントローラーが2.0以上でないと正しく動かないことがあった)
端末を起動して「iwconfig」を実行すると以下のような感じで子機が認識されているはずです。(wlan0は環境によっては異なるかもしれません。以降はwlan0と仮定します。)

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

次に稼働しているWifi関係のツールを止めます。

airmon-ng check kill

おそらくwpa_supplicantが停止させられます。
次に子機をモニターモードにします。iwconfigを使います。(間にifconfigでdownとupを挟まないとうまく行かない…?)

ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up

うまく行けば無言でプロンプトが帰ってくるので、そのまま作業を進めます。
次に

airodump-ng wlan0

を実行するとSSIDの一覧が出ますので、キャプチャしたいSSIDをみつけ、チャンネル(CH)をメモします。

次にWireSharkを起動します。
先に「表示」=>「無線ツールバー」より無線ツールバーを出しておきます。
今度はWPAの鍵を設定します。
「編集」=>「設定」=>「Protocols」=>「IEEE 802.11」=>「Decryption keys」より
鍵を入力します。
WPA2-PSKの場合はhttps://www.wireshark.org/tools/wpa-psk.htmlでSSIDとパスワードを入れ、生成されたキーを「+」=>「WPA-PSK」と選んで入力します。
OKを押して閉じていったあと、「キャプチャー」=>「オプション」より、wlan0を選択して、キャプチャを開始します。
無線ツールバーで先程メモしたチャンネルを接続後、別端末で該当Wifiにつなぎます。(最初のハンドシェイクが傍受できないと解読できないため、つないでいる場合は一旦切って再接続してください。)

うまく解読できれば、色付きのログが流れてくるはずなので、example.comでも接続するとHTTP通信内容が見れます。

感想

公共WifiなどのHTTP通信もダダ漏れなんでしょうね…恐ろしい。
あとセキュリティに詳しくなりたい。