30代未経験ネットワークエンジニアのshin@セキュリティエンジニアになるため、勉強中です。
今回は、Kali Linuxを使用して、ARPスプーフィングをやってみました。
Kali Linuxのインストール方法は以下サイトを参考にしてください。
https://doruby.jp/users/r357_on_rails/entries/Kali-Linux-2017-3
ARPスプーフィングとは
Wiki先生によると、「ARPプロトコルの応答を偽装することにより、LAN上で通信機器のなりすましを行なう技法である。」とのことです。
※ちなみにARPとは、「Address Resolution Protocol」のことで、IPアドレスからMACアドレスを解決するためのプロトコルです。
簡単に言うと、オレオレ詐欺みたいにターゲットに対して、本人と偽わり、本人になりすますみたいな感じですかね。
そのような攻撃を中間者攻撃(man-in-the-middle attack)と言います。
PCとPCの間に入って通信を盗む攻撃なので、そう言われています。
それでは実際にやってみましょう。
※公共の場や、会社では迷惑がかかるので自宅の環境で行ってください!
環境
・ターゲットPC(Windows)
・攻撃用PC(Kali Linux)
・ルータ
構成
今回の構成は次のような構成になります。
攻撃者PC IPアドレス:192.168.89.169
MACアドレス:00:0c:29:b4:30:60
ターゲットPC IPアドレス:192.168.89.157
ルータ IPアドレス:192.168.89.2
MACアドレス:00:50:56:e0:94:64
今回の目的
今回の目的は、ターゲットPCとルータ間の通信をARPスプーフィングによって、通信を盗み見ます。
ARPスプーフィングの手順
攻撃者用PC(Kali Linux)から以下の操作を行います。
- アプリケーション>「09-Sniffing & Spoofing」>「Ettercap」
- 「Sniff」>「Unified sniffing」>Network interfaceを選択する>OK
- 「Hosts」>「Scan for hosts」を選択
- 「Hosts」>「Hosts list」を選択
- listの中から、ルータのIPアドレス(192.168.89.2)を選択>「Add to Taget 1」を選択
- 次にターゲットPCルータのIPアドレス(192.168.89.157)を選択>「Add to Taget 2」を選択
- 「Targets」>「Current targets」を選択し、5,6で選択したターゲットが表示されていることを確認します
- 「Mitm」>「ARP poisoning」を選択>「Sniff remote connections.」を選択>「OK」
- これでARPスプーフィングが始まります
詳細な手順は動画を確認してみてください。
ARPスプーフィングされるとどうなるのか
ARPスプーフィングされると、ターゲットPCのARPテーブルが書き換えられてしまいます。
今回の場合は、ターゲットPCのARPテーブルのにある、ルータ宛のMACアドレスが、攻撃者のMACアドレスに書き換わっています。
攻撃前と攻撃後のARPテーブルは以下のようになっています。
上のほうが、書き換わる前で、下が書き換わった後です。
ターゲットPCのARPテーブルが書き換わっているところと、ARPスプーフィングされた直後のパケットキャプチャを取得してみましので、そちらも動画で確認してみてください。
この攻撃の後、ターゲットPCの通信は攻撃者PCを経由するので、通信がすべて見えてしまいますね。
以上です。ありがとうございました。
ちなみに、ターゲットのPCには、アンチウイルスソフトが入っていたのですが、ARPスプーフィングは検知しませんでした。
最近流行っている、次世代型アンチウイルスソフト(EDR)とかなら検知できるのかな?
企業だと、Ciscoとかその他のスイッチで防止する機能があるみたいですが、個人だとスイッチなんて買わないので、ARPを静的に書くとかしかないんですかね。。
余談ですが、最近セキュリティの勉強のため、サイバーセキュリティテストという本で、サイバーセキュリティについて学習しています。
興味ある方は、見てみてください。それでは。
コメント