思考ノイズ

無い知恵を絞りだす。無理はしない。

UbuntuでWifi sniffをするためにやったこと

仕事の関連でWifi snifferの環境を構築する必要がでてきた。*1。 いろいろ試行錯誤して知識が積み重なったのでここにまとめてみる。

試した環境: - 環境はUbuntu 18.04.3LTS でシステムはもともとWin10が入っていた市販のノートPC(FMV LIFEBOOK UH75)にインストール。 - Wifiは内臓の Intel Dual Band Wireless-AC 8265 と、USBドングルのNETGEAR A6210の2パターン

monitor mode の設定

外部のwifiパケットをキャプチャするためにはWifiインターフェイスをMonitor Modeに変更する必要がある。(通常はManaged Mode)

  • iwconfigコマンドでの設定

現在のインターフェイスをMonitorモードにかえる。一旦インターフェイスをInaciveにしてからMonitorモードに変更、そしてアップをおこなう。

sudo ifconfig wlp2s0 down
sudo iwconfig wlp2s0 mode monitor
sudo ifconfig wlp2s0 up
  • iwコマンドでの設定

iw コマンドによりmonitor modeのWirelessのInterfaceを追加する方法。ここではmon0として追加。

sudo iw wlp2s0 interface add mon0 type monitor
sudo ifconfig mon0 up
  • airmon-ngの設定

aircrack-ngパッケージに含まれるairmon-ngでのMonitorモードの設定。自動的にMonitorモードのインターフェイスが新しい名前で追加される。

sudo airmon-ng start wlp2s0

どの方法でも iwconfig で monitor mode の確認ができる。

wlp2s0    IEEE 802.11  ESSID:"RHYMESTER"  
          Mode:Managed  Frequency:5.58 GHz  Access Point: xx:xx:xx:xx:xx:xx   
          Bit Rate=866.7 Mb/s   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=66/70  Signal level=-44 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:40   Missed beacon:0

Wifi モジュールの選択

  • Intel Dual Band Wireless-AC8265 (内蔵)

システム内蔵のモジュール。Linux入れとけばどんなモジュールでもSniffできると考えていたが、実際とれるパケットは多くなかった。WifiモジュールをManagedモードに戻すバッチファイルを実行するとそのタイミングだけパケットがおおくキャプチャできるようにみえたのだが、何がトリガになっていたのかは不明。

  • NETGEAR A6210 (USB 外付け)

上記のあと、ダメ元で使ってみたら、常時Sniffをしている状態になったのでびっくりした。ただ下のさいとによると、これでも制限があるようで、A6200のほうがよいらしいけど、古いから手にはいらなさそう。

monitor mode WiFi cards under windows with Acrylic

製品によってかなり個性が違うようで、今後Wifi6関連でもこのあたりの情報は仕入れて行く必要があると感じる。

Sniffソフトの設定

とりあえず、いかの3つで動作を確認しました。

  • Wireshake

言わずとしれた、King of パケットキャプチャソフト。Monitorモードに設定したInterfaceを指定すると、802.11のパケットもキャプチャできる。

  • Scapy

Python用のLibrary。自分で細かいフィルタをかけるときに便利そう。とりあえずサンプルスクリプトとして、WebであったBeaconからAPのリストアップするスクリプトので動作を確認。

  • airodump-ng

現在のSSIDのリアルタイム情報を表示するコマンドラインツール。使いやすくわかりやすい。チャネル指定してもFilterがうまくできないのが今の悩み。

  • Kismet

超高機能なSnffプログラム。まだ動作について理解しきれていないが、最低限動いていることを確認した。このツールに関して言えば、monitor mode用に追加したインターフェイス(mon0 など)ではうまくキャプチャできず、もとからあった物理インターフェイスでの動作を確認できた。

*1:正確に言うと、必要ではないのだが、あったほうが断然はかどるといった感じ