Wi-Fi パケットをキャプチャすると、デバイスで実行中のソフトウェアに到達する前にマスクされる詳細情報やインタラクションを確認できるため、特定の種類のバグにおいて重要なツールとなります。
主な手順は次のとおりです。
- まずはチャンネルにお立ち寄りください。
- トラフィックを捕捉する。
- WLAN パスワードのキャプチャとハッシュを共有します。
1. 適切なチャンネルと幅を決定する
WLAN ネットワークは次のデバイスで動作します。
- チャネルです。通常は数字で表されます。1 ~ 13 は 2.4 GHz チャネルの場合、36 ~ 200 は 5 GHz チャネルの場合
- 特定の幅(20 Mhz、40 Mhz、80 Mhz、160 MHz)
通常、ネットワーク内の各アクセス ポイント(ルーター、メッシュノードなど)には固有の 2.4 GHz チャネルと 5 GHz チャネルがあり、デバイスが接続されているかどうかを確認する必要があります。次のように、いくつかのオプションがあります。
ルーターのコントロール パネルを使用する
Nest WiFi を使用する場合は、このオプションをスキップしてください。情報は公開されません。
ほとんどのルーターには、接続済みのデバイスのリストと、使用しているチャンネルと幅のリストがあります。
- こちらのガイドを使用して、ルーターの IP アドレスを確認してください。
- ウェブブラウザでルーターのアドレス(例: http://192.168.1.1)に移動します。
- ログインします。パスワードがわからない場合は、ルーターでタグを確認するか、ルーターのパスワードを使用します。
「クライアント」や「接続デバイス」のような名前のページを探します。たとえば、Netgear ルーターのページや Eero デバイスの場合は、次のようになります。
ステップ 4 の情報を特定のチャンネルと帯域幅にマッピングするには、設定の別の場所を参照する必要があるかもしれません。たとえば、次のような Netgear ルーターがあります。
同じチャンネルにすでに接続している場合は、Mac を使用してください
キーボードの option キーを押したまま、Mac のステータスバーの右上隅にある WLAN アイコンをクリックします。通常の WLAN メニューが表示され、いくつかのオプションと情報が表示されます。利用できないメニューの中から 「チャンネル」という項目を探します
`Channel 60 (DFS, 5GHz, 40MHz)`
チャンネルと幅が見つかりません
他の方法が機能しない場合は、次の方法をお試しください。
AP が使用しているすべてのチャネルを一覧表示します(通常は、AP またはメッシュ ポイントごとに 2 つ)。
a. 推奨: Android スマートフォンでは、Wifiman や Aruba Utilities などのアプリを使用できます。
a. Mac では、
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s
を使用してオプションを一覧表示できます。下記の手順で、各チャネルで短いキャプチャ(15 秒でも十分)を行います。
Wireshark をインストールします(詳しくは、Wireshark をインストールするをご覧ください)。
Wireshark を使用して各キャプチャを開き、
wlan.addr == YOUR_DEVICE'S_MAC
の表示フィルタを適用して、パケットが表示されるかどうかを確認します。
2. キャプチャを開始する
重要: 4 ウェイ ハンドシェイクのキャプチャ
Wi-Fi のセキュリティが有効になっている場合、キャプチャされたパケットを復号するための暗号鍵を把握している必要があります。暗号鍵は、デバイスがネットワークに接続したときに行われる 4 方向 handshake から導出され、デバイスと AP 間の接続ごとに一意です。
このため、Wi-Fi ペイロードを復号するには、4 方向 handshake をキャプチャする必要があります。キャプチャの開始時にデバイスがすでにネットワークに接続されている場合は、スニッフィングが開始されたら、デバイスを接続解除して再接続(または再起動)します。
Mac でのキャプチャ
キーボードの Option キーを押したまま WLAN アイコンをクリックし、[Open Wireless Diagnostics...] を選択します。
[Wireless Diagnostics] メニューバーで、[Window] > [Sniffer] を選択します。
チャネルと幅を前の手順で取得した値に設定します(スクリーンショットの例はチャネル 60 と幅 40 MHz です)。
Start
を押してパスワードを入力します。問題を再現してみます。
4 方向 handshake のキャプチャの説明に従って、接続から 4 方向 handshake をキャプチャしてください。
入力したら、Stop
キーを押します。新しい *.pcap
ファイルは /var/tmp
にあります。このファイルにはすべてのトラフィックが含まれています。ファイル名の例: (null)_ch100_2018-11-06_10.52.01.pcap
Linux でのキャプチャ
[Wi-Fi] をオフにします。次のいずれかの方法で行えます。
- GUI の使用(推奨)
- Network Manager CLI を使用して WLAN インターフェースの管理を停止するように指示します。
sudo nmcli dev set <wlan-ifname> managed on
- 別のネットワーク管理者を使用している場合は、それに応じて調整します。
このスクリプトを保存します。
<wlan-ifname>
は、使用する Wi-Fi インターフェースの名前に置き換えます。このドキュメントでは、スクリプト名をsetup-wifi-capture
と仮定しています。#!/usr/bin/env bash sudo ifconfig <wlan-ifname> down sudo rfkill unblock wifi sudo iwconfig <wlan-ifname> mode monitor sudo ifconfig <wlan-ifname> up sudo iw dev <wlan-ifname> set channel $@
上記のスクリプトを実行し、チャネルと最大帯域幅を渡してスニッフィングを行います。たとえば、80 MHz 帯域幅のチャネル 153 を渡します。
./setup-wifi-capture chan 153 80 MHz
Wireshark を開くと、wlan インターフェースでパケットをキャプチャできるようになります。
3. キャプチャを共有する
WPA PSK(未加工キー)生成ツールを使用してパスワードのハッシュを生成します。これにより、書式なしテキストのパスワードを知らなくてもキャプチャを復号できます。
生成された PSK も共有して、他のユーザーがキャプチャを復号できるようにする必要があります。
付録
Wireshark をインストールする
Linux に apt install wireshark を使用して Wireshark をインストールするか、Wireshark のウェブサイトからオンラインでダウンロードできます。
トラフィックを復号するように Wireshark を設定する
これは、キャプチャ ファイルを共有する場合は Wireshark を使用して自分で復号されたトラフィックを調べる場合にのみ必要です。
Wi-Fi の WPA2 セキュリティでは、WPA2-PSK はトラフィックの暗号化と復号に直接使用されません。これは 4 方向 handshake で使用され、パケットを復号するためにキャプチャする必要があります。ただし、捕捉しようとしている問題が Wi-Fi 接続の問題や Wi-Fi 管理フレームから収集できる接続の低下のみである場合、4 方向のハンドシェイクをキャプチャする必要はありません。いずれにせよ、撮影しても問題ありません。
Wireshark を開いて [Preferences] ページを開きます(Wireshark メニュー > [Preferences] または **Cmd+ , **)。
[プロトコル] カテゴリの [IEEE 802.11] セクションを見つけ、[復号を有効にする] がオンになっていることを確認します。
[Decryption Keys] ラベルの横にある [Edit] ボタンをクリックします。
左下にある [+] ボタンをクリックし、[wpa-pwd] オプションを選択します。
新しく作成した行のキー列(wpa-pwd 文字列の右横)をクリックし、WPA2 PSK と SSID を
<password>:<ssid>
の形式で入力します。たとえば、ネットワーク名がMyHomeNetwork
で WPA2 PSK がmyp4ssword
の場合は、「myp4ssword:MyHomeNetwork
」と入力します。[OK] をクリックして確定します。
詳細については、How to Decrypt 802.11 の Wireshark の公式ガイド(スクリーンショット付き)をご覧ください。
tshark
を使用する場合は、次の引数を渡します。
tshark -o wlan.enable_decryption:TRUE -o 'uat:80211_keys:"wpa-pwd","<psk>:<ssid>"'
Wireshark 802.11 データを色化する
metageek.com には、便利な 802.11 カラー プロファイル(Wireshark 構成プロファイル)があります。