This is an old revision of the document!
Airodump-ng is used for packet capturing of raw 802.11 frames and is particularly suitable for collecting WEP IVs (Initialization Vector) for the intent of using them with aircrack-ng. If you have a GPS receiver connected to the computer, airodump-ng is capable of logging the coordinates of the found access points. Additionally, airodump-ng writes out a text file containing the details of all access points and clients seen.
usage: airodump-ng <options> <interface>[,<interface>,...] Options: --ivs : Save only captured IVs --gpsd : Use GPSd --write <prefix> : Dump file prefix -w : same as --write --beacons : Record all beacons in dump file --update <secs> : Display update delay in seconds --showack : Prints ack/cts/rts statistics -h : Hides known stations for --showack -f <msecs> : Time in ms between hopping channels --berlin <secs> : Time before removing the AP/client from the screen when no more packets are received (Default: 120 seconds) -r <file> : Read packets from that file -x <msecs> : Active Scanning Simulation --output-format <formats> : Output format. Possible values: pcap, ivs, csv, gps, kismet, netxml Short format "-o" The option can be specified multiple times. In this case, each file format specified will be output. Only ivs or pcap can be used, not both.
Filter options: --encrypt <suite> : Filter APs by cipher suite --netmask <netmask> : Filter APs by mask --bssid <bssid> : Filter APs by BSSID -a : Filter unassociated clients By default, airodump-ng hop on 2.4Ghz channels. You can make it capture on other/specific channel(s) by using: --channel <channels>: Capture on specific channels --band <abg> : Band on which airodump-ng should hop -C <frequencies> : Uses these frequencies in MHz to hop --cswitch <method> : Set channel switching method 0 : FIFO (default) 1 : Round Robin 2 : Hop on last -s : same as --cswitch --help : Displays this usage screen
airodump-ng will display a list of detected access points, and also a list of connected clients (“stations”). Here's an example screenshot:
CH 9 ][ Elapsed: 1 min ][ 2007-04-26 17:41 ][ WPA handshake: 00:14:6C:7E:40:80 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:09:5B:1C:AA:1D 11 16 10 0 0 11 54. OPN NETGEAR 00:14:6C:7A:41:81 34 100 57 14 1 9 11e WEP WEP bigbear 00:14:6C:7E:40:80 32 100 752 73 2 9 54 WPA TKIP PSK teddy BSSID STATION PWR Rate Lost Packets Probes 00:14:6C:7A:41:81 00:0F:B5:32:31:31 51 36-24 2 14 (not associated) 00:14:A4:3F:8D:13 19 0-0 0 4 mossy 00:14:6C:7A:41:81 00:0C:41:52:D1:D1 -1 36-36 0 5 00:14:6C:7E:40:80 00:0F:B5:FD:FB:C2 35 54-54 0 99 teddy
The first line shows the current channel, elapsed running time, current date and optionally if a WPA/WPA2 handshake was detected. In the example above, “WPA handshake: 00:14:6C:7E:40:80” indicates that a WPA/WPA2 handshake was successfully captured for the BSSID.
In the example above the client rate of “36-24” means:
|BSSID||MAC address of the access point. In the Client section, a BSSID of “(not associated)” means that the client is not associated with any AP. In this unassociated state, it is searching for an AP to connect with.|
|PWR||Signal level reported by the card. Its signification depends on the driver, but as the signal gets higher you get closer to the AP or the station. If the BSSID PWR is -1, then the driver doesn't support signal level reporting. If the PWR is -1 for a limited number of stations then this is for a packet which came from the AP to the client but the client transmissions are out of range for your card. Meaning you are hearing only 1/2 of the communication. If all clients have PWR as -1 then the driver doesn't support signal level reporting.|
|RXQ||Receive Quality as measured by the percentage of packets (management and data frames) successfully received over the last 10 seconds. See note below for a more detailed explanation.|
|Beacons||Number of announcements packets sent by the AP. Each access point sends about ten beacons per second at the lowest rate (1M), so they can usually be picked up from very far.|
|# Data||Number of captured data packets (if WEP, unique IV count), including data broadcast packets.|
|#/s||Number of data packets per second measure over the last 10 seconds.|
|CH||Channel number (taken from beacon packets).
Note: sometimes packets from other channels are captured even if airodump-ng is not hopping, because of radio interference.
|MB||Maximum speed supported by the AP. If MB = 11, it's 802.11b, if MB = 22 it's 802.11b+ and higher rates are 802.11g. The dot (after 54 above) indicates short preamble is supported. Displays “e” following the MB speed value if the network has QoS enabled.|
|ENC||Encryption algorithm in use. OPN = no encryption,“WEP?” = WEP or higher (not enough data to choose between WEP and WPA/WPA2), WEP (without the question mark) indicates static or dynamic WEP, and WPA or WPA2 if TKIP or CCMP is present.|
|CIPHER||The cipher detected. One of CCMP, WRAP, TKIP, WEP, WEP40, or WEP104. Not mandatory, but TKIP is typically used with WPA and CCMP is typically used with WPA2. WEP40 is displayed when the key index is greater then 0. The standard states that the index can be 0-3 for 40bit and should be 0 for 104 bit.|
|AUTH||The authentication protocol used. One of MGT (WPA/WPA2 using a separate authentication server), SKA (shared key for WEP), PSK (pre-shared key for WPA/WPA2), or OPN (open for WEP).|
|ESSID||Shows the wireless network name. The so-called “SSID”, which can be empty if SSID hiding is activated. In this case, airodump-ng will try to recover the SSID from probe responses and association requests. See this section for more information concerning hidden ESSIDs.|
|STATION||MAC address of each associated station or stations searching for an AP to connect with. Clients not currently associated with an AP have a BSSID of “(not associated)”.|
|Lost||The number of data packets lost over the last 10 seconds based on the sequence number. See note below for a more detailed explanation.|
|Packets||The number of data packets sent by the client.|
|Probes||The ESSIDs probed by the client. These are the networks the client is trying to connect to if it is not currently connected.|
Its measured over all management and data frames. That's the clue, this allows you to read more things out of this value. Lets say you got 100 percent RXQ and all 10 (or whatever the rate) beacons per second coming in. Now all of a sudden the RXQ drops below 90, but you still capture all sent beacons. Thus you know that the AP is sending frames to a client but you can't hear the client nor the AP sending to the client (need to get closer). Another thing would be, that you got a 11MB card to monitor and capture frames (say a prism2.5) and you have a very good position to the AP. The AP is set to 54MBit and then again the RXQ drops, so you know that there is at least one 54MBit client connected to the AP.
It means lost packets coming from the client. To determine the number of packets lost, there is a sequence field on every non-control frame, so you can subtract the second last sequence number from the last sequence number and you know how many packets you have lost.
Possible reasons for lost packets:
To minimize the number of lost packets, vary your physical position, type of antenna used, channel, data rate and/or injection rate.
To speed up the cracking process, run aircrack-ng while you are running airodump-ng. You can capture and crack at the same time. Aircrack-ng will periodically reread the captured data so it is always working with all the available IVs.
To limit the data capture to a single AP you are interested in, include the “- -bssid” option and specificy the AP MAC address. For example: “airodump-ng -c 8 - -bssid 00:14:6C:7A:41:20 -w capture ath0”.
To minimize disk space used by the capture, include the “- -ivs” option. For example: “airodump-ng -c 8 - -bssid 00:14:6C:7A:41:20 -w capture - -ivs ath0”. This only stores the initialization vectors and not the full packet. This cannot be used if you are trying to capture the WPA/WPA2 handshake or if you want to use PTW attack on WEP.
Lets say, for example, you wish to capture packets for all Cisco-Linksys APs where the BSSID starts with “00:1C:10”.
You specify that starting bytes you wish to match with the “-d” / “–bssid” option and pad with zeroes to a full MAC. Then use “-m” / “–netmask” option to specify which part of the BSSID you wish to match via “F”s and pad with zeroes to a full MAC.
So since you want to match “00:1C:10”, you use “FF:FF:FF”.
airodump-ng -d 00:1C:10:00:00:00 -m FF:FF:FF:00:00:00 wlan0
The “–channel” (-c) option allows a single or specific channels to be selected.
Example of a single channel:
airodump-ng -c 11 wlan0
For cards which needs to be reset when on a single channel:
airodump-ng -c 11,11 wlan0
Example of selected channels:
airodump-ng -c 1,6,11 wlan0
Each time airodump-ng is run with the option to write IVs or full packets, a few text files are also generated and written to disk. They have the same name and a suffix of “.csv” (CSV file), “.kismet.csv” (Kismet CSV file) and “.kismet.netxml” (Kismet newcore netxml file).
The CSV file contains the details of all access points and clients seen. See kismet documentation for more details about the kismet CSV and netxml.
Here is an example:
BSSID, First time seen, Last time seen, channel, Speed, Privacy, Cipher, Authentication, Power, # beacons, # IV , LAN IP, ID-length, ESSID, Key 00:1C:10:26:22:41, 2007-10-07 12:48:58, 2007-10-07 12:49:44, 6, 48, WEP , WEP, , 171, 301, 0, 0. 0. 0. 0, 5, zwang, 00:1A:70:51:B5:71, 2007-10-07 12:48:58, 2007-10-07 12:49:44, 6, 48, WEP , WEP, , 175, 257, 1, 0. 0. 0. 0, 9, brucey123, 00:09:5B:7C:AA:CA, 2007-10-07 12:48:58, 2007-10-07 12:49:44, 11, 54, OPN , , , 189, 212, 0, 0. 0. 0. 0, 7, NETGEAR, Station MAC, First time seen, Last time seen, Power, # packets, BSSID, Probed ESSIDs 00:1B:77:7F:67:94, 2007-10-07 12:49:43, 2007-10-07 12:49:43, 178, 3, (not associated) ,
If you have a laptop with a builtin wireless card, ensure it is “turned on / enabled” in the bios
Does your card works in managed mode? If not, the problem is not with airodump-ng. You need to get this working first.
See if this madwifi-ng web page has information that may be helpful.
Although it is not very “scientific”, sometimes simply unloading then reloading the driver will get it working. This is done with the rmmod and modprobe commands.
Also see the next troubleshooting tip.
Make sure there are no other VAPs running. There can be issues when creating a new VAP in monitor mode and there was an existing VAP in managed mode.
You should first stop ath0 then start wifi0:
airmon-ng stop ath0 airmon-ng start wifi0
wlanconfig ath0 destroy wlanconfig ath create wlandev wifi0 wlanmode monitor
This is happening because your driver doesn't discard corrupted packets (that have an invalid CRC). If it's a ipw2100 (Centrino b), it just can't be helped; go buy a better card. If it's a Prism2, try upgrading the firmware.
The most common cause is that a connection manager is running on your system and takes the card out of monitor mode. This is a very common problem especially with the Ubuntu distribution. Be sure to stop all connection managers prior to using the aircrack-ng suite.
Use “killall NetworkManager && killall NetworkManagerDispatcher” to do this.
As well, make sure that wpa_supplicant is not running. Another potential cause is the PC going to sleep due to power saving options. Check your power saving options.
The madwifi-ng driver for the atheros chipset contains a bug in releases up to r2830 which causes airodump-ng in channel hopping mode to stop capturing data after a few minutes. The fix is to use r2834 or above of the madwifi-ng drivers.
You will sometimes see “<length: ?>” as the SSID on the airodump-ng display. This means the SSID is hidden. The “?” is normally the length of the SSID. For example, if the SSID was “test123” then it would show up as “<length: 7>” where 7 is the number of characters. When the length is 0 or 1, it means the AP does not reveal the actual length and the real length could be any value.
To obtain the hidden SSID there are a few options:
wlan.fc.type_subtype == 0 (association request) wlan.fc.type_subtype == 4 (probe request) wlan.fc.type_subtype == 5 (probe response)
There are two workarounds:
If the top of your airodump screen looks something like:
CH 6 ][ Elapsed: 28 s ][ 2008-09-21 10:39 ][ fixed channel ath0: 1
Then this means you started started airodump-ng with a fixed channel parameter (-c / –channel) but some other process is changing the channel. “CH 6” on the left is the channel that was specified when airodump-ng was started. “fixed channel ath0: 1” on the right indicates that ath0 was used when airodump-ng was started but the interface is currently on channel 1 (instead of channel 6). You might also see this channel number changing indicating that channel scanning is taking place.
It is critical that the root cause of the problem be eliminated and then airodump-ng restarted again. Here are some possible reasons and how to correct them:
It can also means that you cannot use this channel (and airodump-ng failed to set the channel). Eg: using channel 13 with a card that only supports channels from 1 to 11.
You ran airodump-ng and now cannot find the output files.
First, make sure you ran airodump-ng with the option to create output files. You must include -w or –write plus the file name prefix. If you fail to do this then no output files are created.
By default, the output files are placed in the directory where you start airodump-ng. Before starting airodump-ng, use “pwd” to display the current directory. Make a note of this directory so your return to it a later time. To return to this directory, simply type “cd <full directory name including the full path>”.
To output the files to a specific directly, add the full path to the file prefix name. For example, lets say you want to output all your files to “/aircrack-ng/captures”. First, create /aircrack-ng/captures if it does not already exist. Then include “-w /aircrack-ng/captures/<file prefix>” on your airodump-ng command line.
To access your files later when running aircrack-ng, either change to the directory where the files are located or prefix the file name with the full path.
Obtain the file from http://www.dll-files.com/dllindex/dll-files.shtml?msvcr70 or it is also located in the bin directory of the zip file of the Windows version of aircrack-ng suite. Typically, it should be located in C:\<windows root directory>\system32.
Ensure you are using the correct drivers for your particular wireless card. Plus the correct Wildpackets driver. Failure to do so may result in your PC freezing when running airodump-ng.
The powersaver option on the card can also cause the application to freeze or crash. Try disabling this option via the “Properties” section of your card. Another kludge is to keep moving your mouse every few minutes to eliminate the powersaver option from kicking in.
The following fix has reportedly worked for some people: What you have to do is right click on airodump-ng.exe, select properties, compatibility, and check run in compatibility mode for Windows XP. Also, check the box at the bottom that says to run as administrator.
Peek.sys being zero bytes is normal. You can proceed to use airodump-ng.
This file is created by airodump-ng to prevent the driver dialog box from being shown each time the program is run.
You may have a DNS problem or there is an Internet connectivity problem. Manually download the following files and place them in the same directory as the airodump-ng.exe file.
If you receive one or more of these errors:
This means the peek.dll and/or peek5.sys file are missing from the directory which contains the airodump-ng.exe file or are corrupted. See the previous troubleshooting entry for instructions on how to download the files.
If airodump-ng is not functioning, it cannot detect your card or you get the blue screen of death, review the instructions for installing the software and drivers. If you cannot identify the problem, redo everything from scratch. Also check the this tutorial for ideas.
Airodump-ng or any “user space” program cannot produce a bluescreen, it is the driver which is the root cause. In most cases, these bluescreen failures cannot be resolved since these drivers are closed source.