方向性を示すだけの不親切ガイドです。
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にセカンダリアダプタとして付けておくと、何かと便利です。

TP-Link WiFi 無線LAN 子機 AC600 433Mbps + 200Mbps Windows/Mac OS 対応 デュアルバンド 3年保証 Archer T2Uv3
- 発売日: 2020/03/11
- メディア: エレクトロニクス

TP-Link WiFi 無線LAN 子機 AC600 433Mbps + 200Mbps Windows/Mac OS 対応 ナノ設計 デュアルバンド 3年保証 Archer T2U Nano
- 発売日: 2019/02/14
- メディア: Personal Computers

NETGEAR WiFi 無線LAN USBアダプター 子機 AC1200 867+300Mbps 高性能アンテナ USB延長ケーブル付き A6210-100JPS
- 発売日: 2014/12/25
- メディア: Personal Computers
終