Following on from Darren’s series of blogs on bash I thought I would add a hidden gem.
The command line airport tool allows you to scan for Wi-Fi networks and sniff a Wi-Fi interface amongst others. The tool is buried deep in the System.
Although there is a man page it doesn’t contain any information, but if you type airport and hit return it will display a help screen.
To scan for networks…
bash-3.2# ./airport -s SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group) NetgearJohnG e0:46:9a:13:9a:e2 -62 1 N -- WPA(PSK/TKIP/TKIP) BTHomeHub2-WPQ7 00:24:2c:70:c0:23 -69 7 Y -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP) BTWiFi-with-FON 02:24:2c:70:c0:25 -58 7 Y -- NONE BTWiFi 02:24:2c:70:c0:24 -59 7 Y -- NONE BTHub3-6GN3 00:fe:f4:6a:7b:e0 -84 6 Y -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP) Jagernet3 00:1d:68:ec:bc:13 -49 4 N -- WEP
To sniff the current network…
bash-3.2# ./airport sniff Capturing 802.11 frames on en0. ^C
ctrl c to end the capture, the file will then be saved to /tmp
Session saved to /tmp/airportSniffk5Q1it.cap
To read the captured file you can use tcpdump…
tcpdump -r airportSniffk5Q1it.cap