「パケットキャプチャの教科書」を読んだ

bettercap を理解するべく勉強していたのだが、そもそも論としてネットワークの知識が皆無だということに気がついてしまった。 たまたま本屋においてあった「パケットキャプチャの教科書」をノリと勢いで買って取り組んでみた。 今回は必死さを保つため、「フルコミット3日で完全理解できるっしょwwwwできなかったら昼飯おごるわwwwww」という縛りを設けてやってみて無事できたので熱が冷めないうちに記事にまとめておく

って言って纏めたのは半年後という...遅くなっちゃったけどとりあえず公開しといてもいいでしょう。


学んだこと

Wireshark

今回検証用に使った。 Ubuntu 18.04 への構築手順は以下。

$ sudo apt install wireshark

Layer2

  • Ethernet
  • Ethernet
  • VLAN
  • ARP

Ethernetのフレームフォーマットを読んだ。 mac address は同一ネットワーク上の固有IDだということを初めて知った。 VLAN は実際に L2スイッチ が無いから検証できなかった。

Layer3

  • IP
  • ICMP

Layer4

  • UDP
  • TCP

UDPDNSNTP も含まれていて、実際に Wireshark で確認が取れた。 3 way handshakeSYN → ACK/SYN → ACK なだけってことを Wireshark で確認が取れてよかった。

Layer5~7

  • HTTP
  • SSL/TLS
  • DNS

http://~~ のサイトのサンプルが http://example.com くらいしか思いつかなかったのでこれ使った。

今後の課題

理解が足りていない部分や実際に手を動かさないとわからないことが明確になったので列挙しておく。

  • ルーター(access point)の構築、運用 • traceroute の理解 • SSL/TLS 認証局を作る • DNS を自作する。 • VPN を作る • RTMFP/HLS あたりの理解 • HTTP/2 の理解 • HTTP/3 の理解 • TCP/HTTP Tunnel の理解 • UDPNAT 超えについての理解 • NTP を立てる

深堀しようとしたら無限に学ぶことがあって、非常にやりこみ要素の高いゲームだ。


Wireshark 死ぬほどいじった。楽しかった。 同時に縛り勉強をやっていたインターンのやつを煽りながら勉強できて楽しかった。 bettercap でやってることがぼんやり理解できたので、実際に動かしてみたい。