〇 ノートPCで無線LANのパケットキャップチャーに挑戦、鍵は「モニターモード」。
無線LANのパケットキャプチャーはこれまで、Macを使うか専用の無線LANアダプターを使うのが基本だった。
無線LANのパケットを収集するには、無線LANアダプターを「モニターモード」という特殊な状態にする必要がある。これにより、指定したチャンネルの無線パケットをすべて収集できるようになる。
Windowsで一般に使う無線LANアダプターで、このモードに対応する製品はほとんど見当たらない。一方Linux環境下ではモニターモードに変更できる無線LANアダプターは以前からいくつかあったが、搭載するコントローラーの種類を知る必要があるなど、手間がかかっていた。
しかし最近の米Intel(インテル)のCPUを搭載したノートパソコンでよく使われる標準的な無線LANアダプターは、Linux環境でモニターモードに変更できる。そこで実際に無線LANのパケットをキャプチャーした。
ここではペネトレーションテストなどに使われる「Kali Linux」を、外付けUSBメモリーに組み込んで使った。ノートパソコンのWindows環境を変えないためだ。
Kali Linuxには標準で「AirCrack-ng」が組み込まれている。これは無線LAN関連のセキュリティーを検証するためのツールである。不正アクセスにも悪用できるので、使用時には気をつけたい。
コマンド「airmon-ng start wlan0」を実行すると、wlan0のモードがモニターモードに変わる。デフォルトでは2.4GHz帯のチャンネルが収集対象となる。「airmon-ng start wlan0 36」などと5GHz帯のチャンネルを指定すると、5GHz帯での収集が可能になる。
ノートパソコンのWindows環境を変更せずにLinuxを使う方法としては、仮想マシンのゲストOSとしてLinuxを入れる方法もあるが、仮想マシンはインテルの無線LANアダプターを直接操作できない。仮想マシンからは仮想の有線LANとして見えるためだ。ただし外付け無線LANアダプターは直接操作できるので、モニターモードに変更できるアダプターであれば無線パケットを収集できる。
Macで無線パケットを収集。
macOSには標準で無線パケットを収集する「スニファ」という機能がある。
使い方はこうだ。画面上部にある無線LANのアイコンをクリックすると、接続可能なSSIDの一覧に加えて「ワイヤレス診断を開く」という項目が表示される。ワイヤレス診断の「ウインドウ」メニューにある「スニファ」を選ぶと、パケットを収集するチャンネルと帯域幅が選べる。ここで「開始」をクリックすると収集が始まる。
Wiresharkで詳細を確認。
収集したパケットの様子をWiresharkで見ると、CSMA/CAによって通信衝突を回避している様子などが分かる。また家庭用のネットワークなどの場合、事前共有鍵(PSK)をWiresharkで設定しておき、ある程度の時間パケットを収集すると、4ウエイハンドシェークの情報を収集できて一部の通信の暗号化が解けるようになる。この場合無線LAN通信のフレームとしてではなく、IPやUDPといった上位のレイヤーで通信が可視化できるようになる。
このパケットキャプチャーでは、モニターモードに設定した無線LANアダプターをWiresharkで直接指定して収集するのではなく、AirCrack-ngのコマンドである「airodump-ng」でチャンネルを指定したほうが安定して収集できた。