euniclusARPポイズニング(ARPスプーフィング)を検証してみたいと思います。ARPポイズニングによって隣接ノードのルーティングを制御することができます。いうテクニックを試していると、物事の仕組みを知ることは大切なんだなぁと思います。ハッキングというものに興味がある人は試してみてはいかがでしょうか。内部的な環境での動作確認です。公共の場でやったらいろいろまずいので。実装ARPこのテクニックはarpプロトコルの動作を利用します。arpはipアドレスからmacアドレスを解決するためのプロトコルです。(厳密には利用できるアドレスはipアドレスとmacアドレスだけではないようですが)ipアドレスとmacアドレスをつかって通信するべき相手を特定しいろいろやり取りするわけですが、ipアドレスだけわかっていてmacアドレスがわからないという状態があります。「このipアドレスを持ってるマシンはmacアドレスを教えてください」というarpパケットを同一セグメント内のすべてのマシンに向けて送信します。「私のmacアドレスはxx:xx:xx:xx:xx:xxです」というパケットを送り返します。このパケットを受け取ったマシンAは、マシンBのipアドレスと送られてきたmacアドレスを紐づけるかたちでARPテーブルを更新します。arpテーブルの内容はarpコマンドで確認することができます。静的ARPポイズニングの原理192.168.11.1には34-3d-c4-5e-60-04というmacアドレスが紐づけられています。このマシンと通信するときはイーサネットフレームの送信先macアドレスにこの値を指定して送信します。以下の三つのマシンがあると想定します。33-33-33-33-33-33マシンAがマシンBと通信すとき、マシンAは自身のarpテーブルを見て、マシンBのipアドレスとそれに紐づくmacアドレスを指定してマシンBと通信を開始します。Arpポイズニングはこのipアドレスとmacアドレスの紐づきを強制的に書き換えるテクニックです。「192.168.1.6に紐づくmacアドレスは33-33-33-33-33-33(マシンCのmacアドレス)でございます」というパケットを送信するとマシンAのARPテーブルは送られてきたパケットの通りに書き換わります。するとマシンAはマシンBと通信する際すべてのパケットをマシンCに送信することになります。ここではマシンCのmacアドレスを指定しましたが、別に存在しないmacアドレスでもいいのです。このテクニックの本質は正当な相手との通信を不可能にさせることにあると思います。実装このテクニックを実現できるツールはいくつかあると思うのですが、自分でプログラムを組んでみたいと思います。ARPポイズニングと言っても単に対象マシンのARPテーブルを書き換えるだけなので数十行のソースで実現することができます。粗い作りですが、大体こんな感じになるかと思います。0;}このソースコードをコンパイルして下記のように実行すると対象のarpテーブルを書き換えることができます。ちなみにこのプログラムの動作する環境はlinuxです。socketを使用しているためroot権限が必要です。{対象マシンのipアドレス}このテクニックをうまいこと使うと通信を覗き見ることができるようです。それを以下の記事でやりました。