Scapyでpcap 内すべてのパケットのsource ,destination MAC アドレスを初期化する

pcap内のパケットの書きかえをPython, Scapyで行ったので記す。

今回はMACアドレスの初期化(具体的な値でもよい)を行っている。

応用すれば、IPの書き換えなどもすぐ行えるだろう。

使用用途

テスト用のパケットを流入する際に、MACアドレスIPアドレスが違うと流せない場合がある。環境に合わせてテストパケットをpcapから流せるようにすることが今回の目的となる。

例えば、TAG VLANがついているパケットはレイヤが2の箇所で環境依存してしまう。

VLANを合わせるか、UNTAGにする必要がある。

 

内容

Pythonでパパっと書いてみた。

scapyにはpcapの中身を読み取る関数と、packetをpcapに書き出す関数があるので、

パケットの読み取り→パケット操作(今回はMACアドレス編集)→編集後のパケットをパケットリストに追加→すべて終わったらpcapに書き出し。

と行った。

 

Githubソースコードをアップした。

(Pythonをほとんど書いたことがないため、汚いコードかも)

github.com