LoginSignup
19
22

More than 5 years have passed since last update.

MacでLAN内のパケットを盗聴する

Last updated at Posted at 2017-05-21

概要

同一LANに接続しているコンピュータのパケットは盗聴しほうだいとよく言われますが、実際に可能なのかどうか気になったので調べてみました。

盗聴の手法はIPAの試験にも出てくる ARPスプーフィング という奴で、ターゲットのコンピュータのARPキャッシュを強制的に自分のMACアドレスに書き換えて、ターゲット宛のパケットを全て自分のコンピュータを通すようにするという物です。
ARPキャッシュの強制書き換えには Gratuitous ARP (GARP) を使います。

盗聴イメージ.txt
デフォルトゲートウェイ
↓
ターゲットのコンピュータ

盗聴イメージ.txt
デフォルトゲートウェイ
↓
自分のコンピュータ (IP Forwarding)
↓
ターゲットのコンピュータ

今回は難しい知識が無くてもARPスプーフィングが出来る arpspoof というツールを使います。

注意

悪用、ダメ。ゼッタイ。
有線電気通信法 第九条

有線電気通信の秘密は、侵してはならない。

準備

実践

まず、下記コマンドで Mac の IP Forwarding 設定を有効にします。

sudo -S sysctl -w net.inet.ip.forwarding=1

次に、下記コマンドを打ってターゲットのパケットを自分のコンピュータを経由するようにします。
(コマンドを実行するとログが流れてターミナルを占有してしまうのでそれぞれ別ターミナルで実行する)

arpspoof -i en0 -t [ターゲットの IP アドレス] [ゲートウェイの IP アドレス]
arpspoof -i en0 -t [ゲートウェイの IP アドレス] [ターゲットの IP アドレス]

これでWireshark等のパケットキャプチャツールでパケットの流れを確認すると、ターゲットのパケットが自分のMacを経由していることが確認出来ると思います。

終わったらarpspoofを実行している画面で ctrl+c を押してから、下記コマンドで IP Forwarding の設定を無効にします。

sudo -S sysctl -w net.inet.ip.forwarding=0

まとめ

よく言われる通り、同一LAN上のパケットは特別な知識が無くてもツールだけで簡単に盗聴出来るということがわかりました。
しかし、HTTPS通信は盗聴されても暗号化されていて中身が読めないので、公共LAN等でインターネットに接続する際はHTTPS対応のサイトに限定すべきでは無いかと思いました。
(そもそも公共LAN自体セキュリティがアレなので使うべきでは無いのかもしれない)

今回はツールに頼りっきりで内部で何をやっているかはイマイチわからなかったので、いつかは自作出来るようにしたいです。

19
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
22