<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/13444

            0x00 前言


            近日,Bastille的研究團隊發現了一種針對藍牙鍵盤鼠標的攻擊,攻擊者可以利用漏洞控制電腦操作,他們將此攻擊命名為MouseJack。 攻擊者僅需要在亞馬遜上以60美元購買設備,改造之后即可對百米范圍內存在漏洞的藍牙無線鍵鼠進行劫持,向受害計算機輸入任意指令。相信對此感興趣的人有很多,所以我根據其公布的信息購買了相應設備來進行測試,現將測試經驗分享給大家。

            Alt text

            0x01 簡介


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

            攻擊原理:

            由于沒有身份驗證機制,所以適配器無法識別出數據包是由鼠標發送的還是由攻擊者發送的。

            因此,攻擊者可以偽裝成一個鼠標發送自己的數據或者點擊數據包以欺騙適配器

            0x02 測試設備


            相信好多小伙伴已經在著手購買設備了,但是去國外的亞馬遜以60美元購買設備有點不現實,所以我提前給大家探了路,在國內就可以用不到200元的價格購入設備,避免多花冤枉錢

            測試設備:

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

            Alt text

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

            Alt text

            注:

            以下鏈接展示了存在漏洞的設備:
            https://www.bastille.net/affected-devices

            3、我的測試設備

            Alt text

            0x03 實際測試


            測試環境:

            本機系統:   Win7
            虛擬機系統: Kali 1.0
            

            測試流程:

            1、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

            2、插上U盤

            下載代碼https://github.com/RFStorm/mousejack,執行:

            #!bash
            cd mousejack-master/
            make
            

            如圖

            Alt text

            執行:

            #!bash
            make install
            

            如圖,操作失敗

            Alt text

            3、查找解決方法

            在此處獲得提示,需要更新Crazyradio 固件:
            https://github.com/RFStorm/mousejack/issues/2

            更新方法可參照:
            https://wiki.bitcraze.io/projects:crazyradio:programming

            4、更新Crazyradio 固件

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

            #!bash
            cd crazyradio-firmware
            python usbtools/launchBootloader.py
            

            如圖

            Alt text

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

            #!bash
            python usbtools/nrfbootload.py flash cradio-pa-0.53.bin
            

            如圖,成功更新Crazyradio 固件

            Alt text

            5、再次make install

            執行

            #!bash
            cd mousejack-master/
            make install
            

            如圖,發現依然失敗

            Alt text

            接著執行:

            #!bash
            lsusb -d 1915:7777 -v | grep bcdDevice
            

            此時也無法查看固件版本

            Alt text

            6、再次查找原因

            原來需要把U盤拔下來重新插進去

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

            #!bash
            lsusb -d 1915:7777 -v | grep bcdDevice
            

            如圖成功

            Alt text

            再次執行

            #!bash
            make install
            

            成功,如圖

            Alt text

            7、再次拔掉重新插

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

            Alt text

            Alt text

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

            8、查找解決方法

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

            (1)參考https://wiki.bitcraze.io/doc:crazyradio:install_win7

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

            (2)參考https://wiki.bitcraze.io/doc:crazyradio:install_windows_zadig

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

            但發現zadig也無法識別U盤,因此這種方法也失效

            Alt text

            9、分析問題

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

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

            Alt text

            10、解決問題

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

            (1)ubuntu

            感興趣的小伙伴可以深入測試

            (2)osx

            使用osx系統測試,也許能夠成功識別U盤,這也就是為什么最終采用了osx系統測試

            測試發現osx系統能夠成功識別,如圖

            Alt text

            依然是在虛擬機里面接著測試,這次虛擬機中的系統使用的是kali2.0,順便也就研究了如果成功刷好U盤,在其他系統上使用需要哪些環境.

            經測試得出初步結論:

            如果刷好U盤,只需要在新系統上下載Github代碼,即可進行接下來的測試

            簡單的測試圖如下

            Alt text

            11、更多測試

            連接上設備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,轉載請注明

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线