周囲にいる無線 LAN 子機、親機の通信を観察。
前提
- CentOS Linux release 7.2.1511
- USB の無線 LAN 子機が
wlan0
として OS から認識されている
# lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070] # iwconfig . . . wlan0 IEEE 802.11bgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off # ifconfig . . . wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether da:8d:95:c0:e5:77 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
手順
必要パッケージインストール。
# yum install tcpdump wireless-tools
wlan0
のインタフェースをモニターモードに変更。
# ifconfig wlan0 down # iwconfig wlan0 mode monitor # ifconfig wlan0 up
Mode:Managed
→ Mode:Monitor
に変わっていることを確認。
# iwconfig . . . wlan0 IEEE 802.11bgn Mode:Monitor Frequency:2.412 GHz Tx-Power=20 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off
Channel Hopping (無線 LAN のチャンネルを素早く切り替えて、擬似的に全チャンネルを監視する) 用のスクリプトを配置して実行。
hopper.sh
#!/bin/bash while true do for channel in {1..14} do iwconfig wlan0 channel $channel sleep 0.01s done done
# ./hopper.sh &
tcpdump
を実行するとなんかダンプされるはず。
(環境によってはたくさん流れるので、適宜MACアドレスで grep
とかすると良い。)
# tcpdump -vv -i wlan0 -e | grep -i xx:xx:xx:xx:xx:xx tcpdump: listening on wlan0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 262144 bytes 12:39:44.856717 1.0 Mb/s 2412 MHz 11b -55dBm signal antenna 1 Protected 0us xx:xx:xx:xx:xx:xx (oui Unknown) BSSID:xx:xx:xx:xx:xx:xx (oui Unknown) SA:xx:xx:xx:xx:xx:xx (oui Unknown) Data IV:e72808 Pad 20 KeyID 1 . . .