三好學生 · 2016/03/06 12:51python
近日,Bastille的研究團隊發現了一種針對藍牙鍵盤鼠標的攻擊,攻擊者能夠利用漏洞控制電腦操做,他們將此攻擊命名爲MouseJack。 攻擊者僅須要在亞馬遜上以60美圓購買設備,改造以後便可對百米範圍內存在漏洞的藍牙無線鍵鼠進行劫持,向受害計算機輸入任意指令。相信對此感興趣的人有不少,因此我根據其公佈的信息購買了相應設備來進行測試,現將測試經驗分享給你們。git
軟件工程師馬克紐林說:「利用假冒的無線電腦鼠標和鍵盤能夠從100米的距離利用便攜式外圍設備入侵筆記本電腦,這些設備來自至少七家大廠商,包括羅技、微軟、亞馬遜」。 Bastille研究團隊發現了針對13種鼠標和鍵盤的攻擊並向各廠商報告了漏洞,其中有些廠商已經發布了補丁。github
因爲沒有身份驗證機制,因此適配器沒法識別出數據包是由鼠標發送的仍是由攻擊者發送的。ubuntu
所以,攻擊者能夠假裝成一個鼠標發送本身的數據或者點擊數據包以欺騙適配器windows
相信好多小夥伴已經在着手購買設備了,可是去國外的亞馬遜以60美圓購買設備有點不現實,因此我提早給你們探了路,在國內就能夠用不到200元的價格購入設備,避免多花冤枉錢安全
測試設備:bash
一、Crazyradio 2.4Ghz nRF24LU1+ USB radio dongle(<¥200)app
二、DELL KM714 無線鍵盤鼠標套裝(<¥400)測試
注:spa
如下連接展現了存在漏洞的設備:
https://www.bastille.net/affected-devices
三、個人測試設備
測試環境:
本機系統: Win7
虛擬機系統: Kali 1.0
複製代碼
測試流程:
#!bash
sudo apt-get install sdcc binutils python python-pip
sudo pip install -U pip
sudo pip install -U -I pyusb
sudo pip install -U platformio
複製代碼
下載代碼github.com/RFStorm/mou…,執行:
#!bash
cd mousejack-master/
make
複製代碼
如圖
執行:
#!bash
make install
複製代碼
如圖,操做失敗
在此處得到提示,須要更新Crazyradio 固件:
github.com/RFStorm/mou…
更新方法可參照:
wiki.bitcraze.io/projects:cr…
下載代碼https://github.com/bitcraze/crazyradio-firmware,執行:
#!bash
cd crazyradio-firmware
python usbtools/launchBootloader.py
複製代碼
如圖
到github.com/bitcraze/cr…
下載cradio-pa-0.53.bin,放在crazyradio-firmware文件下,執行:
#!bash
python usbtools/nrfbootload.py flash cradio-pa-0.53.bin
複製代碼
如圖,成功更新Crazyradio 固件
執行
#!bash
cd mousejack-master/
make install
複製代碼
如圖,發現依然失敗
接着執行:
#!bash
lsusb -d 1915:7777 -v | grep bcdDevice
複製代碼
此時也沒法查看固件版本
原來須要把U盤拔下來從新插進去
再次執行代碼查看固件版本
#!bash
lsusb -d 1915:7777 -v | grep bcdDevice
複製代碼
如圖成功
再次執行
#!bash
make install
複製代碼
成功,如圖
根據上面更新固件成功的代碼提示"Please unplug your dongle or breakout board and plug it back in",再次拔掉從新插入U盤
如圖,此時本機的Windows系統沒法識別U盤,這就致使虛擬機系統也沒法加載U盤,沒法進行後續的測試
原來須要在Windows上安裝Crazyradio固件的驅動
(1)參考wiki.bitcraze.io/doc:crazyra…
手動下載驅動包,在設備管理器中找到未識別的設備,手動更新驅動,可是依然沒法識別
(2)參考wiki.bitcraze.io/doc:crazyra…
下載zadig來識別U盤進行更新驅動
但發現zadig也沒法識別U盤,所以這種方法也失效
此時Windows沒法識別U盤,有以下兩種假設:
(1)Windows系統下的Crazyradio固件驅動存在問題,因此沒法識別,所以致使虛擬機系統沒法加載U盤(可是已經用了2種更新驅動的方法仍是沒法識別,會不會是刷壞了呢)
(2)U盤被刷壞(存在這種可能,固件更新的說明裏有提到,不是100%安全),有詢問研究過crazyradio file的小夥伴,也傾向於U盤被刷壞
爲了測試可以繼續進行,改變了思路決定更換測試環境,在其餘系統上也許可以繞過這個難題。
(1)ubuntu
感興趣的小夥伴能夠深刻測試
(2)osx
使用osx系統測試,也許可以成功識別U盤,這也就是爲何最終採用了osx系統測試
測試發現osx系統可以成功識別,如圖
依然是在虛擬機裏面接着測試,此次虛擬機中的系統使用的是kali2.0,順便也就研究了若是成功刷好U盤,在其餘系統上使用須要哪些環境.
經測試得出初步結論:
若是刷好U盤,只須要在新系統上下載Github代碼,便可進行接下來的測試
簡單的測試圖以下
鏈接上設備Dell KM714,對比給出的硬件id
右圖爲購買的Dell KM714顯示的硬件id
(1)scanner
執行
#!bash
cd mousejack-master/
./nrf24-scanner.py -c {1..5}
複製代碼
運行後,會捕獲附近全部設備的數據包
這時咱們對KM714鼠標和鍵盤操做,命令行會當即回顯捕獲到的數據包
可找到Dell KM714的地址爲 08:D0:4F:28:02
(2)sniffer
肯定了Dell KM714的地址,就能夠對其進行定向捕獲 執行
#!bash
./nrf24-sniffer.py -a 08:D0:4F:28:02
複製代碼
(3)network mapper(Denial of Service)
執行
#!bash
./nrf24-network-mapper.py -a 08:D0:4F:28:02
複製代碼
可攔截地址爲08:D0:4F:28:02的設備發出的數據包,並對最後一位作修改,此操做可以使設備失效,沒法對電腦發送控制指令
如圖,執行完腳本後,此時Dell KM714的鼠標鍵盤失去響應,沒法對電腦進行控制,只有從新插拔接收器才能恢復正常。
注:
Verification succeded!
即表明升級成功,發光管會顯示紅燈的緣由在於對固件進行升級操做後,並未對發光管進行設置,所以顯示紅色。 板子上的燈雖然是紅色,但不影響功能。以上分享了我對mousejack的測試心得,記錄的比較完整,但願對你的測試研究有所幫助。
固然,本文僅僅是對其公佈的github代碼進行初步測試,更多深刻測試也在進行當中。若是須要實現劫持鼠標鍵盤,發送鍵盤消息,能夠嘗試修改github中的python代碼。
若是你有更好的想法或是遇到了新的問題,歡迎和我交流:)
本文由三好學生原創並首發於烏雲drops,轉載請註明