ARPキャッシュポイズニング

以前「ARP通信」について学習しましたので、知識が定着している間に、ARPキャッシュポイズニングについて学習しました。



ARPキャッシュポイズニングとは

正規のクライアント間で、各クライアントに偽装したARPパケットを送り続け、各クライアントのARPキャッシュを書き換え、通信を傍受したり通信不可にしたりする。


通信イメージ図


機器情報

◇機器

■ 攻撃者
Ubuntu:Ver 20.04(仮想環境)
※Python:Ver 3.10.12 導入

■ Server_A、Client_B
CentOS:Ver 7.9(仮想環境)
※Python:Ver 3.10.2 導入


検証結果

<ARPテーブルの変更>

◇ARPテーブルを確認

■ Server_A

■ Client_B


◇IPフォワーディングが有効か確認

■ 攻撃者
・フォワーディング設定を確認
cat /proc/sys/net/ipv4/ip_forward
※1:有効

・0の場合は以下を実行
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward


◇プライベートIPアドレスをスクレイピング

■ 攻撃者


◇MACアドレスを確認

■ 攻撃者
ip address

※プライベートIPアドレスをスクレイピングした際に、攻撃者のIPアドレスとMACアドレスが攻撃対象側のARPテーブルに登録されているので、攻撃者のIPアドレスとMACアドレスを変更する必要がある。


◇ARP応答パケットをブロードキャスト通信

■ 攻撃者
・Source MACaddress  :攻撃者MACアドレス
・Spoof Source IPaddress1:Server_AのIPアドレス
・Spoof Source IPaddress2:Client_BのIPアドレス


◇各被害者のARPテーブルを確認

■ Server_A

■ Client_B


<通信傍受の検証>

◇パケットキャプチャを実行

■ 攻撃者
tcpdump -A -i 【インターフェース名】 -p -w /tmp/arp_`date "+%Y%m%d-%H%M%S"`.cap
※【インターフェース名】は、実際に通信するインターフェース名を記載


◇平文送信

■ Client_B
・送信内容

・平文送信

■ Server_A
・平文受信 & 受信内容を確認


◇収集したパケットキャプチャを分析

■ 攻撃者
・平文通信のため通信内容が閲覧できる


◇ARPテーブルを確認

■ 攻撃者
・ARP応答パケットのブロードキャスト通信を停止する。

■ Server_A

■ Client_B


概要欄

◇ARP通信
https://note.com/tango9512357/n/n7e1298577fac

◇プライベートIPaddress 検索
https://note.com/tango9512357/n/n57147de9edd6