How to know my wireless card has injection enabled?

I am playing around with aircrack.

And was trying to see whether my wireless card on my laptop can pass the injection test

And I end up seeing the following... does it mean my wireless card is not able to run aircrack?

root@myubuntu:/home/myubuntu# iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      IEEE 802.11bg  ESSID:""  Nickname:""
          Mode:Managed  Frequency:2.437 GHz  Access Point: Not-Associated   
          Bit Rate:54 Mb/s   Tx-Power:24 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=5/5  Signal level=0 dBm  Noise level=-57 dBm
          Rx invalid nwid:0  Rx invalid crypt:781  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

root@myubuntu:/home/myubuntu#  aireplay-ng -9 eth1
ioctl(SIOCSIWMODE) failed: Invalid argument

ARP linktype is set to 1 (Ethernet) - expected ARPHRD_IEEE80211,
ARPHRD_IEEE80211_FULL or ARPHRD_IEEE80211_PRISM instead.  Make
sure RFMON is enabled: run 'airmon-ng start eth1 <#>'
Sysfs injection support was not found either.

root@myubuntu:/home/myubuntu# 

Solution 1:

From the output you displayed above, your current driver is not capable of packet injection. This is because you probably used the default (closed-source) drivers, many of which do not support injection.

You need to use the compat-wireless package, to compile your own drivers and use those instead (after uninstalling your current drivers). See this page from the Aircrack-ng Wiki which details how to compile your own drivers, as well as patch them to allow packet injection. At minimum, you need the mac80211.compat08082009.wl_frag+ack_v1.patch patch, as detailed in the wiki article linked above. Note that you should call the driver select script before compiling/installing.

As a side note, these drivers will also change the interface name from eth1 to wlan0 (which is also a lot more intuitive name). Depending on your card, the monitor interface name might be mon0 (increasing in number with each additional monitoring interface you create with airmon-ng start).

Solution 2:

airmon-ng start eth1

This will create a new interface: mon0. You can then start your tools pointing to the new interface; i.e.

airodump-ng start mon0

Though the first poster is correct in saying you have wrong drivers – find the open source drivers that will change your driver name to wlan0 as the aircrack suite is a wireless pen-testing tool environment. There are other tools for LAN testing.

Solution 3:

I was having no injection results. The solution was to invoke airmon as the following: airmon-ng start wlan0 <channel>. That will lock the mon0 interface to the channel <channel>. After that, I did a test and I got the result: Injection is working!

That is documented in the wiki:

Make sure the card(s) are on the same channel as your AP and locked on
this channel. When putting your card into monitor mode, be sure to specify
the channel via airmon-ng. You can use iwconfig to confirm which channel your
card is currently on. The injection test will fail if your card and access point
are on different channels.

Make sure your card is not channel hopping. A very common mistake is to have
airodump-ng running in channel hopping mode. If you use airodump-ng, be sure 
to use the ”-c <channel>” option. Additionally, ensure all network managers  
and similar are killed off.

Solution 4:

Running KALI 2.0 (should all download btw) on an old HP 2000

Two wireless cards I use:

  1. EDIMAX EW-7811Un - (phy2 wlan1 rtl8192cu Edimax Technology Co., Ltd EW-7811Un 802.11n [Realtek RTL8188CUS])

2.ALFA AWUS036NH - (phy3 wlan2 rt2800usb Ralink Technology, Corp. RT2870/RT3070)

How to fix issue:

  1. ifconfig (find the you would like to use/ place in monitor mode)
  2. iwconfig interface (take note if Mode:MANAGED or MONITOR)

    root@h0st:~# iwconfig wlan2

    wlan2 IEEE 802.11bgn ESSID:off/any
    Mode:Managed Access Point: Not-Associated Tx-Power=30 dBm
    Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off

  3. ifconfig (interface) down

  4. iwconfig (interface) mode monitor
  5. ifconfig (interface) up
  6. iwconfig (interface) (to check)

root@h0st:~# ifconfig wlan2 down

root@h0st:~# iwconfig wlan2 mode monitor

root@h0st:~# ifconfig wlan2 up

root@h0st:~# iwconfig wlan2

wlan2 IEEE 802.11bgn Mode:Monitor Frequency:2.412 GHz Tx-Power=30dBm
Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off

  1. airodump the (interface)

root@h0st:~# airodump-ng wlan2

And there you have it! Hope this helps alot of people with the same issues I had. This places my WLAN2 ALFA into monitor mode. I could repeat the same process to place my WLAN1 EDIMAX into monitor mode aswell, or just one of them.