Tahoo!!

自分の勉強していること(コンピュータ関連 / ネットワーク / セキュリティ / サーバ)や趣味について書いていきます

「#ssmjp 2015/04」でLTしました。

先日、#ssmjp 2015/04でLTしてきました。
今回は、wakamonogBIGLOBEさんと共同開催ということで、wasabiという感じでした。 ssmjp.connpass.com

wakamonogが若者+NOG(Network Operation Group)ということもあり、全体的にネットワーク分野とセキュリティ分野のLTが多く、ネットワーク分野をベースにセキュリティやってる私にとっては、とても興味深い内容ばかり。
特に、自宅でISPを運用してみようと言う話は、すごく夢がある話で鳥肌でした。(学生なのでまだそこまでかけられるお金無いけど…

このような機会を設けて頂いた ssmjpとwakamonogの運営の方々、会場を提供してくださったBIGLOBEさんには感謝の気持ちで一杯です。

そんな中、私がしたLTは、「パケットで遊ぼう」

人工知能のはなし」をしてくれた川崎君や「YAMAHA ルータの設定を Visual Studio で書きやすく」をLTしてたみむらさん、さらに参加者の方を見てると知ってる方が多かったので、これは俺も何かやらんとなと思いまして…(謎の対抗心

「パケットで遊ぼう」

CTF for ビギナーズや#ssmjp、ネットワークパケットを読む会等で何回発表はしていたのだけども、諸事情あってあまり資料を公開できませんでしたが、今回は公開出来るのでここに載せときます。

そもそも何でこんなことをしようと思ったかと言うと、某CTFの問題作成時にHTTPのHostヘッダを変えようと思ったことがきっかけです。
どうやって変えようかなあと考えたところ、@otsuka752さんがWireEditというツールでパケットを変えていたのを思い出しまして、今回使った感じです。

実際に使ってみると、WiresharkライクなUIで簡単にpcapファイルの中身を変えることが出来て、非常に便利なツールでした。
しかし、IPやTCPチェックサムは自動で計算してくれるものの、TCPのシーケンス番号やACK番号は自動で計算してくれるところまではしてくれませんでした。
よって、Wiresharkに読み込ませるとシーケンス番号やACK番号がおかしくなってるので、該当パケットでエラー表示されます。

プログラム書いても良かったかもしれないですが、プログラム書くより頭で計算してパケットをWireEditで直接直した方が早い気がしたので、シーケンス番号やACK番号をWireEditで書きかえました。
その結果、若干面倒くさいことになったものの、普段意識しないTCPのシーケンス番号やACK番号の計算方法を再認識することができました。(ありがとうWireEdit
※ちなみに、某CTFの問題を作る時はもっと変える箇所が多かったので頭でやるのは少し大変でした。

あ、あと、悪いことにも使えなくはないので、間違っても悪いことには使わないで下さいね。

今後もこのような遊びを通して、プロトコルへの理解を深めて行きたいです。