WLAN トラフィックをキャプチャする

Wi-Fi パケットをキャプチャすると、デバイス上で実行されているソフトウェアに到達する前にマスクされる詳細とインタラクションを把握できます。そのため、このキャプチャは、特定の種類のバグに対して重要なツールとなります。

主な手順は次のとおりです。

  1. スニッフィングする適切なチャネルを見つけます。
  2. トラフィックをキャプチャします。
  3. WLAN パスワードのキャプチャとハッシュを共有します。

1. 適切なチャネルと幅を決定する

WLAN ネットワークは以下のデバイスで動作します。

通常、ネットワーク内の各アクセス ポイント(ルーター、メッシュ ノードなど)には、一意の 2.4 GHz チャンネルと 5 GHz チャンネルがあり、デバイスがどちらに接続されているかを確認する必要があります。次のように、いくつかのオプションがあります。

ルーターの管理パネルを使用する

Nest WiFi を使用する場合は、このオプションをスキップしてください。情報は公開されません。

ほとんどのルーターには、接続されているデバイスとそのチャンネル、および幅の一覧があります。 できます。

  1. ルーターの IP アドレスを確認するには、こちらのガイドをご覧ください。
  2. ウェブブラウザでルーターのアドレス(http://192.168.1.1 など)にアクセスします。
  3. ログインします。パスワードがわからない場合ルーターのタグを確認するか、ルーター パスワードを使用します。
  4. 「clients」のような名前のページを探します。(接続されたデバイス)によって識別されます。たとえば、Netgear ルーターの場合は次のようになります。Eero デバイスの場合は次のようになります。

    Netgear クライアント ビュー

  5. 手順 4 の情報と特定のチャネルと帯域幅をマッピングするには、設定の他の場所を確認する必要があります。たとえば、Netgear ルーターは次のようになります。

    Netgear のチャンネル ビュー

同じチャンネルにすでに接続されている Mac を使用する

キーボードの option キーを押したまま、右上の WLAN アイコンをクリックします。 アクセスできます。通常の WLAN メニューといくつかの 詳細が表示されます。利用できないメニュー項目を確認し、チャンネルに関する項目を探します。

`Channel 60 (DFS, 5GHz, 40MHz)`

Mac WLAN

チャンネルと幅が見つかりません

他の方法で解決しない場合は、次の方法をお試しください。

  1. AP が使用しているすべてのチャネルのリスト(通常は AP またはメッシュごとに 2 つ) 。

    a. 推奨: Android スマートフォンでは、次のようなアプリを使用できます。 WifiMan または Aruba Utilities です。

    a. Mac では、/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s を使用してオプションを一覧表示できます。

  2. 以下の手順に沿って、各チャネルで短時間(15 秒でも十分)のキャプチャを実行します。

  3. Wireshark をインストールします(詳しくは、 Wireshark をインストールする)。

  4. Wireshark を使用して各キャプチャを開き、wlan.addr == YOUR_DEVICE'S_MAC の表示フィルタを適用して、パケットが表示されるかどうかを確認します。

2. キャプチャを開始する

重要: 4 ウェイ ハンドシェイクをキャプチャする

Wi-Fi のセキュリティがオンになっている場合は、キャプチャしたパケットを復号するための暗号鍵を把握する必要があります。暗号鍵は、デバイスがネットワークに接続するときに発生する 4 ウェイ ハンドシェイクから導出され、デバイスと AP 間の接続ごとに一意です。

このため、Wi-Fi ペイロードを復号するには、4 ウェイ ハンドシェイクをキャプチャする必要があります。Google Pixel の起動時にデバイスがすでにネットワークに接続されている場合 スニッフィングが起きたらデバイスを回収、取り外してから再接続(または再起動)します。 開始します

Mac でのキャプチャ

キーボードの Option キーを押したまま WLAN アイコンをクリックし、 「ワイヤレス診断を開く...」:

Mac WLAN キャプチャ

[ワイヤレス診断] メニューバーで、[ウィンドウ] >スニファー:

Mac WLAN スニファー

チャンネルと幅を、先ほど取得した値に設定します(スクリーンショット)。 チャネル 60、幅 40 MHz の例)

Mac の WLAN チャンネルと幅

Start キーを押してパスワードを入力します。では、問題を再現してみます。 4 ウェイ ハンドシェイクのキャプチャで説明されているように、接続から 4 ウェイ ハンドシェイクをキャプチャします。

完了したら Stop を押します。/var/tmp に新しい *.pcap ファイルがあります。 すべてのトラフィックが含まれますファイル名の例: (null)_ch100_2018-11-06_10.52.01.pcap

Linux でのキャプチャ

  1. Wi-Fi をオフにします。次のいずれかの方法で行えます。

    • GUI を使用する(推奨)
    • Network Manager CLI を使用して WLAN の管理を停止するよう指示する インターフェース: sudo nmcli dev set <wlan-ifname> managed on
    • 別のネットワーク マネージャーを使用している場合は、それに応じて調整します。
  2. このスクリプトを保存します。<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 $@
    
  3. 上記のスクリプトを実行し、スニファリングするチャネルと最大帯域幅を渡します。たとえば、80 MHz 帯域幅のチャネル 153 などです。

    ./setup-wifi-capture chan 153 80 MHz
    
  4. Wireshark を開くと、wlan インターフェースでパケットをキャプチャできるようになります。

3. キャプチャを共有する

  1. WPA PSK(未加工キー)ジェネレーターを使用して、パスワードのハッシュを生成します。これにより、平文のパスワードを知らなくてもキャプチャを復号できます。

  2. 生成された PSK も共有して、他のユーザーが復号できるようにする必要があります 作成します。

付録

Wireshark をインストールする

Wireshark は、Linux で apt install wireshark を使用してインストールするか、ダウンロードできます。 Wireshark のウェブサイトをご覧ください。

トラフィックを復号するように Wireshark を設定する

キャプチャ ファイルを共有する場合は必要ありません。Wireshark で復号されたトラフィックを自分で確認する場合にのみ行います。

Wi-Fi で WPA2 セキュリティを使用する場合、WPA2-PSK はトラフィックの暗号化と復号に直接使用されません。これは、 4-way handshake、 パケットを復号するためにキャプチャする必要があります。ただし、Wi-Fi への接続に関する問題や接続の切断のみをキャプチャする場合は、Wi-Fi 管理フレームから取得できるため、4 ウェイ ハンドシェイクをキャプチャする必要はありません。いずれの場合も、キャプチャしておくことに損はありません。

Wireshark を開き、[Preferences] ページ([Wireshark] メニュー > [Preferences])を開きます。 または **Cmd + , **)を使用します。

  1. 「IEEE 802.11」を探す[プロトコル] セクション[有効にする] チェックボックスをオンにして であるチェックされます。

    Mac Wireshark の設定

  2. [復号鍵] ラベルの横にある [編集] ボタンをクリックします。

  3. 左下にある [+] ボタンをクリックし、[wpa-pwd] オプションを選択します。

    Mac Wireshark WPA とパスワード

  4. 新しく作成した行のキー列(wpa-pwd 文字列の右横)をクリックします。 WPA2 PSK と SSID を <password>:<ssid> の形式で入力してください。 たとえば、ネットワーク名が MyHomeNetwork で WPA2 PSK が myp4ssword の場合、myp4ssword:MyHomeNetwork と入力します。

    Mac Wireshark の SSID

  5. [OK] をクリックして確定します。

詳細については、Wireshark の公式ガイド(スクリーンショット付き)の 802.11 を復号する方法をご覧ください。

tshark を使用する場合は、次の引数を渡します。

tshark -o wlan.enable_decryption:TRUE -o 'uat:80211_keys:"wpa-pwd","<psk>:<ssid>"'

Wireshark 802.11 データを色分けする

metageek.com に便利な 802.11 カラー プロファイルがあります。 Wireshark 構成プロファイル