Mousejack測試指南

三好學生 · 2016/03/06 12:51python

0x00 前言


近日,Bastille的研究團隊發現了一種針對藍牙鍵盤鼠標的攻擊,攻擊者能夠利用漏洞控制電腦操做,他們將此攻擊命名爲MouseJack。 攻擊者僅須要在亞馬遜上以60美圓購買設備,改造以後便可對百米範圍內存在漏洞的藍牙無線鍵鼠進行劫持,向受害計算機輸入任意指令。相信對此感興趣的人有不少,因此我根據其公佈的信息購買了相應設備來進行測試,現將測試經驗分享給你們。git

Alt text

0x01 簡介


軟件工程師馬克紐林說:「利用假冒的無線電腦鼠標和鍵盤能夠從100米的距離利用便攜式外圍設備入侵筆記本電腦,這些設備來自至少七家大廠商,包括羅技、微軟、亞馬遜」。 Bastille研究團隊發現了針對13種鼠標和鍵盤的攻擊並向各廠商報告了漏洞,其中有些廠商已經發布了補丁。github

攻擊原理:

因爲沒有身份驗證機制,因此適配器沒法識別出數據包是由鼠標發送的仍是由攻擊者發送的。ubuntu

所以,攻擊者能夠假裝成一個鼠標發送本身的數據或者點擊數據包以欺騙適配器windows

0x02 測試設備


相信好多小夥伴已經在着手購買設備了,可是去國外的亞馬遜以60美圓購買設備有點不現實,因此我提早給你們探了路,在國內就能夠用不到200元的價格購入設備,避免多花冤枉錢安全

測試設備:bash

一、Crazyradio 2.4Ghz nRF24LU1+ USB radio dongle(<¥200)app

Alt text

二、DELL KM714 無線鍵盤鼠標套裝(<¥400)測試

Alt text

注:spa

如下連接展現了存在漏洞的設備:
https://www.bastille.net/affected-devices

三、個人測試設備

Alt text

0x03 實際測試


測試環境:

本機系統:   Win7
虛擬機系統: Kali 1.0
複製代碼

測試流程:

一、Kali下搭建軟件環境

#!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
複製代碼

Alt text

二、插上U盤

下載代碼github.com/RFStorm/mou…,執行:

#!bash
cd mousejack-master/
make
複製代碼

如圖

Alt text

執行:

#!bash
make install
複製代碼

如圖,操做失敗

Alt text

三、查找解決方法

在此處得到提示,須要更新Crazyradio 固件:
github.com/RFStorm/mou…

更新方法可參照:
wiki.bitcraze.io/projects:cr…

四、更新Crazyradio 固件

下載代碼https://github.com/bitcraze/crazyradio-firmware,執行:

#!bash
cd crazyradio-firmware
python usbtools/launchBootloader.py
複製代碼

如圖

Alt text

github.com/bitcraze/cr…
下載cradio-pa-0.53.bin,放在crazyradio-firmware文件下,執行:

#!bash
python usbtools/nrfbootload.py flash cradio-pa-0.53.bin
複製代碼

如圖,成功更新Crazyradio 固件

Alt text

五、再次make install

執行

#!bash
cd mousejack-master/
make install
複製代碼

如圖,發現依然失敗

Alt text

接着執行:

#!bash
lsusb -d 1915:7777 -v | grep bcdDevice
複製代碼

此時也沒法查看固件版本

Alt text

六、再次查找緣由

原來須要把U盤拔下來從新插進去

再次執行代碼查看固件版本

#!bash
lsusb -d 1915:7777 -v | grep bcdDevice
複製代碼

如圖成功

Alt text

再次執行

#!bash
make install
複製代碼

成功,如圖

Alt text

七、再次拔掉從新插

根據上面更新固件成功的代碼提示"Please unplug your dongle or breakout board and plug it back in",再次拔掉從新插入U盤

Alt text

Alt text

如圖,此時本機的Windows系統沒法識別U盤,這就致使虛擬機系統也沒法加載U盤,沒法進行後續的測試

八、查找解決方法

原來須要在Windows上安裝Crazyradio固件的驅動

(1)參考wiki.bitcraze.io/doc:crazyra…

手動下載驅動包,在設備管理器中找到未識別的設備,手動更新驅動,可是依然沒法識別

(2)參考wiki.bitcraze.io/doc:crazyra…

下載zadig來識別U盤進行更新驅動

但發現zadig也沒法識別U盤,所以這種方法也失效

Alt text

九、分析問題

此時Windows沒法識別U盤,有以下兩種假設:

(1)Windows系統下的Crazyradio固件驅動存在問題,因此沒法識別,所以致使虛擬機系統沒法加載U盤(可是已經用了2種更新驅動的方法仍是沒法識別,會不會是刷壞了呢)
(2)U盤被刷壞(存在這種可能,固件更新的說明裏有提到,不是100%安全),有詢問研究過crazyradio file的小夥伴,也傾向於U盤被刷壞

Alt text

十、解決問題

爲了測試可以繼續進行,改變了思路決定更換測試環境,在其餘系統上也許可以繞過這個難題。

(1)ubuntu

感興趣的小夥伴能夠深刻測試

(2)osx

使用osx系統測試,也許可以成功識別U盤,這也就是爲何最終採用了osx系統測試

測試發現osx系統可以成功識別,如圖

Alt text

依然是在虛擬機裏面接着測試,此次虛擬機中的系統使用的是kali2.0,順便也就研究了若是成功刷好U盤,在其餘系統上使用須要哪些環境.

經測試得出初步結論:

若是刷好U盤,只須要在新系統上下載Github代碼,便可進行接下來的測試

簡單的測試圖以下

Alt text

十一、更多測試

鏈接上設備Dell KM714,對比給出的硬件id

Alt text

右圖爲購買的Dell KM714顯示的硬件id

(1)scanner

執行

#!bash
cd mousejack-master/
./nrf24-scanner.py -c {1..5}
複製代碼

運行後,會捕獲附近全部設備的數據包

這時咱們對KM714鼠標和鍵盤操做,命令行會當即回顯捕獲到的數據包

Alt text

可找到Dell KM714的地址爲 08:D0:4F:28:02

(2)sniffer

肯定了Dell KM714的地址,就能夠對其進行定向捕獲 執行

#!bash
./nrf24-sniffer.py -a 08:D0:4F:28:02
複製代碼

Alt text

(3)network mapper(Denial of Service)

執行

#!bash
./nrf24-network-mapper.py -a 08:D0:4F:28:02
複製代碼

可攔截地址爲08:D0:4F:28:02的設備發出的數據包,並對最後一位作修改,此操做可以使設備失效,沒法對電腦發送控制指令

Alt text

如圖,執行完腳本後,此時Dell KM714的鼠標鍵盤失去響應,沒法對電腦進行控制,只有從新插拔接收器才能恢復正常。

注:

  1. 每次Ctrl+c結束腳本後須要從新插拔Usb才能繼續測試,不然會提示超時,腳本執行失敗
  2. 購買的Crazyradio 2.4Ghz nRF24LU1+ USB radio dongle開發板 原廠會刷入Crazyradio固件(若是沒有店家通常也會幫忙刷入),發光管顯示綠光表明功能正常,但對其固件進行升級後,發光管會顯示紅燈,看似功能故障,但其實只要命令行輸出爲Verification succeded!即表明升級成功,發光管會顯示紅燈的緣由在於對固件進行升級操做後,並未對發光管進行設置,所以顯示紅色。 板子上的燈雖然是紅色,但不影響功能。

0x04 小結


以上分享了我對mousejack的測試心得,記錄的比較完整,但願對你的測試研究有所幫助。

固然,本文僅僅是對其公佈的github代碼進行初步測試,更多深刻測試也在進行當中。若是須要實現劫持鼠標鍵盤,發送鍵盤消息,能夠嘗試修改github中的python代碼。

若是你有更好的想法或是遇到了新的問題,歡迎和我交流:)

本文由三好學生原創並首發於烏雲drops,轉載請註明

相關文章
相關標籤/搜索