Whenever I try to use airmon-ng start wlan0, only the same thing as executing airmon-ng check happens, so mon0 isn't created.
Here are dumps of what happened, when I entered ifconfig and iwconfig:
ifconfig
lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 22 bytes 1316 (1.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 22 bytes 1316 (1.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099 mtu 1500 ether 00:e0:4c:72:00:1e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
iwconfig
wlan0 unassociated Nickname:"rtl_wifi" Mode:Managed Access Point: Not-Associated Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0lo no wireless extensions.
eth0 no wireless extensions.
If you need any more info to solve the problem, just ask
3 Answers
Do your wireless chipset and drivers support monitor mode? You can check with this command:
iw [your-wifi-adaptor-eg-phy0] info
or this
iw list
if you're unsure.
Posting that info will help. Here's an example of a snippet from my output: Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * mesh pointAs you can see, the chipset on my machine would support it.
After checking using iw list and confirming it has monitor mode listed in there.
If monitor mode is listed then try iw config wlan0 mode monitor and this should put your wlan0 into monitor mode.
While i can only speak from Arch experience and not Kali, airmon-ng start <interface name> would cause the intended interface's name to change to be <interface name>mon . E.g wlan0mon (with 'mon' having then been postfixed to the original interface name)
E.g if the interface intended to be used was named wlp1s0u1u2 or wlan0 , it would/should in most cases result in becoming/creating wlp1s0u1u2mon or wlan0mon, and not necessarily mon0.
(As documented on )
"As you can see, it created a monitor mode interface called wlan0mon"
(And from current airmon-ng script source code effective line. (regarding how it sets monitor mode))
iw phy ${PHYDEV} interface add ${1}mon type monitor
which, depending on number of existing physical wifi devices and naming convention used, might translate to something like:
iw phy
phy0interface addwlan0montype monitor
*(In a case where wlan0 is the physical wifi device phy0)
(snipped from iw help output)
[iw] phy <phyname> interface add <name> type <type>And although mon0 could of course be set to be the 'name' by running the command manually; It is not how the airmon-ng script does it..)*
Regardless, ifconfig -a aught to list any existing interfaces, and their names, even if they are "down"/inactive/turned off.
Other than that, nonzyro's answer should first be tested, to check if the device even reports supporting monitor mode
1