WindowsPCでWi-Fiパケットキャプチャ

システム概要 未分類
システム概要

Windows環境でWi-Fiパケットをキャプチャする.とくに,一定のサイズごとにキャプチャファイルを分割・保存して,長時間のデータを収集する方法を紹介.

前置き

環境

ホストOS:Windows10
ゲストOS:Kali Linux

外付けWi-Fiモジュール:WTXUP TX-N600(チップセット:Mediatek RT5572)
(下記を参考にしてkali Linuxでモニターモードにできそうなやつを購入)
https://www.kalilinux.in/2022/04/wifi-adapter-for-kali-linux.html

Wi-Fiモジュールのモニターモード

PCやネットワーク機器のWi-Fiモジュールには下記のような複数の動作モードがある.*1

  • マスターモード:アクセスポイントとして働き,無線子機(ステーション)への通信を中継
  • マネージドモード:ステーションとして働き,アクセスポイントと通信を行う
  • アドホックモード:ステーションとして働くが,他のステーションと直接通信
  • モニターモード:周囲の通信をすべて受信し,他のステーションやアクセスポイントとの通信は行わない

モニターモード以外のモードでは,基本的に自分宛 or Broadcastのデータでなければ捨ててしまう(CPUなどの上位層に渡さない)ので,周囲の通信を傍受することはできない.

なので,まずはWi-Fiモジュールをモニターモードにする必要があるが,Windows環境ではいい方法が見当たらない*2ので,VirtualBox+Linuxを用いることとする.

VirtualBox+Kali LinuxでのモニターモードWi-Fiパケットキャプチャ

下記参考サイトとほぼ同じ

Windows 上の仮想環境の kali linux で wifi アダプターをモニターモードにする - Qiita
wifiアダプターの準備kalilinuxがサポートするwifiアダプターのチップセットは以下のものになります。AtherosAR9271RalinkRT3070Ralink…

インストール・設定

OracleのページからVirtualBoxをダウンロード・インストール

ダウンロードページのWindows hostsを選択

Kali LinuxのページからVitualBox用Linuxイメージをダウンロード(2.7GBytesほど)

VirtualBox用イメージのダウンロードボタンを選択

ダウンロードしたフォルダを解凍後,拡張子がvboxのファイルを実行すればkali Linuxを起動できる.

起動後は下記のように設定>システム>マザーボードのメインメモリーを2048MB,システム>プロセッサーを2あたりに設定しておけばOK(だと思う).

install1
install2
install3
previous arrow
next arrow
 

また,ネットワーク>アダプター1をホストオンリーアダプター,ネットワーク>アダプター2をNATに設定(順不同)

  • ホストオンリーアダプター:ホストOSとの通信用.このインターフェイスを介してキャプチャしたWi-Fiパケットをホスト側に保存する.
  • NAT:ゲストOSにインターネットアクセスしてもらうためのインターフェイス.別途kali Linux側にも設定が必要.(今回の目的ならいらないかも)
network1
network2
previous arrow
next arrow
 

最後に,外付けWi-FiモジュールをPCに接続し,USBの項目からUSBコントローラーを有効化にチェックを入れ,USB3.0(xHCI)コントローラーを選択.USBデバイスフィルターに外付けWi-Fiモジュール(のチップセット)が表示されているっぽいのでチェックを入れてOKを押す.

USB接続デバイスの設定

起動してユーザー名:kali,パスワード:kaliでログイン

kali Linuxのインターフェイスの設定をしておく.
ターミナルから$sudo vi /etc/network/interfacesでインターフェイスの情報を編集し,以下を追記.

# Host-Only Adapter
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0

# NAT interface
allow-hotplug eth1
iface eth1 inet dhcp
  • allow-hotplug **:起動時にインターフェイス**を有効にする
  • eth0(ホストオンリーアダプター)は静的IPを設定(このIPと疎通できるようホスト側のホストオンリーイーサネットアダプターの設定も変えておく.192.168.0.10/24とか.)
  • eth1(NAT)はDHCPにするとインターネットアクセス可能になる.

ゲストOS側でWi-Fiパケットキャプチャ

本記事の目標はホスト側でWi-Fiパケットを保存することだが,ひとまずゲスト側でWi-Fiパケットキャプチャを実施してみる.

ifconfigでwlan0のインターフェイスが出ることを確認
(出なかったら設定確認 or kali Linuxを再起動してみる)

wlan0がUSBに接続したWi-Fiモジュールによるインターフェイス

下記を実行(36chのWi-Fiパケットをモニター)

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode monitor
sudo ifconfig wlan0 up
sudo iwconfig wlan0 channel 36

sudo iwlist wlan0 channelで現在のチャンネルを確認できる.

36chに設定されている

この状態でtcpdumpを実行すればモニターモードでのWi-Fiキャプチャができる.

tcpdump実行時のメッセージ
  • tcpdumpのオプション
    • -w:出力先ファイル
    • -i:入力インターフェイス

キャプチャしてみたファイルは以下.

宛先MACアドレスがバラバラ→自分以外のデバイス向けの通信も傍受できている
チャンネルも36chに設定されている

これでゲストOS内でのWi-Fiキャプチャができるようになった.

WindowsでのWi-Fiパケットキャプチャ

前章ではゲストOS側でのキャプチャ+ファイル出力を実施したが,本章ではホスト側でのファイル出力を行う.大まかな流れは以下.

  1. ホスト側からゲストへsshでリモートアクセス
  2. tcpdumpを実行し,標準出力へ出力
  3. ホスト側でtsharkを起動.入力インターフェイスは標準入力

準備:ホスト側…sshクライアントの導入 ゲスト側…visudoの設定

sshでのログインをワンライナーで実施したいので,ホスト側にsshクライアントソフトPuttyをインストールする.
https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.78-installer.msi

次に,sshログイン後にtcpdumpをパスワード無しで実行したいので,ゲスト側のターミナルで以下の操作を行う.

sudo visudo

/etc/sudoers.tmpというファイルを編集できるので,

kali ALL=(ALL) NOPASSWD: /usr/bin/tcpdump

という記述を追加して保存.

キャプチャ実施

Windowsのコマンドプロンプトから下記1~3のコマンドを一括で実行する.

1.ホスト側からゲストへsshでリモートアクセス

{PuTTYのPath}\plink.exe kali@192.168.0.100 -pw kali -batch

-pwでパスワード指定.-batchを入れないとコマンドを打った後にキー押下を要求されて変なことになる.

2.tcpdumpを実行し,標準出力へ出力

sudo tcpdump -i wlan0 -w -

-w -→標準出力へパケットを出力.

3.ホスト側でtsharkを起動.入力インターフェイスは標準入力

{tsharkのPath}\tshark -i - -w {保存先フォルダのPath} -b filesize:1000

-i -→標準出力からキャプチャ.-b filesize:1000で1000[KB]ずつキャプチャファイルを保存.

以下のようなコマンドを打てばOK.2と3のコマンドを|で区切れば,2の出力を3の入力として渡せる.

{PuTTYのPath}\plink.exe kali@192.168.0.100 -pw kali -batch ; sudo tcpdump -i wlan0 -w - | {tsharkのPath}\tshark -i - -w {保存先フォルダのPath}\capture.pcapng -b filesize:1000

以下のようにうまくリングバッファで保存できている.

まとめ

WindowsPCでもVirtualBox+kali Linuxとssh+WiresharkでリングバッファでのWi-Fiパケットキャプチャができた.リングバッファでなくてよいならWiresharkの追加機能であるsshdumpとかもある.

今回のシステム概要

補足

*1:iwconfigでの呼称.

*2:Eye P.Aなど,独自のWi-Fiモジュール用ドライバを用いてモニターモードキャプチャできるソフト(有料)を用いる方法もある.

コメント

  1. maniac より:

    good!!!

タイトルとURLをコピーしました