続AutoItでWinPcap

AutoItでWinPcapが扱えることになって、ネットワーク関連で出来ることが一気に広がったのは言うまでも無い。初めに思いつくのは、ネットワークパケットのリアルタイム監視と、それに対する自動アクションだろう。しかし昨日も書いたとおり、個人的にはRaw Packetが扱えるようになったのが大変興味深いと感じている。
早速本日ネットワークのRaw Packetが投げられることを確認したところで、さて、コレによってどんな面白いことが出来るのだろう、と考えていた。ぼんやりと、同一ネットワーク上の端末の名前解決に介入して「YahooにアクセスしようとしたらなぜかGoogleにつながった」みたいなことが出来れば楽しいかもしれないなどと思ったのだが、コレを実現するにはどうやら…

  1. 対象端末が名前解決を試みた後、DNSの返信より前に、返信を行なう必要がある。
  2. 返信には2byteの正しいID情報が必要。

はあ…、コレは、DNS要求がブロードキャストされるか、こっちがミラーリングポートにでもつながってない限り無理だ。一旦DNSからIPを取得したのなら(そのIPは(大抵)同一ネットワークに無いのだから)、通信は直にディフォルトゲートウェイに対して行なわれる。仮に同一ネットワーク内だとすれば、偽装ARP応答で何とかなるのかもしれないが、外部への通信ではIPやMACを偽装したパケットによって割り込むことは難しい。ディフォルトゲートウェイ/DNSサーバのMACを偽装ARP応答で書き換えて…なんてしようものなら、一瞬でネットワークを殺すことになってしまう(まあそれでパケットを右から左へ受け流せばいいのかもしれないが、ちょっとしたお遊びとしてはやりすぎ感があるし、そもそもそんなこと、本当にできるのだろうか…?)。
まあ、偽装ARP応答が行なえることを確認するのが、面白くはないかもしれないが、最初にやるべきコトなのかもしれない。大体、実現方法がぼんやりとしか判らない。本当のARP要求に対して、本人の返事より前にお返事しなきゃいけないのか?それとも、本人の直後にしなきゃいけないのか?どんなタイミングでもいいのか? …最後のだと楽なんだがなあ。