ラズパイを購入したので,Wi-Fiアダプタをつないで無線データを見てみる.次の2点を実施してみた.
- WiresharkでFrameを見る
- Kismetでアクセスポイントやクライアント情報を見る
目次
- 準備
- ラズパイとWi-Fiアダプタ,PCを配線
- 無線インターフェイスをMonitor Modeにする
- WiresharkでWi-Fiデータを見てみる
- ラズパイにtcpdumpを入れておく
- Kismetで無線環境を見てみる
- ラズパイにKismetを入れておく
準備
ラズパイとWi-Fiアダプタ,PCを配線
構成イメージ

環境
- OS(PC):Windows 10 Home
- ラズパイ:Raspberry Pi 3 Model B
- Wi-Fiアダプタ:WTXUP TX-N600(チップセット:Mediatek RT5572)
無線インターフェイスをMonitor Modeにする
まずsshでラズパイにリモートログインする.コマンドプロンプトから
>ssh {user名}@{ラズパイのIPアドレス}
実行後にパスワードを入力でログイン可能.(TeratermでもOK)

キャプチャに使う無線インターフェイスを確認する.ifconfig
とかiwconfig
で確認できる.
今回の環境ではwlan0
(ラズパイに組み込みの無線インターフェイス)とwlan1
(USBのWi-Fiアダプタで追加した無線インターフェイス)がある.

wlan1
をモニターモードにする*1.下記手順で可能(スーパーユーザに昇格しておくこと*2)
#ifconfig wlan1 down
#iwconfig wlan1 mode monitor
#ifconfig wlan1 up
iwconfig
を実行し,インターフェイスのモードがMonitorになっていればOK

WiresharkでWi-Fiデータを見てみる
前準備:tcpdumpインストール.
#apt install tcpdump
visudoでtcpdumpをNOPASSWDにする.
#visudo
~中略~
root ALL=(ALL:ALL) ALL
{user名} ALL=(ALL:ALL) NOPASSWD: /usr/bin/tcpdump
PCのコマンドプロンプトから下記を実行*3.
>plink {user名}@192.168.0.200 -pw {sshのPassword} -batch sudo tcpdump -i wlan1 -w - | Wireshark -k -i -
下記のようにCaptureできた.

Kismetで無線環境を見てみる
ラズパイにKismetを入れておく(詳細は割愛)
モニター用のインターフェイスはwlan1
なので,/etc/kismet/kismet_site.conf
で指定しておく.
source=wlan1:name={任意}
kismetを起動
>kismet
PCのブラウザから{ラズパイのIP}:2501
アクセスするとダッシュボードが表示される.
下記のようにチャンネルごとのアクセスポイントの稼働状況が一覧表示され,リアルタイムで更新される.

リアルタイム更新の様子

ちなみにREST APIで特定のデータをとってくることも可
例:各チャンネルのデバイス数などの情報をとる場合
http://{user名}:{Password}@{ラズパイのIPアドレス&ポート}/channels/channels.json
チャンネルごとの端末数とか,SSIDに接続しようとしているクライアント数とかがわかるのでまあまあ面白そう.(タダ乗りしようとしてる端末とかは特定できそう)
補足
*1.組み込みの無線インターフェイスであるwlan0はモニターモードにできなかった.(チップのドライバがモニターモードに対応していない?)
*2.>sudo -s
をよく使う
*3.-batch
がないとWiresharkを開いたときにエラーとなる
https://ask.wireshark.org/question/14457/data-written-to-the-pipe-is-neither-in-a-supported-pcap-format-nor-in-pcapng-format/
コメント