日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用btproxy對(duì)藍(lán)牙設(shè)備進(jìn)行安全分析

最近我比較熱衷調(diào)查新技術(shù)的安全性能,尤其是“IoT”領(lǐng)域的新設(shè)備,比如使用藍(lán)牙進(jìn)行連接的設(shè)備。熟悉藍(lán)牙連接方式之后,我就想用明文的方式來看看它的通信數(shù)據(jù),有可能的話最好還能修改下其中的數(shù)據(jù)。類似于現(xiàn)有的網(wǎng)絡(luò)流量工具,這里并沒有方便快捷的辦法實(shí)現(xiàn)它。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計(jì),崇川網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:崇川等地區(qū)。崇川做網(wǎng)站價(jià)格咨詢:18980820575

我寫的這個(gè)工具需要1個(gè)或者2個(gè)藍(lán)牙適配器作為其他兩個(gè)設(shè)備之間連接的代理,代理連接可以查探明文數(shù)據(jù)流量,以及實(shí)時(shí)修改的能力。

安裝

我已經(jīng)將該項(xiàng)目發(fā)布到github上,目前該工具僅僅只能在Linux 或者 OS X下進(jìn)行運(yùn)行,且其依賴于BlueZ。

安裝依賴包:

sudo apt-get install bluez bluez-utils bluez-tools libbluetooth-dev python-dev

安裝btproxy:

git clone https://github.com/conorpp/btproxy cd btproxy sudo python setup.py install

在Pebble Watch上運(yùn)行

為了運(yùn)行它,你需要兩個(gè)藍(lán)牙設(shè)備進(jìn)行作為代理(藍(lán)牙電量低,不會(huì)運(yùn)行)

為此,我選擇使用我的手機(jī)(Nexus 6)以及Pebble Watch。

接著我打開所有設(shè)備的可發(fā)現(xiàn)藍(lán)牙設(shè)備。我的Nexus 6跑的是Android L,這需要到設(shè)置中去打開藍(lán)牙選項(xiàng)。同樣的Pebble watch,也需要到設(shè)置菜單中去打開藍(lán)牙。設(shè)置完成之后,我們就可以運(yùn)行代理了。

我使用hcitool來掃描設(shè)備,因此我獲取到設(shè)備的MAC地址

$ hcitool scan
Scanning ...
77:88:99:AA:BB:CC Pebble 9FAA
11:22:33:44:55:66 conorpp's Nexus 6

接著,運(yùn)行藍(lán)牙代理:

sudo btproxy 11:22:33:44:55:66 77:88:99:AA:BB:CC

注意,我先輸入的是手機(jī)的MAC地址。這一點(diǎn)十分重要,因?yàn)槭謾C(jī)是作為連接中的主設(shè)備,手表作為其從屬設(shè)備。主/從設(shè)備都會(huì)使用藍(lán)牙協(xié)議,直到主設(shè)備發(fā)出請(qǐng)求,從屬設(shè)備通常保持待機(jī)狀態(tài)。并且主設(shè)備可以連接到多臺(tái)設(shè)備,而從屬設(shè)備僅僅智能連接一臺(tái)設(shè)備。

M=Master(主設(shè)備) S=Slave(從屬設(shè)備)

現(xiàn)在我們就來看看代理的輸出信息

$ sudo btproxy 11:22:33:44:55:66 77:88:99:AA:BB:CC
Running proxy on master  11:22:33:44:55:66  and slave  77:88:99:AA:BB:CC  Using shared adapter  Slave adapter:  hci0  Master adapter:  hci0  Looking up info on slave (77:88:99:AA:BB:CC)  Looking up info on master (11:22:33:44:55:66)  Spoofing master name as  Pebble 9FAA_bt proxy Running inquiry scan  paired  Spoofing master name as  Pebble 9FAA_btproxy  Proxy listening for connections for "Serial Port Server Port 1"  Proxy listening for connections for "Audio/Video Remote Control"  Attempting connections with 2 services on slave  Connected to service "Audio/Video Remote Control"  Connected to service "Serial Port Server Port 1"  Now you're free to connect to "Pebble 9FAA_btproxy" from master device.

代理會(huì)搜尋設(shè)備名稱和類,所以其可以將設(shè)備名稱和類復(fù)制到使用的藍(lán)牙適配器中。在本例中,因?yàn)橹挥幸粋€(gè)藍(lán)牙適配器,所以只會(huì)復(fù)制從屬設(shè)備的屬性。

途中,它會(huì)向我的Pebble watch發(fā)出一個(gè)藍(lán)牙適配請(qǐng)求。接受請(qǐng)求之后,代理會(huì)打開每個(gè)手表設(shè)備的藍(lán)牙接口,然后連接到手機(jī)。代理連接到手表中的藍(lán)牙之后,我將主設(shè)備(Nexus 6)連接到代理設(shè)備(Pebble 9FAA_btproxy)

btproxy輸出

這里有使用到兩個(gè)協(xié)議:SPP 和 Pebble,發(fā)送一個(gè)明文通知。

我給自己發(fā)送一條明文通知之后獲取到的日志記錄:

<<  b'\x00F\x0b\xc2\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00K_\xecU\x01\x02\x03\x01\x0e\x00(123) 456-6789\x03\x0c\x00Hello Pebble\xff\x05\x00\xfe\x05\x00\x01\x03\x01\x01\x05\x00Reply'

你可以看到電話號(hào)碼,以及通知內(nèi)容,"Hello Pebble".

我發(fā)送一條谷歌環(huán)聊信息后截獲的包:

<<  b'\x00b\x0b\xc2\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf2_\xecU\x01\x02\x02\x01\r\x00Conor Patrick\x03\x1a\x00Sent a message on Hangouts\x01\x02\x01\x01\r\x00Open on phone\x02\x04\x01\x01\x07\x00Dismiss'

你可以看到其發(fā)送了兩個(gè)選項(xiàng):"Open on phone" 以及 "Dismiss".

使用Python內(nèi)聯(lián)腳本可以實(shí)時(shí)修改包中的任何內(nèi)容。

例如:

# replace.py # This replaces the options in a Pebble notification packet
 def master_cb(req):
    req = req.replace(b'Open on phone', b'Hi welcome to')          req = req.replace(b'Dismiss', b'Btproxy')          print( '<< ', repr(req))          return req   def slave_cb(res):          print('>> ', repr(res))          return res

當(dāng)主設(shè)備(Nexus 6)向從屬設(shè)備(Pebble Watch)發(fā)送一個(gè)數(shù)據(jù)包時(shí),會(huì)調(diào)用master_cb,反之則調(diào)用slave_cb.

重啟btproxy:

sudo btproxy 11:22:33:44:55:66 77:88:99:AA:BB:CC -s replace.py

然后發(fā)送一個(gè)通知:

結(jié)論

使用該工具的目的是為了分析,同時(shí)也可用于如今越來越流行的物聯(lián)網(wǎng)設(shè)備安全檢測(cè)。到目前為止,我使用其更新固件、證書/憑證以及改變標(biāo)識(shí)符,除非有方法實(shí)現(xiàn)設(shè)備強(qiáng)制藍(lán)牙進(jìn)行適配,并連接上代理,否則它不適合應(yīng)用在實(shí)際的攻擊中。或許在未來會(huì)有大牛攻破這個(gè)難題,但是現(xiàn)在這種攻擊還僅僅屬于理想狀態(tài)的測(cè)試。


新聞名稱:使用btproxy對(duì)藍(lán)牙設(shè)備進(jìn)行安全分析
文章起源:http://m.5511xx.com/article/dhphphd.html