パケット解析につかうツールはいろいろあるが、ここでは定番で無料のWiresharkを使ってみよう。
Wiresharkの歴史
Gerald Combsが1998年にGNU General Public License(GPL)により、Etherealとして公開していた。
20年以上IT業界にいる人なら聞いたことがあるはずだ。
当時彼が勤めていた会社が商標権を持っていて、そこを退職したためEtherealという名前が使えなくなってしまった。
そこで、2006年にWiresharkという新しい商標でプロジェクトが再開した。
ちなみに、Etherealの商標権を持っていた会社は開発者がいなくなったので、開発は中断されてしまった。
GPLとはソフトウェアのライセンスの種類だよ。
ざっくりいうと、主な4つのポイントがあるよ。
- 自己責任で使える
- 著作権の表示は消さない
- コピー、改変、再配布、販売は自由
- 再配布するにもGPLライセンスにする
Wiresharkのインストール
Wiresharkは、Windows、Mac、Linuxで動作するので自分の環境にあったリリースをhttps://www.wireshark.org/からダウンロードしよう。
インストールの前に、プロミスキャスモードをサポートしているNICが必要なので、念の為御自身で確認しておこう。
通常NICは自分宛のパケットを受信したときにだけ、上位のシステムにその内容を通知するようになっている。
しかし、プロミスキャスモードを有効にすると、宛先MACアドレスが自分宛てかどうかにかかわらず、上位のシステムにその内容を通知するのでパケットキャプチャを行うプログラムで使われるというわけだ。
Fedora32の場合は、つぎのようにインストールする。ついでに、wiresharkグループのパーミッションをユーザに追加しておこう。
# dnf install wireshark
# usermod -a -G wireshark user_name
無線LANの場合
無線LANの場合は、別途設定と注意が必要だ。
まずはワイヤレスインターフェイスをモニターモードに変更しよう。
モニターモードでは、ワイヤレスネットワークインターフェイスコントローラー(WNIC)を備えたコンピューターが、ワイヤレスチャネルで受信したすべてのトラフィックを監視できる。
パケットスニッフィングにも使用されるプロミスキャスモードとは異なり、モニターモードでは、最初にアクセスポイントやアドホックネットワークに関連づけすることなくパケットをキャプチャできるのだ。
Fedora32の場合は、つぎのようなコマンドを実行して、モードをmanagedからmonitorに変更する。
# iw dev
phy#0
...
Interface wlp2s0
ifindex 3
wdev 0x1
addr xx:xx:xx:xx:xx:xx
ssid your_ssid
type managed
channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
txpower 22.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
# ip link set wlp2s0 down
# iw wlp2s0 set monitor none
# ip link set wlp2s0 up
# iw dev
phy#0
...
Interface wlp2s0
ifindex 3
wdev 0x1
addr xx:xx:xx:xx:xx:xx
type monitor
txpower 22.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
無線LANの電波を傍受しただけでは処罰の対象にはならないよ。
しかし、その内容を他人に漏らすことなどは禁じられているので注意が必要だよ。
詳細について知りたい場合は、電波法59条を確認してみよう。
また、https://wiki.wireshark.org/HowToDecrypt802.11も確認して、環境に合せて設定しておこう。
パケットのキャプチャ
Wiresharkをインストールしたので、早速起動してみよう。
シャークのヒレの形をしたボタンをクリックすると、キャプチャが開始される。
キャプチャされたパケットは、リアルタイムにメインウィンドウに表示される。
メインウィンドウは、3つのペインにわかれていて、互いに連携している。
上段がパケットの一覧、中段がパケットの詳細、そして下段がパケットのバイト表示だ。
パケットキャプチャを停止するには、赤の停止ボタンをクリックすると停まる。
まとめ
パケットキャプチャの定番であるWiresharkについて簡単に取り上げてみた。今回は、Linux上で無線LANをつかって、ワイヤレスインターフェイスをモニターモードに変更し、パケットをキャプチャしてみた。
コメント