[SIZE="4"]"What is the best card?!" TUTORIAL
[SIZE="1"]This tutorial is (only slightly) modified from the Aircrack-ng compatible cards tutorial found here
. The tutorial was originally written toward finding a compatible card to use with Aircrack-ng, but we get many such questions here on the forums relating to numerous tools.[/SIZE]
Many users come into the forums asking: what is the best wireless card? A cursory search
of the forums will find many such threads. Answering this questions involves some work on your part. It is not as easy as posting the question on the forum and waiting for an answer. If you do not do your homework first, no help will be provided. On the other hand, if you in fact do your homework properly, people will make every effort to help you.
Also, understand that there is not likely one card that will do it all
. You may (and will likely) need multiple cards to achieve multiple tasks.
Here is the basic procedure to determine what is the best wireless card for you:
1. Determine your requirements and constraints
2. Learn the basics of a wireless card
3. Determine the chipset
4. Verify the chipset capabilities
5. Determine the drivers and patches required
6. Select a card
Notice that "select a card" is listed last. If you come into the forums asking why your ABC card doesn't inject, you're not going to get very far.
[SIZE="4"]1. Determine your requirements and constraints
First decide if you simply want to listen to wireless network traffic or to both listen to and inject packets. It is important to realize that at this point in time, Windows can only be used for listening to network traffic. Windows cannot inject data packets. This is a fundamental limitation. As well, there are far fewer cards compatible with Windows.
Depending on the card/chipset, Linux gives you the ability to both listen to and inject packets.
Another point to note is that USB devices have much less support then other hardware formats. USB support is very limited.
So at this point you need to have decided:
*Which operating system you plan to use
*Your prefered hardware format (PCI, PCMCIA, USB, etc.)
*Which features you require (listening, injection)
These will be constraints later on in this tutorial.[SIZE="4"]2. Learn the basics of a wireless card[/SIZE]
There are two manufacturers involved with wireless cards. The first is the brand of the card itself. Examples of card manufacturers are Netgear, Ubiquiti , Linksys and D-Link. There are many, many manufacturers beyond the examples give here.
The second manufacturer is who makes the wireless chipset within the card. This is the most important company to know. Unfortunately, it is sometimes the hardest to determine. This is because card manufacturers generally don’t want to reveal what they use inside their card. However, for our purposes, it is critical to know the wireless chipset manufacturer. Knowing the wireless chipset manufacturer allows you to determine which operating systems are support, software drivers you need and what limitations are associated with them.
It is a very important to realize that the difference between the two manufacturers. Just knowing the card manufacturer and model does not allow you to proceed. What you really need to know is the chipset. The next step provides information about how to determine the chipset in your card or the card you are planning to purchase.[SIZE="4"]3. Determine the chipset[/SIZE]
Ok, this is the really hard part. I will tell you up front that you need to do your research well in this step to be successful. On the other hand, if you are lucky, your card is already listed in the supported card section and this gives you all the information required.
If this is not the case, then you first need to determine what wireless chipset your card uses. This can be done by one or more of these techniques:
*Search the internet for “<your card model> chipset” or “<your card model> linux”. Quite often you can find references to what chipset your card uses and/or other people’s experiences. This is by far the easiest and most successful way of determing the chipset. Be sure to check a number of search entries to ensure they are consistent.
*Search the forums
*You may also have a look at windows driver file names, it’s often the name of the chipset or the driver to use.
*Check the card manufacturers page. Sometimes they say what chipset they use.
*On some cards such as PCI, you can physically see the wireless chip. Look for the brand such as Atheros, Texas Instruments, etc. The chipset number can also quite often be observed.
*All wireless devices sold in the United States must be Federal Communications Commission (FCC) approved. These same devices are typically sold around the world. Each device must have a FCC identification number (ID) on the board itself. If you have this ID then you can use the FCC ID Search to lookup detailed information on the device. It will give you the manufacturer, model and usually the chipset. The Equipment Authorization information page provides general information.
Here are some other resources to assist you in determine what chipset you have:
*Madwifi compatibility list
*Wireless Adapter Chipset Directory
*Atheros chipsets based wireless 802.11a/b/g devices
*WLAN Adapter Chipset Directory
*Atheros Communications Total 802.11 Product Search
and details about wireless adapters
Card manufacturers add to the confusion by keeping the same card model number yet changing the chipset inside them. This is where you will hear the term “card revision” or “card version”. D-Link seems to do this a lot. So first determine if this applies to your card. The version is typically found stamped on the card and located near the serial number or MAC addess. See this D-Link page for an example of the same card with different revisions.
So when you are determining the chipset for your card, make sure to include the revision/version when doing a search. For example, search for “DWL-G650 C1 chipset” and not just “DWL-G650”. The revision/version is extremely important.
If you are running linux, there are a variety of methods to obtain card information and possibly determine the chipset. Here are some methods:
*The “dmesg” command can quite often contain detailed messages indicating what card was detected and the chipset.
*If the card is an ISA card, you are usually out of luck.
*If the card is a PCI card, you need to use the command “lspci” to display the card identification strings.
*If the hardware is a USB dongle, you need to use the command “lsusb” to display the dongle identification strings. In some case, “lsusb” doesn’t work (for example if usbfs is not mounted), and you can get the identification strings from the kernel log using “dmesg” (or in /var/log/messages).
*If the card is a Cardbus card (32 bits Pcmcia), and if you are using kernel 2.6.X or kernel 2.4.X with the kernel Pcmcia subsystem, you need to use the command “lspci” to display the card identification strings. If the card is a Cardbus card (32 bits Pcmcia), and if you are using an older kernel with the standalone Pcmcia subsystem, you need to use the command “cardctl ident” display the card identification strings. Try both and see what comes out.
*If the card is a true Pcmcia card (16 bits), and if you are using kernel 2.6.14 or later, you need to use the command “pccardctl ident” to display the card identification strings. If the card is a true Pcmcia card (16 bits), and if you are using an older kernel, you need to use the command “cardctl ident” display the card identification strings. Note that cardmgr will also write some identification strings in the message logs (/var/log/daemon.log) that may be different from the real card identification strings.
*The “lsmod” command can be used to see the loaded modules. If the wireless card was auto-detected then you can sometimes work backwards based on the loaded modules to determine the chipset.
Even if you are running Windows, you can boot from a live distro and use the linux techniques above.
In a Windows environment, try hardware analysis tools such HWiNFO to obtain the chipset information.
If you are unable to determine which chipset your card has, then you are out of luck. Your options are to purchase a card from the compatible list or to research and identify a card which matches your criteria then purchase it.
Once you know the chipset, then proceed to the next step.[SIZE="4"]4. Verify the chipset capabilities[/SIZE]
Depending on your requirements and constraints, determine what features the chipset provides for the particular operating system that you will be using.
If this matches your requirements, great. If not, the consider using another operating system or using a different card.
If your prime operating system is Windows, and you like the linux features, consider using a live linux distro. This way you have the best of both worlds.
Proceed to the next step of determining the drivers and patches required.[SIZE="4"]5. Determine the drivers and patches required[/SIZE]
For linux, generally, you need to patch the drivers in order to get the advanced features such as monitor mode and injection capability. If you don’t have the skills or experience to patch your system, consider using a live linux distro such as Backtrack2
which already has all the patched drivers.[SIZE="4"]6. Select a card[/SIZE]
Conversely, if you know what chipset provides the features you want, you can use a compatible card list (for the program of your choice) to find a card that uses that particular chipset.
As well, this tutorial will have given you the knowledge to determine if a particular card you are considering purchasing will provide you the features you want.