読者です 読者をやめる 読者になる 読者になる

ottatiのブログ

無職学生がネットにクソアプリをまき散らしていく様子

【Windows】秒速でパケットを盗聴する条件【ARP】

あああ

f:id:ottati:20150103125718g:plain     🍣

f:id:ottati:20131207205228p:plain

秒速でパケットは盗聴できる

以下の2つの手順で同一LAN内にある誰かのPCがどこと何を通信しているか(たとえばサイトURLとか)を知ることができます。丸見えになります。

  • ARPスプーフィングする
  • 自分のPCが通信するパケットを見る

どっちもメチャメチャ簡単なので秒速でできます。今どきポチポチクリックしていればできてしまいます。つまり小学生でも盗聴ができてしまうのです。ノートPCでもスマホでもタブレットでも盗聴されちゃいます。

ARPスプーフィングする

早速やっていきましょう。ためにならない解説は飛ばしてやり方を見てください。

ARPスプーフィングについて

しょぼい解説です。要らない方は飛ばしてやり方を見てください。

普段の通信

ターゲットを「弟」としましょう。弟はいつもこんな感じでニコニコ動画とかLOLとかやってるとします。灰色の矢印はパケットです。

f:id:ottati:20131207191205p:plain

なのでゲートウェイと「弟」の間に「俺」が割り込んじゃえばパケットを幾らでも見ることができます。パケットを「中継」するんですね。

f:id:ottati:20131207191213p:plain

ARPについて

ARPはMACアドレスとIPアドレスの対応表です。MACアドレスはそれぞれの機器に固有についている恒久的な名前です。

f:id:ottati:20131207191956p:plain

IPアドレスは基本的にしょっちゅう変わりますが、MACアドレスはハードウェアの製造時に名付けられ、変わることがありません(大抵)。それぞれのPCはARPを持っており、それを使ってIPアドレスからMACアドレスを探して通信します。

試しにコマンドプロンプト開いて「arp -a」と打ってみましょう。

ARPスプーフィングについて

ARPスプーフィング(ARP spoofing, ARP poisoning)はターゲット(今回は「弟のPC」)のARPを不正なものにすることです。

いつもは「弟のPC」の「ゲートウェイ」のIPに指定されたMACアドレスは当然「ゲートウェイ」のMACアドレスです。

しかしそれを「俺のPC」に差し替えることで「弟のPC」は「俺のPC」を「ゲートウェイ」だと思ってしまいます。

f:id:ottati:20131207193238p:plain

つまり本来「ゲートウェイ」に流れていくべきパケットが「俺のPC」に流れてくるようになるのです。

f:id:ottati:20131207191213p:plain

ARPスプーフィングのやり方

nighthawkをダウンロードしましょう。鷹です。

f:id:ottati:20131207193949p:plain

zipを解凍したらすぐ使えます。起動しましょう。

f:id:ottati:20131207194108p:plain

まず自分のPCが通信に使っているインターフェイスを選択し、Enable advanced modeをクリックしましょう。

f:id:ottati:20131207195124p:plain

次にScan networkで、LAN内につながっている機器を調べましょう。

f:id:ottati:20131207195112p:plain

少し経つとでてきました。

f:id:ottati:20131207195908p:plain

ゲートウェイの選択とターゲットの選択をしましょう。上の欄がターゲットを選択する場所で、下の欄がゲートウェイを選択する場所です。クリックして以下のような感じにしましょう。

f:id:ottati:20131207200746p:plain

さあ横にある「Start ARP spoofing」を押しましょう。

f:id:ottati:20131207200800p:plain

以下のようになったらspoofingなうってことです。

f:id:ottati:20131207200818p:plain

nighthawkは勝手にパケットの転送もやってくれます。これでとりあえず以下の図の状態になりました。

f:id:ottati:20131207191213p:plain

ARPスプーフィング完了!

「俺のPC」が通信するパケットを見る

あとはパケットを見るだけです。

今回はパケットを見るツールとしてWiresharkを使います。ド定番です。

Wiresharkをダウンロードして、インストールしましょう。

インストールしたら起動しましょう。

起動時の画面はこんな感じなので、通信に使っているインターフェイスを選択してStartをクリックしましょう。

f:id:ottati:20131207201444p:plain

すると「俺のPC」を流れるパケットが大量に出てきます。盗聴なうです。ありがとうございました。

以下は例として、表示するパケットを弟が送信したものだけに絞って見る方法です。Wiresharkの使い方はググればいくらでもできるので、好きなようにフィルタリングしましょう。

先ほどのように何も設定せずにスタートすると、人によってはパケットがありすぎてWiresharkがフリーズしてしまうかもしれません。もしそうなればタスクマネージャからプロセスを強制終了しましょう。

このままだと大量にパケットをキャプチャしてしまうので、フィルタリングしてキャプチャする量を減らしましょう。

Startを押す前にCapture Optionsを起動します。

f:id:ottati:20131207202048p:plain

フィルタを掛けましょう。Capture Filter: のところに「tcp port http && ip src host 192.168.0.5」と記入しました。「tcp port http」はポート80(80とか。httpに使うポート番号)を流れるパケットにしぼり、「ip src host 192.168.0.5」はiPhone(192.168.0.5)から送られたパケットに絞ることを意味します。

これでキャプチャするパケットの量を減らすことができました。Startをクリックしてキャプチャリングを始めましょう。

f:id:ottati:20131207202913p:plain

パケット表示時画面です。さっきはキャプチャするときに使うフィルタを設定しましたが、ここではキャプチャしたパケットを表示するときに使うフィルタを設定することができます。下ではhttp.requestとしています。

f:id:ottati:20131207203134p:plain

最後にURIを表示するヒントです。ProtocolがHTTPのパケットをクリックし、2番めの欄のHypertext Transfer Protocolを開、GETを開き、Full request URI....の上で右クリックしてAdd columnをクリックしましょう。

f:id:ottati:20131207203456p:plain

パケット一覧の情報にFull request URIというものが追加されたと思います。

おわりに

シンプルさを追求して書いてきましたが、このように簡単にパケットが盗聴できてしまいます。そのことを知っているのと知らないのとでは大きく違うと思います。

通常ARPは動的に書き換えられているので静的にエントリーを設定するなどして適切な対策を取りましょう。盗聴ダメ絶対。