ARP スプーフィングの実験

目次

*ARP スプーフィングとは
*dsniff
*検証環境
*検証
    *準備
    *スプーフィング
*まとめ・疑問
*参考にしたページ

ARP スプーフィングとは

wikipediaによると、

ARPプロトコルの応答を偽装することにより、LAN上で通信機器のなりすましを行なう技法である。

ということです。

具体的には、ゲートウェイ(ルータなど)になりすます事によって、ターゲットの通信を盗聴することが出来るようになります。

dsniff

今回検証にあたって、dsniff と呼ばれるツール群の arpspoof というコマンドを使用しました。

dsniff というのはネットワークの監査に使われるツール群らしく、使いようによっては通信の盗聴などにも使えるらしいです。

検証環境

f:id:ryouta768:20140205013201p:plain

検証

ターゲットが通信する内容を盗聴してみたいと思います。

準備

攻撃者がゲートウェイになりすました際に、パケットを転送する必要があります。

パケットを転送するには ubuntu では ip_forward を有効にしなければなりません。今回は一時的に有効にします。一時的な設定なので再起動後は ip_forward は無効になっています。

sysctl -w net.ipv4.ip_forward=1

パケットの盗聴を確認するために攻撃者 PC の eth0 で送受信するパケットを wireshark でキャプチャしました。

スプーフィング

dsniff に入っている、 arpspoof というコマンドを使用して ARP スプーフィングを開始します。

#arpspoof -i [インターフェース] -t [ターゲットホストの IP アドレス] [ゲートウェイの IP アドレス]
arpspoof -i eth0 -t 192.168.200.10 192.168.200.1

ここで、ターゲットで pingtelnet を実行してみます。

f:id:ryouta768:20140205013245j:plain

f:id:ryouta768:20140205013251j:plain

しっかり通信出来ています。

ここで、攻撃者の方でキャプチャしていたファイルを見てみます。

f:id:ryouta768:20140205013824p:plain

f:id:ryouta768:20140205013834p:plain

ターゲットで行った pingtelnet の通信が攻撃者から見えています。これは、ターゲットの arp テーブルに偽のゲートウェイMAC アドレス(ここでは、攻撃者の PC の MAC アドレス)を上書きしたからです。

f:id:ryouta768:20140205013856p:plain

f:id:ryouta768:20140205013907p:plain

まとめ・疑問

ARP スプーフィング簡単に出来るのですね。もちろん今回は、ローカルな環境でやったので簡単だったのかもしれませんが。というか、ローカル以外の環境では悪用禁止であります。もちろんのことですが。今回はあくまで実験ということで。

また、疑問というか次回へのテーマなのですが。

* TCP Retransmission って何?
* ARP テーブルの上書きって可能なの?

この当たりを、次回調査してみようと思います。

参考にしたページ

Ubuntu(Linux)でIP転送を有効にする方法

dsniff