1. 问题描述
在使用aireplay-ng发起攻击时出现如下提示
root@zxp-Ubuntu:~# aireplay-ng -0 0 -a E4:D3:32:5F:6E:3C -c 28:E3:1F:C0:83:22 mon0
22:26:18 Waiting for beacon frame (BSSID: E4:D3:32:5F:6E:3C) on channel -1
22:26:18 Couldn’t determine current channel for mon0, you should either force the operation with —ignore-negative-one or apply a kernel patch
笔者测试环境如下:
Ubuntu14.04 64位(内核3.13.0-32-generic)
aircrack-ng 1.1
rtl8187b(系统默认驱动)。
2.问题分析
-
打补丁?
由于笔者以前曾使用过老版本的ubuntu系统,记得需要给网卡打补丁,所以就打开了aircrack-ng的驱动页面,但在页面上发现如下描述:现在有两个驱动家族——ieee80211和mac80211。但mac80211已经大范围地代替了ieee80211。由于mac80211的稳定性和对注入的支持,它应该作为驱动程序的首选。注意从内核版本2.6.25起mac80211就被很好地支持了。
几乎所有的非mac80211驱动需要打过补丁才能支持注入。但mac80211驱动只有在发起fragmentation攻击时才需要打补丁。其他攻击不需要打补丁就能够工作。
——原文请点击《Installing Drivers》 -
驱动类型
由上面可以得知我的驱动很有可能是mac80211,如果确实是的话那我也就不用打补丁了。但如何区分呢?
使用命令airmon-ng查看root@zxp-Ubuntu:~# airmon-ng
Interface Chipset Driver mon0 RTL8187 rtl8187 - [phy1]
如果Driver值是r8187说明使用的是ieee80211驱动,是rtl8187说明使用的是mac80211。其他网卡请查看采用mac80211的驱动列表。
也可使用命令lsmod | grep 'mac80211'查看root@zxp-Ubuntu:~# lsmod | grep mac80211
mac80211 630653 2 ath9k,rtl8187
-
问题深入
既然我的网卡驱动是mac80211的那为什么会报错呢?在aircrack-ng的论坛上有人说关闭network-manager就能解决这个问题,笔者尝试了下,确实可以root@zxp-Ubuntu:~# service network-manager stop
network-manager stop/waiting
root@zxp-Ubuntu:~# aireplay-ng -0 0 -a E4:D3:32:5F:6E:3C -c 28:E3:1F:C0:83:22 mon0
23:29:00 Waiting for beacon frame (BSSID: E4:D3:32:5F:6E:3C) on channel 1
23:29:01 Sending 64 directed DeAuth. STMAC: [28:E3:1F:C0:83:22] [ 6|26 ACKs]
23:29:01 Sending 64 directed DeAuth. STMAC: [28:E3:1F:C0:83:22] [ 5|20 ACKs]
23:29:02 Sending 64 directed DeAuth. STMAC: [28:E3:1F:C0:83:22] [ 9|10 ACKs] -
原因
Ubuntu引起’channel -1’的原因如下:
Ubuntu会设置无线网卡的频道为-1来扫描可用的无线接入点(AP),但在扫描结束后并没有更改网卡的频道。当使用aircrack-ng监听握手包时,在发送deauth攻击前使用命令ifconfig wlan1 down关闭network-manager对网卡的管理。这会强制aircrack为网卡设置到正确的频道上,然后再发送deauth攻击。
——原文请点击此处
3. 问题解决
解决方法如下:
- 安装compat-wireless,此方法比较麻烦
- 关闭network-manager,但这会关闭所有网卡
- 发起攻击前使用ifconfig wlan1 down 与关闭network-manager原理相同,都是要关闭系统对网卡的管理。
- 如果没有大问题可以使用aircrack-ng的—ignore-negative-one开关