Tcpdump/Wireless/Linux
From charlesreid1
This page covers how to use the tcpdump utility for wireless packet capture on Linux machines, and how to deal with channels.
Up one level: Tcpdump/Wireless
Contents
Monitor Mode
You should only put your card in monitor mode if you want to capture all the traffic around you. If you are using tcpdump to diagnose a wireless connection, you won't want to put your card into monitor mode.
If you put your card into monitor mode, you will lose any connections to wireless networks that you have with that card.
Steps
Put your card into monitor mode with these steps:
iwconfig # list all devices ifconfig wlan1 down # assuming wlan1 is wireless iwconfig wlan1 mode monitor # put into monitor mode ifconfig wlan1 up # bring wlan1 online
Setting the Channel
To set the channel your wireless card is on (regardless of whether you are in monitor mode or not), you can use a few methods.
Single Channel from Shell Script
To set the wireless card to listen to a single channel from the command line, use iwconfig. Specify the interface, then the keyword "channel," then the channel number:
$ iwconfig en1 channel 3
Now you can control the channel of the wireless card from a shell script.
You can also use iwlist
to view available channels and see the current channel of the wireless card:
root@kali:~# iwlist frequency wlan0 14 channels in total; available frequencies : Channel 01 : 2.412 GHz Channel 02 : 2.417 GHz Channel 03 : 2.422 GHz Channel 04 : 2.427 GHz Channel 05 : 2.432 GHz Channel 06 : 2.437 GHz Channel 07 : 2.442 GHz Channel 08 : 2.447 GHz Channel 09 : 2.452 GHz Channel 10 : 2.457 GHz Channel 11 : 2.462 GHz Channel 12 : 2.467 GHz Channel 13 : 2.472 GHz Channel 14 : 2.484 GHz lo no frequency information. eth0 no frequency information.
Scanning Channels
If you want to channel-hop, meaning hop from channel to channel listening for a short while on each channel to get a sample of the traffic on that channel, you can do so from a shell script, which gives you more control, or you can use airodump-ng.
If you run airodump-ng and only pass the network interface as an argument, it will hop among all 12 channels with your wireless card. If you run tcpdump, you will get those same channel changes for free.
Channel Hopping with Python
http://charlesreid1.com/wiki/Scapy/AP_Scanner
#!/usr/bin/env python # based on airoscapy.py - Wireless AP scanner based on scapy # Author of airscapy: iphelix import sys, os, signal from multiprocessing import Process from scapy.all import * # Channel hopper def channel_hopper(): while True: try: channel = random.randrange(1,15) os.system("iw dev %s set channel %d" % (interface, channel)) time.sleep(1) except KeyboardInterrupt: break # Capture interrupt signal and cleanup before exiting def signal_handler(signal, frame): p.terminate() p.join() sys.exit(0) if __name__ == "__main__": if len(sys.argv) != 2: print "Usage %s monitor_interface" % sys.argv[0] sys.exit(1) interface = sys.argv[1] # Start the channel hopper p = Process(target = channel_hopper) p.start() # Capture CTRL-C signal.signal(signal.SIGINT, signal_handler)
tcpdump Utility for dumping network traffic
Tcpdump/Wireless · Tcpdump/Wireless/Mac · Tcpdump/Wireless/Linux
|