樹(shù)莓派無(wú)線網(wǎng)卡監(jiān)聽(tīng)模式

It works! RTL8188CUS monitor mode on Raspberry 3B+

Background

項(xiàng)目里需要在樹(shù)莓派上運(yùn)行抓包程序,需要使用無(wú)線網(wǎng)卡,進(jìn)入監(jiān)聽(tīng)模式,進(jìn)行抓包;

默認(rèn)的無(wú)線網(wǎng)卡是不支持monitor模式的,支持monitor模式的網(wǎng)卡列表可以在這里查到

于是我選了兩個(gè)RTL8188CUS的USB無(wú)線網(wǎng)卡,足夠便宜,而且京東上找得到(吐槽:京東上好多無(wú)線網(wǎng)卡都不寫(xiě)芯片組型號(hào),還有很多是不支持monitor模式的MTK7610,而且搜索芯片組型號(hào)基本搜不到商品,但是京東可以開(kāi)發(fā)票報(bào)銷(xiāo)啊,而且物流快啊,淘寶藥丸,想要買(mǎi)網(wǎng)卡的同學(xué)上京東搜RTL8188能搜到網(wǎng)卡的,跟客服確認(rèn)一下是不是RTL8188CUS就行,吐槽完畢)

Ubuntu 試水

在ubuntu上插入U(xiǎn)SB接口,ifconfig一下,可以看到多了一個(gè)設(shè)備wl********,名字太長(zhǎng)了,重啟一下系統(tǒng),它會(huì)變成wlan0或wlan1(如果有多個(gè)無(wú)線網(wǎng)卡的話),這樣方便操作一點(diǎn)

這里需要注意區(qū)分哪個(gè)卡是自己插上去的新卡,在終端輸入iwconfig,如果wlan1 Nickname是“WIFI@REALTEK”,wlan1就是我們新買(mǎi)的RTL8188啦,

pi@raspberrypi:~ $ iwconfig
eth0      no wireless extensions.

wlan1     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr: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:0

lo        no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

接著嘗試關(guān)掉wlan1,讓它進(jìn)入待命狀態(tài),再設(shè)置監(jiān)聽(tīng)模式,再啟動(dòng)wlan1

pi@raspberrypi:~ $ sudo ifconfig wlan1 down
pi@raspberrypi:~ $ sudo iwconfig wlan1 mode monitor
pi@raspberrypi:~ $ sudo ifconfig wlan1 up

沒(méi)有報(bào)錯(cuò),說(shuō)明這個(gè)網(wǎng)卡確實(shí)支持monitor模式,也可以再執(zhí)行iwconfig,可以看到wlan1的Mode從Auto變成了monitor。

樹(shù)莓派翻車(chē)

然而到了raspbian(我試過(guò)Ubuntu mate也一樣)上,同樣執(zhí)行

pi@raspberrypi:~ $ sudo iwconfig wlan1 mode monitor
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan1 ; Invalid argument.

去網(wǎng)上搜這個(gè)問(wèn)題,回答都是很多年前的了,很少有在樹(shù)莓派3B上試過(guò)的方案,最靠譜的一個(gè)答案在這里,在樹(shù)莓派2B+的年代,raspbian禁用了rtlwifi驅(qū)動(dòng),因?yàn)樗賠aspbian上不穩(wěn)定,對(duì)于rtl8188cus,會(huì)去使用rtl8192cu的驅(qū)動(dòng)(恩,這是正確的做法),但是在raspbian上,一旦使用了rtl8192cu的驅(qū)動(dòng),網(wǎng)卡就開(kāi)不了監(jiān)聽(tīng)模式,所以需要重新編譯raspbian內(nèi)核,將rtlwifi驅(qū)動(dòng)打開(kāi),將rtl8192驅(qū)動(dòng)關(guān)掉。

然而!在2017年的現(xiàn)在,我下載了raspbian的內(nèi)核源碼,發(fā)現(xiàn)官網(wǎng)已經(jīng)把rtlwifi的驅(qū)動(dòng)打開(kāi)了!并且在這種情況下還是不能使用monitor模式!

峰回路轉(zhuǎn)

在網(wǎng)上繼續(xù)搜索有沒(méi)有什么奇技淫巧可以解決這個(gè)問(wèn)題,忽然發(fā)現(xiàn)這個(gè)工程

在這個(gè)工程里編譯了linux3.6上的rtlwifi,替換到raspbian的驅(qū)動(dòng)里邊去

意識(shí)到,既然raspbian現(xiàn)在已經(jīng)編譯了rtlwifi和rtl8192兩個(gè)驅(qū)動(dòng),那么就應(yīng)該手動(dòng)關(guān)掉rtl8192的驅(qū)動(dòng),手動(dòng)啟用rtlwifi的驅(qū)動(dòng)!

  • 首先查看自己的內(nèi)核版本
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux
  • 確認(rèn)是否確實(shí)編譯了rtlwifi的驅(qū)動(dòng)
pi@raspberrypi:/lib/modules/4.9.41-v7+/kernel/drivers/net/wireless/realtek $ ls
rtl818x  rtl8192cu  rtl8xxxu  rtlwifi

可以看到有rtlwifi

  • 然后檢查當(dāng)前使用的驅(qū)動(dòng)
pi@raspberrypi:~ $ lsmod | grep 8192
8192cu                582217  0
cfg80211              543091  2 8192cu,brcmfmac

顯示的是8192cu,確實(shí)是rtl8192cu的驅(qū)動(dòng),如果是使用rtlwifi的驅(qū)動(dòng),顯示的應(yīng)該是rtl8192cu

  • 手動(dòng)禁用rtl8192驅(qū)動(dòng)
pi@raspberrypi:~ $ sudo depmod 4.9.41-v7+
pi@raspberrypi:~ $ sudo rmmod 8192cu
pi@raspberrypi:~ $ sudo modprobe rtl8192cu
  • 再嘗試將網(wǎng)卡設(shè)為監(jiān)聽(tīng)模式
pi@raspberrypi:~ $ sudo ifconfig wlan1 down
pi@raspberrypi:~ $ sudo iwconfig wlan1 mode monitor
pi@raspberrypi:~ $ sudo ifconfig wlan1 up

一切正常!

總結(jié)

想要在樹(shù)莓派3B+上使用RTL8188CUS開(kāi)啟無(wú)線網(wǎng)卡監(jiān)聽(tīng)模式,就把rtl8192的驅(qū)動(dòng)禁用掉,把rtlwifi的驅(qū)動(dòng)開(kāi)起來(lái)就好了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容