WinPcapをPythonから使えるようにしてくれる pcapy ですが、公式HP上で提供されているのはPython2.5 + WinPcap-4.0.xでコンパイルされたモジュール(exeインストーラ)です。
自分の環境はPython2.5ですが、WinPcapの方が先日インストールしたばかりのWinPcap-4.1.2でした。
メジャーバージョンは同じですが、4.0と4.1でどれほどバイナリ互換性があるか、ちゃんと動いてくれるか・・・不安でした。幸いにもpcapyのソースコードが公開されているため、セルフコンパイルしてみました。
ちょうど先日、 Python/pydbg, pydasmをPython2.5 on WindowsXPにインストール の記事で自信を持ってVC++2008 Express Editionで"setup.py build_ext"できるようになりましたので、WinPcapのヘッダーとライブラリの置き場所さえ間違えなければさくさく作業が進みます。
ちなみに、WinPcapを使う以上は、Windowsならではの「127.0.0.1をキャプチャできない」制限があります。
PCが1台しか無い環境で、PC上に立ち上げたサービスのやりとりをキャプチャするには、"Microsoft Loopback Adapter"を忘れずにインストールし、wiresharkなどでちゃんとloopbackデバイスをキャプチャできるよう事前に調整しておきましょう。
ネタ晴らしすると"Gray Hat Python"のChapter9, Sulleyの実験でpcapyとかloopbackのインストールに迫られた次第。無事WarFTPD 1.65でUSER/PASSのfuzzing→BufferOverFlowのログを拝むことが出来ました!
コメント