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