hgot07 Hotspot Blog

主に無線LANや認証連携などの技術についてまとめるブログです。ネコは見る専。

Windowsによる無線LANパケットキャプチャ不親切ガイド

方向性を示すだけの不親切ガイドです

Windows無線LANのパケットキャプチャをしようと思って、色々と情報を漁ってみても、これが、まともに動く環境が出てこない出てこない……。「パトラッシュ、僕はもう疲れたよ」と言いたくなった人、それなりにいらっしゃるのでは?

やりたいこと

  • 無線LANトラブルシューティングの目的で、他の端末の無線LAN通信のパケットをキャプチャしたい。
  • モバイル用のメイン環境がWindowsノートなので、できればWindows上で実現したい。
  • 有線・無線とも定番のWiresharkで解析できるとよい。キャプチャだけ別環境でも仕方ないが、可能ならばWireshark上でそのままパケットを収集・観測できると嬉しい。
  • 5GHz帯も見たい。11acにも対応したい (今回は未確認)。
  • 製品なら高価なものがあるが、なるべく安上がりに実現したい。

要するに、Windows上で容易に、monitor mode (promiscuous mode)でキャプチャできる環境が欲しいということです。

MacOSなら簡単らしいのですが、追加で持ち歩きたくはないし、何よりもMacを買うつもりはないので。

 

Windowsでmonitor modeでキャプチャする方法

Windows上です(嘘は書いてないのでヨシ!)。

実は、散々調べた結果、Windows上のネイティブプログラムだけで無線LANをキャプチャする方法は、高価な製品を買う以外は困難という結論になりました。結果的に、最も楽だったのが以下の環境です。要するにこれが結論です。

  • Windowsだけでmonitor modeでのキャプチャは、きっぱりと諦める (その方が圧倒的に早道)。
  • Windows 10にVirtual Boxを導入し、Kali Linuxを走らせる (ズル)。
    Kaliは、VirtualBox用のVMイメージ(.ova)をダウンロードして、VirtualBoxにインポート、あとはVMを起動するだけで使える。
  • Kaliで対応できるWi-Fiアダプタを探してくる。
    (RTL8811AU使用のTP-Link T2U v3とT2U Nanoは使えました)
  • Kaliに対応する無線LANドライバを導入する。
    (apt install realtek-rtl88xxau-dkms など)
  • USBドングルの場合、Kaliの device>USB メニューでアダプタをアタッチする。
  • Kaliに必要なツールをインストールする。
    (wireshark, aircrack-ng, airgraph-ngなど、必要に応じて)
  • sudo -sでルートになってから、airmon-ngを使ってモード設定する (monitor modeやchannelなど)。これを忘れるとWiresharkにパケットが流れてこない。
  • airodump-ngでキャプチャして、パケットをファイルにダンプする。
    または、Wiresharkから直接パケットキャプチャする。

 

コマンド例

なにしろ不親切ガイドなので、細かい説明はしません。

無線LANアダプタを接続後、wlan0などのデバイスができていることを確認します。
# iwconfig

無線LANバイスの詳細の確認は以下のとおり。
# dmesg
# iw phy

アダプタをmonitor mode、channel 11に設定するには、以下のとおり。デバイス名は認識されたものに合わせる。
# airmon-ng start wlan0 11

コマンドラインからchannel 11のパケットをキャプチャする場合、以下のとおり。ファイル名は適当に付ける。CTRL-Cでキャプチャ停止。
# airodump-ng --channel 11 --write captFile wlan0

Wiresharkで直接キャプチャしたければ、認識された無線LANバイスを指定してキャプチャ開始すればよい。

 

Windowsだけではどうしても無理?

色々なドングルを集めて、散々試してみたのですが、何の成果も得られませんでした!

以下、暇がある人向け情報です。

Windowsにはnpcapというキャプチャ用ライブラリがあり、これを使うとmonitor modeでもキャプチャできそうなことが書かれているのですが、これがさっぱりさっぱり……(はっ)。

自分の端末で接続中の無線LANバイスを流れるパケットなら、Wireshark付属のnpcapで簡単に取得できます。しかし、monitor modeが使える無線LANアダプタはかなり限られています。キャプチャの設定の際に、monitor modeのチェックボックスが現れないと、他端末の通信を傍受することはできません。

定評があるのはRalink (MediaTek)のチップを使ったもので、NETGEAR A6210は定番の一つのようです。しかし、現在Wiresharkに添付されていたnpcap 1.1ではmonitor modeに入れても全然パケットがWiresharkに流れてきません。Realtek製も色々と試してみましたが、そもそもmonitor modeがなく、全滅でした。

色々と試した結果、npcap 0.922まで遡ったら、A6210で何やらパケットが流れてきたのですが、どうもきちんとキャプチャできていないような感じ。Buffalo WI-U2-300Dも似たような感じで使い物にならず。

研究室の棚から発掘された(笑) AirPcap Nxは、11nまでしか対応していなくて残念。それより、やはり満足にキャプチャできない感じでした。

Windowsで使えそうなものに、Acrylic Wi-Fiという製品があるのですが、やはりアダプタを選ぶようです。 (参考: いけりりさんの製品紹介)

ちなみに、AcrylicでrecommendedになっているTP-Link T9UHは、npcapでもKaliでも認識されませんでした。

 

Kaliで使えた / 使えなかったアダプタ

うまく動いている(と思われる)アダプタは以下のとおり。

TP-Link Archer T2U v3 (バージョン違いはチップ違いなので要注意)

TP-Link Archer T2U Nano

TP-Link Archer T2U Plus

Buffalo WI-U2-433DM

Buffalo WI-U2-300D

CACE AirPcap Nx

※ USBハブ経由では動かないドングルもあります。

 

使えなかったアダプタは以下のとおり。

NETGEAR A6210 (MediaTek MT7612U使用のLinuxの定番だが、Kaliで認識に失敗する)

TP-Link Archer T9UH

TP-Link Archer T3U

 

LinuxでもOpenWrtでも何かと苦労するTP-Link製品の方がまともに動いて、ちょっと驚いていたりします。T2U Nanoは小さいので、ノートPCにセカンダリアダプタとして付けておくと、何かと便利です。