私は地元のWifi LanでEttercapを少し実験しています。ルーター(R)、Ettercapを実行しているPC(P)、およびスマートフォン(S)を持っています。特にARPポイズンMIM攻撃をテストしていますが、うまくいくようですが、いくつか疑問があります。
私は、RにPがS macアドレスを持っていると信じ込ませ、SがPがR macアドレスを持っていると信じ込ませることができました。したがって、ルーターはスマートフォンのIPをPCのMACアドレスにマッピングし、スマートフォンはルーターのIPをPCのMACアドレスにマッピングします。
これで、スマートフォンがパケットをルーターに送信するときにPCのMACアドレスを使用し、ルーターがパケットをスマートフォンに送信するときにPCのMACアドレスを使用します。ルーターがスマートフォン向けのパケットを送信するとします。スマートフォンはWIFIを使用しているのと同じようにパケットを取得するため、誰でもすべてを見ることができますが、Macアドレスが一致しないためドロップされますか?また、PCはルーターからSmartphoneパケットを取得できますが、MacアドレスがPCのMacアドレスと一致するため、レイヤー2はパケットをドロップしませんが、IPが一致しないため、カーネルはそれをドロップしませんか?
この数日間、私はこれについて多くのことを調査しました:デフォルトでは、Linuxは、NICパケットを取得するMACアドレスとは異なるMACアドレスを持つパケットをドロップします。無差別モードでは、この動作を変更する必要があります。 ARPスプーフィング攻撃が成功した場合、真ん中の男はRとSからパケットを受信し(SとRの定義については私の質問を参照)、P MACアドレス(これがARPスプーフィングのポイントです)を持ちますが、 IP。Wiresharkなどのさまざまなツールを使用してこのパケットを読み取ることができます。私はlibcap(Cプログラムでそのライブラリを使用しました)を実験しました。これは、Ettercapで使用されていると思われます。これにより、これらのパケットを取得し、変更して、再転送:EttercapはデフォルトではIP転送を有効にしないことに注意してください:
echo 1 > /proc/sys/net/ipv4/ip_forward
それ以外の場合、カーネル自体がパケットを転送しますが、Ettercapはパケットの変更とパケットのドロップも提供します。これは、カーネルがそれらのパケットを処理しない場合にのみ可能です。