本文是之前文章的BlueSpy技術的復現過程:https://mp.weixin.qq.com/s/iCeImLLPAwwKH1avLmqEpA
2個月前,網絡安全和情報公司Tarlogic在西班牙安全大會RootedCon 2024上提出了一項利用藍牙漏洞的BlueSpy技術,并在之后發布了一個名為BlueSpy的概念驗證工具。
這個藍牙安全漏洞能夠允許攻擊者在藍牙揚聲器(比如耳機)已經與另一個設備配對并連接的情況下,劫持或監聽藍牙揚聲器的輸出內容,這也意味著,如果攻擊目標是藍牙耳機,那么可以通過這個漏洞進行目標用戶藍牙耳機通話的劫持,即偷聽目標對象的通話內容。
同時Tarlogic也發布了BlueSpy 的PoC項目https://github.com/TarlogicSecurity/BlueSpy,該項目可以驗證此漏洞的概念。
環境準備
Python 3.11.8
PoC 使用以下工具:
???bluetoothctl
???btmgmt
???pactl
???parecord
???paplay
測試設備使用Kali虛擬機+藍牙適配器或者原生Kali系統均可復現。其中,使用虛擬機時需要注意關閉USB控制器的與虛擬機共享藍牙設備,這個藍牙設備雖然會顯示在藍牙適配器列表,但是并不能使用,直接使用連接到虛擬機的外置藍牙適配器即可。
測試準備
在BlueSpy腳本執行時非常容易出現錯誤,比如:
這時可以使用sudo btmgmt pair -c 3 -t 0命令直接運行btmgmt進行測試,并根據給出的提示解決報錯。
確保btmgmt可以正常運行之后,再通過hciconfig命令來檢查藍牙適配器的信息。
hciconfig命令可以查看藍牙適配器信息,和ifconfig命令可以查看網絡適配器一樣,遇到適配器DOWN的狀態,可以使用hciconfig hci0 up來啟動。
另外,sudo systemctl start bluetooth命令用于啟動藍牙服務。
sudo rfkill list命令可以用來檢查藍牙設備是否禁用。
如果藍牙已被禁用,可以使用以下命令解除禁用:sudo rfkill unblock bluetooth
測試場景
確保btmgmt可以正常運行后,通過bluetoothctl工具掃描周邊的藍牙設備,在工具啟動后執行scan on命令來開啟掃描,獲取藍牙的地址,這里以網易的云音樂藍牙耳機為例。
倘若此時周邊有其他人已經連接該藍牙耳機聽音樂(這里以耳機連接Windows系統為例)。
測試執行
回到Kali系統開始執行BlueSpy程序,示例如下:
$ python BlueSpy.py -a 藍牙地址(上文示例為F5:0E:FD:00:01:B8)
上圖可以看到Kali系統已經連接到正在播放的云音樂藍牙耳機,并且開啟了麥克風開始錄音。
這時在項目目錄下會有一個recording.wav的文件生成,這個文件正是錄音的文件,隨著錄音時間的增加,該文件的大小也會增加。
?使用Ctrl+C停止錄音后,可以選擇是否向連接的藍牙設備播放媒體文件。選擇Y的話會播放剛剛錄音的文件,不選擇的話,設備會恢復之前的狀態繼續播放音樂。
這里也可以用單獨的命令進行相同操作:
actl set-card-profile bluez_card.04_FE_A1_40_EB_31 headset-head-unit-msbc
parecord -d bluez_input.04_FE_A1_40_EB_31.0 recording.wav
paplay -d bluez_output.04_FE_A1_40_EB_31.1 recording.wav
使用上述命令可以單獨進行錄音或者發送指定的音頻到目標藍牙設備播放音樂,假設播放的音樂是空白,則會產生藍牙耳機或音箱無聲的假象。
作者:馬云卓
2024年7月1日
洞源實驗室?