はじめに
Yo!Yo!おれはTCPラッパーだYo!注意書きとか仰々しく書いてたら全部消えたのでもう嫌だYo!いえぃ!!あぁあああい!!!
あ、今回はscapyのちょっとした使い方について…。
環境構築
Ubuntu 14.04.3
python3.4
pip 1.5.4
pip3 install scapy-python3
と記述すれば終わりです。
今回やりたいこと
任意のパケットを生成して送信する。これが出来るようになればフォーマットなど考えずにネットワークの基本的な検証がpingに頼らず出来たりする。
Macアドレステーブル汚して遊ぶのscapyだと50行だし良さある。
— Motouchi (@SMotouchi_net) June 20, 2016
こんなことが出来るので悪用はダメ..。
生成術
>>> Ether()/IP()/TCP()
<Ether type=IPv4 |<IP frag=0 proto=tcp |<TCP |>>>
で基本的には生成できる。
Ether():L2
IP():L3
TCP():L4
の情報を記述していけば基本的にはよい
他にもsend() sendp() sendpfast()やsr()系で送信できたりする。
個人的にはsend()を使うことが多い…。
無敵なコマンドlsについて
どの値をぶち込めばいいか分からないときは
ls()コマンドという便利なものがあるので解決できるので積極的に使っていこうな…。
>>> ls(Ether)
dst : DestMACField = (None)
src : SourceMACField = (None)
type : XShortEnumField = (36864)
他にもARP()、NTP()、HSRP()などみんなが大好きなプロトコルに対応している。
Dot1Qにも対応してるしL2、L3は結構、対応してくれている。
参考URLに公開されてるコードを上げているので読めばどうすれば分かるので読みましょう!!
明日、いろいろ遊んだ進捗報告するので今日はここまで(眠い!!)