今回はWiresharkとリピータハブを使ってスマートフォンのWi-Fi通信を盗聴する方法を紹介する。
これを行えばWi-Fiを使っている人がどこと通信しているのかや非暗号化通信(HTTPやTELNETで送信するID、パスワード等も含む)であれば通信の内容を盗聴する事ができる。
目次
最終的な目標
Wi-Fiに接続しているスマートフォンの通信をキャプチャーして非暗号化状態のHTTP POSTリクエストからIDとパスワードをWiresharkを使って盗聴する。
非暗号化通信がいかに危険か目の当たりにしろ
某有名認証局「スパムサイトでも暗号化通信するべきだ。」
注意事項
わかっていると思うが許可されたネットワーク以外で実行するとプライバシーの侵害や住居侵入罪等の刑法民法等で裁かれる対象となる可能性がある。
環境構築
盗聴を行うには必要な道具の準備や環境・条件など様々な要件を満たす必要がある
必要な道具
盗聴するにはいくつか物理的な道具が必要となる。
当たり前に持っているものを除いては6000円〜10000円で盗聴可能だ。
盗聴するだけのフォームをここに用意した。192.168.1.1に対してPOSTするだけだ。
- Wireshark(Wiresharkのインストール方法)
- リピータハブ FXG-05RPT
- LANケーブル
- Wi-Fiルーター
ネットワーク環境
今回の実験で一番大事で理解しておくべきところだ。完全に理解するまで先に進むな
一般的な家庭Wi-Fiを想定して構築する。
スマートフォンはWi-Fiルーターに接続し、Wi-Fiルーターはモデム(ONU)に接続した後インターネットにつながるのが一般的なモデルだ。
上記の環境に少し手を加えることで簡単に盗聴が可能となる。
Wi-Fiルーターとモデム(ONU)の間にリピータハブを噛ませることでリピータハブがスマホユーザーのパケットをコピーして、本来ならモデムにだけ送信されるパケットを盗聴する端末にも送信する。
これによりパケット通信を盗聴することが可能となる。
配線をする
上記のネットワーク環境を参考にWi-Fiルーターとモデムの間にリピータハブを刺そう。
FXG-05RPTの場合5番にWi-Fiから伸ばしたケーブルを接続。
1番をルーターに接続し2番を盗聴を行うPCに接続するんだ。
盗聴をするPCとWi-Fiに接続したスマホから普通にインターネットできる点を確認してくれ。
もしインターネットに接続できない場合はローカルIPアドレスの割り当てに異常が起きている可能性が高い。HDCPに対して再度割り当てを要求するのが良い。Windowsはアダプター(インターフェイス)を一度無効にして再度有効にすれば再取得する。
スマホに静的なIPアドレスを割り当てる。
盗聴する際は見やすいようにWiresharkにフィルターするため、盗聴先のローカルIPアドレスを静的(固定)に指定する。
スマホからWi-Fiに接続してWi-Fi設定画面から静的なIPアドレスを割り当てるのだ。
86Mbpsしか出ない2.4Ghzを使ってるのは内緒だ。
Wiresharkにフィルターをかける。
まだインストールしてない奴はここからインストールしろ。
スマホのIPアドレスを192.168.1.7で固定した。このIPアドレスとhttpリクエストだけを表示するようにフィルターを描ける。
ip.addr == 192.168.1.7 && http
上記をコピペしてスマホのIPアドレスに書き換えた後にWiresharkにはりつけろ
盗聴をする
さぁいよいよだ。
スマホからここにアクセスを行い盗聴専用フォームの送信をクリックするんだ。
パスワードはブラウザでは隠れているが、WiresharkでIDとパスワードを確認することができる。
確認ができたら成功だ。おめでとう。
最後に
これで君は非暗号化通信がいかに危険で安易に盗聴することが可能だと理解できたはずだ。
この盗聴は簡単にはバレるようなものではない。スマホの画面で色々操作すればわかるが警告なんて一つも出ないし、普通の人間じゃまず無理だ。
また、数年前から常時暗号化を推奨する動きがあるがこれはHTTPリクエストのHTTPヘッダを見ればどこのサイトにアクセスしているかが容易にわかってしまう。
下記の画像を見てみればわかるはずだ。
とりあえず今ブログをやってる人やサービスを動かしている人は常時暗号化されていなければ今すぐ常時暗号化をするべきだろう。
盗聴専用フォームについて
盗聴専用のフォームここだ。
送信ボタンを押すとHTTP POSTでフォームの内容を送信することができる。
ブラウザではただ画面が切り替わるだけだが、実際にはHTTP POSTリクエストが発生している。
もし192.168.1.1がHTTPリクエストを受け付けてくれない場合はその下のフォームを使ってくれ。
example.comに対してPOSTリクエストを送るが、その場合WiresharkではIPアドレスてばなくMacアドレスが送受信者になってしまうことがある。
フィルターをhttpに書き換えて実行するとどこかに対象のリクエストが転がっているはずだ。
example.comに対して行なった場合このような結果になるため注意しよう。
httpでフィルターだ。
コメント
excellant idea, but only for http, not for https