我通过 Aircrack 购买了一台用于教育目的的 Alfa AWUS1900 WLAN 设备,因为它支持 Linux,并且一些帖子/评论证实了这一点。遗憾的是我无法让驱动程序在监控模式下工作,尤其是在新的 5er 内核上。
我的设置
该笔记本电脑运行带有 VirtualBox 的 Ubunu 18.04.3 LTS,我在其中创建了一个虚拟机最新的 Kali Linux,撰写本文时为 2019.3。 VirtualBox 安装了 USB 2 支持的扩展包。它以 root 身份运行以进行 USB 转发:
我的芯片组
由于我阅读了有关用户为同一设备类型获取不同芯片组的评论,因此我插入设备并验证是否具有RTL8814AU
芯片组:
root@kali:~# lsusb | grep -E "Realtek*"
Bus 001 Device 002: ID 0bda:8813 Realtek Semiconductor Corp. RTL8814AU 802.11a/b/g/n/ac Wireless Adapter
不工作的司机
在安装任何驱动程序之前创建了一个快照,并且在每个不工作的驱动程序之后,我返回到原始快照以获得一个干净的系统,并确保旧的驱动程序不会影响当前的系统。
zebulon2/rtl8814au
这位司机直接使用 Kali Linux 快照映像而不升级软件包时可以部分工作(有许多更新可用)。设备被检测到,网络管理器向我显示可用的 AP 以及使用的nmcli dev wifi
命令。但设备处于托管模式:
root@kali:~/rtl8814au# iw dev | grep type
type managed
我无法切换到监控模式:
root@kali:~/rtl8814au# airmon-ng check kill
Killing these processes:
PID Name
831 wpa_supplicant
root@kali:~/rtl8814au# airmon-ng start wlan0
PHY Interface Driver Chipset
phy0 wlan0 rtl8814au Realtek Semiconductor Corp. RTL8814AU 802.11a/b/g/n/ac
ERROR adding monitor mode interface: command failed: Operation not supported (-95)
即使没有ifconfig
:
root@kali:~/rtl8814au# ifconfig wlan0 down
root@kali:~/rtl8814au# iwconfig wlan0 mode monitor
Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Operation not permitted.
dmesg
进入监控模式时的批次条目:
[ 940.905187] RTL871X: ERROR HalPwrSeqCmdParsing: Fail to polling Offset[0x6]=00
[ 940.905191] RTL871X: nolinked power save leave
有些帖子提到了一个错误,airmon-ng
但说它应该适用于ifconfig
.
Realtek-rtl88xxau-dkms
根据kali 论坛中的这个帖子realtek-rtl88xxau-dkms
,存储库中有一个名为的包,其中应包含所有必需的驱动程序。所以我安装了他的依赖项就像这里描述的那样
apt install dkms &&
apt-get install bc &&
apt-get install build-essential &&
apt-get install linux-headers-$(uname -r)
然后使用驱动程序包apt-get install realtek-rtl88xxau-dkms
并将其插入我的 USB WiFi 设备。我想知道我收到一些关于缺少模块或文件名的错误,但我不清楚到底缺少什么以及是否需要它(因为它说安装已完成):
88XXau.ko:
Running module version sanity check.
modinfo: ERROR: missing module or filename.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/5.2.0-kali3-amd64/updates/
depmod....
DKMS: install completed.
dmesg
检测到新设备,但几秒钟后它就断开了:
[ 1080.147957] usb 1-1: new high-speed USB device number 4 using ehci-pci
[ 1080.595125] usb 1-1: New USB device found, idVendor=0bda, idProduct=8813, bcdDevice= 0.00
[ 1080.595131] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1080.595135] usb 1-1: Product: 802.11ac NIC
[ 1080.595136] usb 1-1: Manufacturer: Realtek
[ 1080.595137] usb 1-1: SerialNumber: 123456
[ 1087.695407] usb 1-1: USB disconnect, device number 4
第一次运行时,这就是我得到的一切。但第二种方法也显示了这个 VirtualBox 错误:
Aircrack-ng/rtl8812au
我不确定是否Aircrack-ng/rtl8812au与realtek-rtl88xxau-dkms
apt-package 的驱动程序相同,所以我./dkms-install.sh
在那里尝试过,但也没有运气,只是类似的问题。
尽管 Kali Linux 的快照已经过时了几个月(普通安装有超过 800 个软件包更新),但似乎没有内核更新。以下内核版本在更新所有软件包之前和之后是相同的:
Linux kali 5.2.0-kali2-amd64 #1 SMP Debian 5.2.9-2kali1 (2019-08-22) x86_64 GNU/Linux
答案1
我可以重现该问题是由于 VirtualBox 中提供了错误的 USB 类型引起的,这是由于以下错误造成的:我的 chromebook 有两个 USB 端口。两者都是黑色的,所以我认为它们是 USB 2.0。 USB 设备支持 3.0,但应该降级到我的 2.0 端口。
为了确定这一点,我在主机上运行
lsusb | grep Realtek
Bus 002 Device 004: ID 0bda:8813 Realtek Semiconductor Corp.
这给了我总线和设备 ID 来查找规范:
sudo lsusb -D /dev/bus/usb/002/004 | grep bcdUSB
bcdUSB 2.10
这是在最初设置虚拟机之前,因为我想确保指定正确的 USB 类型(以前从未在 VirtualBox 上使用过转发的 USB 设备)。由于我花了几个小时让驱动程序工作,所以一天后我继续,没有注意到使用了右侧的 USB 端口(而不是我昨天使用的左侧)。但正确的端口似乎是 USB3,尽管它不是蓝色的,因为今天 lsusb 对 Realtek 设备说:
sudo lsusb -D /dev/bus/usb/002/004 | grep bcdUSB
bcdUSB 3.00
因此,我将 VirtualBox 中 USB 控制器的类型从 2.0 (EHCI) 切换到 3.0 (xHCI),所有内容都可以与realtek-rtl88xxau-dkms
驱动程序包配合使用,甚至可以直接使用 airmon:
root@kali:~# airmon-ng start wlan0
PHY Interface Driver Chipset
phy0 wlan0 88XXau Realtek Semiconductor Corp. RTL8814AU 802.11a/b/g/n/ac
(monitor mode enabled)
在我收到 VirtualBox 错误(不仅仅是 dmesg 错误)后,这张票给出了正确的提示。
学过的知识:在这种情况下,不要相信插座的颜色!验证规格,尤其是在同一项目中使用其他套接字时......