錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項(xiàng)目 服務(wù)報(bào)價(jià) 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
低功耗藍(lán)牙(BLE)攻擊分析

作者: 佚名  日期:2018-11-05 13:59:23   來源: 本站整理

 藍(lán)牙是一種短距的無線通訊技術(shù),可實(shí)現(xiàn)固定設(shè)備、移動(dòng)設(shè)備之間的數(shù)據(jù)交換。可以說藍(lán)牙是當(dāng)今世界上,最受歡迎和使用最為廣泛的無線技術(shù)之一。隨著物聯(lián)網(wǎng)的快速發(fā)展,藍(lán)牙技術(shù)也加速了其發(fā)展步伐以適應(yīng)不斷增長的市場和用戶需求。藍(lán)牙特別興趣小組(SIG)正不斷努力提高藍(lán)牙的傳輸速度,以讓藍(lán)牙技術(shù)更好的融合于各種物聯(lián)網(wǎng)設(shè)備當(dāng)中。
低功耗藍(lán)牙(BLE)是藍(lán)牙4.0規(guī)范的一部分,其包括傳統(tǒng)藍(lán)牙和藍(lán)牙高速協(xié)議。相較于傳統(tǒng)藍(lán)牙,BLE旨在使用更低的功耗,并保持同等距離的通信范圍。BLE只在需要時(shí)傳輸少量數(shù)據(jù),而除此之外則會(huì)保持關(guān)閉狀態(tài),這大大降低了其功耗,也使其成為了在低數(shù)據(jù)速率下需要長久連接使用的理想選擇。BLE非常適合運(yùn)用于電視遙控器,但對(duì)于需要傳輸大量數(shù)據(jù)的無線媒體流設(shè)備則并不適用。
BLE內(nèi)置于我們今天使用的許多電器或智能設(shè)備當(dāng)中,例如智能手機(jī),智能電視,醫(yī)療設(shè)備,咖啡機(jī)等等。
BLE 受歡迎的原因?
支持多平臺(tái),以下列出的設(shè)備和平臺(tái)均支持藍(lán)牙 4.0和BLE:
iOS5+ (iOS7+ preferred)
Android 4.3+ (numerous bug fixes in 4.4+)
Apple OS X 10.6+
Windows 8 (XP, Vista and 7 only support Bluetooth 2.1)
GNU/Linux Vanilla BlueZ 4.93+
Windows Phone
BLE 聽上去不錯(cuò),但真的如此嗎?
從安全的角度來看,這個(gè)問題提的非常的好。事實(shí)是 – BLE只是一個(gè)協(xié)議。制造商可以在他們的設(shè)備中安全地實(shí)施BLE。但如果隨機(jī)數(shù)生成器無法生成“足夠強(qiáng)壯”的隨機(jī)數(shù),那么即使最強(qiáng)的加密協(xié)議也可能被破解,這同樣也適用于BLE。因此,換句話來說就是BLE的安全性實(shí)際掌握在其實(shí)施者手中。
雖然,所有低功耗藍(lán)牙設(shè)備開發(fā)的主要?jiǎng)訖C(jī)都是為了增強(qiáng)用戶體驗(yàn)。但與此同時(shí),我們需要思考的是安全性是否也已同步?
下面,讓我們看看影響B(tài)LE安全性的三個(gè)主要漏洞:
1. 竊聽
考慮常規(guī)的BLE通信,一端是手機(jī),一端是BLE設(shè)備。假如二者沒有進(jìn)行認(rèn)證加密,那么在通信開始之前,在附近開啟一個(gè)BLE Sniffer,就可以看到手機(jī)與BLE設(shè)備之間的連接后的通信數(shù)據(jù)明文。
2. MITM 攻擊
MITM(Man in the Middle)中間人攻擊是指第三方設(shè)備混入BLE通信鏈路之間,偽造通信數(shù)據(jù)迷惑雙方。
假如設(shè)備A和設(shè)備B在通信之始,設(shè)備M注意到二者要進(jìn)行通信,設(shè)備M截取設(shè)備A發(fā)起的連接請求,偽裝成設(shè)備B跟其建立連接進(jìn)行通信,通信完畢后再偽裝成設(shè)備A向設(shè)備B發(fā)起連接請求,建立連接后重復(fù)設(shè)備A在前面發(fā)送的數(shù)據(jù)。這樣設(shè)備A就一直以為在跟設(shè)備B進(jìn)行通信,設(shè)備B也同樣,卻不知中間還藏著一個(gè)第三者。
3. 拒絕服務(wù)攻擊
由于目前大多數(shù)無線設(shè)備都使用內(nèi)置電池組,因此這些設(shè)備存在遭受拒絕服務(wù)攻擊(DoS)的風(fēng)險(xiǎn)。DoS攻擊會(huì)導(dǎo)致系統(tǒng)頻繁崩潰,并耗盡其電池電量。Fuzzing攻擊也會(huì)導(dǎo)致系統(tǒng)崩潰,因?yàn)楣粽呖赡軙?huì)將格式錯(cuò)誤或非標(biāo)準(zhǔn)數(shù)據(jù),發(fā)送到設(shè)備的藍(lán)牙無線電檢查其響應(yīng),并最終擊垮設(shè)備。
BLE 的核心概念
BLE有兩個(gè)基本概念:
GAP – 通用屬性配置文件
GATT – 通用屬性
GAP
GAP(Generic Access Profile)主要負(fù)責(zé)控制設(shè)備連接和廣播。GAP使你的設(shè)備被其他設(shè)備可見,并決定了你的設(shè)備是否可以或者怎樣與合同設(shè)備進(jìn)行交互。
GAP給設(shè)備定義了若干角色,其中主要的兩個(gè)是:外圍設(shè)備(Peripheral)和中心設(shè)備(Central)。
外圍設(shè)備:這一般就是非常小或者簡單的低功耗設(shè)備,用來提供數(shù)據(jù),并連接到一個(gè)更加相對(duì)強(qiáng)大的中心設(shè)備。
中心設(shè)備:中心設(shè)備相對(duì)比較強(qiáng)大,用來連接其他外圍設(shè)備。例如手機(jī)等。
廣播協(xié)議
GAP的廣播工作流程如下圖所示:
在GAP 中外圍設(shè)備通過兩種方式向外廣播數(shù)據(jù):Advertising Data Payload(廣播數(shù)據(jù))和Scan Response Data Payload(掃描回復(fù)),每種數(shù)據(jù)最長可以包含31字節(jié)。這里廣播數(shù)據(jù)是必需的,因?yàn)橥庠O(shè)必需不停的向外廣播,讓中心設(shè)備知道它的存在。掃描回復(fù)是可選的,中心設(shè)備可以向外設(shè)請求掃描回復(fù),這里包含一些設(shè)備額外的信息,例如設(shè)備的名字。
GATT
GATT(Generic Attribute Profile)定義了兩個(gè)BLE設(shè)備,通過Service 和Characteristic進(jìn)行通信。GATT使用了ATT(Attribute Protocol)協(xié)議,ATT 協(xié)議把 Service,Characteristic對(duì)應(yīng)的數(shù)據(jù)保存在一個(gè)查找表中,次查找表使用 16 bit ID 作為每一項(xiàng)的索引。一旦兩個(gè)設(shè)備建立起了連接,GATT 就開始起作用了,這也意味著,GATT只有在GAP管理的廣播流程完成后才能啟動(dòng)。
GATT的兩個(gè)主要概念:
Services
Characteristics
Service 
Service是把數(shù)據(jù)分成一個(gè)個(gè)的獨(dú)立邏輯項(xiàng),它包含一個(gè)或者多個(gè) Characteristic。每個(gè) Service 有一個(gè) UUID 唯一標(biāo)識(shí)。 UUID 有 16 bit 的,或者 128 bit 的。16 bit 的 UUID 是官方通過認(rèn)證的,需要花錢購買,128 bit 是自定義的,這個(gè)就可以自己隨便設(shè)置。
官方通過了一些標(biāo)準(zhǔn) Service,完整列表在這里。以 Heart Rate Service為例,可以看到它的官方通過 16 bit UUID是0x180D,包含3個(gè)Characteristic:Heart Rate Measurement, Body Sensor Location和Heart Rate Control Point,并且定義了只有第一個(gè)是必須的,它是可選實(shí)現(xiàn)的。
Characteristic 
在GATT事務(wù)中的最低界別的是Characteristic,Characteristic是最小的邏輯數(shù)據(jù)單元,當(dāng)然它可能包含一個(gè)組關(guān)聯(lián)的數(shù)據(jù),例如加速度計(jì)的 X/Y/Z三軸值。
與Service類似,每個(gè) Characteristic用16 bit或128 bit的UUID唯一標(biāo)識(shí)。你可以免費(fèi)使用Bluetooth SIG官方定義的標(biāo)準(zhǔn) Characteristic,使用官方定義的,可以確保 BLE 的軟件和硬件能相互理解。當(dāng)然,你可以自定義Characteristic,這樣的話就只有你自己的軟件和外設(shè)能夠相互理解。
例如,SIG規(guī)定的官方TX功耗UUID是0×1804。
利用 BLE 的工具
Linux為BLE提供了最好的支持。想要使用BLE,我們需要安裝blueZ。命令如下:
sudo apt-get install bluez
這里我使用的是Ubuntu系統(tǒng)的電腦,該設(shè)備將作為與其他外圍設(shè)備通信的中心網(wǎng)關(guān)。安裝完成后,我們需要兩個(gè)工具來掃描,連接和讀/寫數(shù)據(jù)。
hcitool
gatttool
在開始之前,我們需要掃描附近的BLE設(shè)備。找到后我們需要設(shè)法與其建立連接,讀/寫數(shù)據(jù),發(fā)現(xiàn)其中的漏洞以進(jìn)行利用。因此,hcitool是我們必不可少的工具。hcitool
hcitool利用了筆記本電腦中的主機(jī)控制器接口與BLE設(shè)備進(jìn)行通信以及執(zhí)行讀/寫/更改操作。因此,hcitool可用于查找廣播的可用受害者BLE設(shè)備,然后連接后更改其值。
但要更改值/數(shù)據(jù),我們必須首先要知道service和characteristic。因此,我們就需要用到gatttool。
gatttool
gatttool的作用就是找出可用BLE設(shè)備的service和characteristic,以執(zhí)行對(duì)受害者數(shù)據(jù)的讀取/寫入操作。
命令 cheatsheet
命令
功能
hciconfig
用于配置藍(lán)牙設(shè)備。 我們可以運(yùn)行此命令列出連接到我們計(jì)算機(jī)的BLE加密狗及其基本信息。
hciconfig hciX up
打開名為hciX的藍(lán)牙設(shè)備
有關(guān)更多命令請參閱:https://helpmanual.io/man1/hciconfig/
Hcitool 命令
hcitool用于配置藍(lán)牙連接并向藍(lán)牙設(shè)備發(fā)送一些指定命令。
命令
功能
hcitool -i hciX
使用hciX接口。如未指定,則默認(rèn)為第一個(gè)可用接口
hcitool scan
掃描處于可發(fā)現(xiàn)模式的傳統(tǒng)藍(lán)牙設(shè)備
hcitool lescan
掃描BLE藍(lán)牙設(shè)備
有關(guān)更多命令請參閱:https://helpmanual.io/man1/hcitool/
Gattool 命令
命令
功能
gatttool -I
以交互模式啟動(dòng)gatttool
gatttool -t random -b [adr] -I
使用隨機(jī)LE地址以交互模式啟動(dòng)gattool。連接到具有地址adr的遠(yuǎn)程藍(lán)牙設(shè)備。
primary
檢查連接的BLE設(shè)備的可用services
characteristic
檢查我們可以從中讀取數(shù)據(jù)的所連接BLE設(shè)備的可用characteristics
char-desc
Characteristics Descriptor發(fā)現(xiàn)
char-read-hnd
讀取characteristic
char-write-req
將值寫入handle句柄
有關(guān)更多命令請參閱:https://helpmanual.io/man1/gatttool/
使用示例
hciconfig:列出所有連接的BLE適配器。
hciconfig hciX up:啟用名為hciX的BLE適配器。
hciconfig hciX down:禁用名為hciX的BLE適配器。
hcitool lescan:掃描附近的BLE設(shè)備。
獲取BLE設(shè)備的地址后,我們需要連接它,現(xiàn)在我們就要用到gatttool了。
gatttool -I:以交互REPL模式啟動(dòng)gatttool,用戶可以在其中發(fā)送各種命令,如下所示。
connect :使用指定的地址連接到BLE設(shè)備。
如果設(shè)備僅使用手機(jī)連接而不是電腦,則上述操作步驟可能無效。為了連接這些設(shè)備,我們需要使用隨機(jī)地址。
gatttool -t random -b  -I:使用隨機(jī)地址連接到設(shè)備。
連接成功后,我們可以使用命令查看設(shè)備的services和characteristics。
Primary
Characteristics
在找到services和characteristics之后,我們需要知道我們可以使用char-desc命令讀取/寫入數(shù)據(jù)的句柄。
我們還可以使用char-desc 01 05之類的命令,將顯示的句柄過濾到特定范圍,該命令將顯示從1到5的5個(gè)句柄。
找到句柄后,我們使用char-read-hnd 命令從中讀取數(shù)據(jù)。
為了寫入特定句柄,我們需要知道哪一個(gè)是寫句柄。我們可以嘗試逐個(gè)讀取所有句柄,直到出現(xiàn)讀取錯(cuò)誤提示。讀取錯(cuò)誤意味著特定句柄是寫句柄(因?yàn)閷懢浔菬o法讀取的)。或者,你也可以使用像nrf connect這樣的應(yīng)用程序?yàn)槟阕詣?dòng)找出寫句柄。
句柄0x000b有一個(gè)UUID,如下圖所示:
使用nRF Connect后我獲取到了以下輸出,這也為我們確認(rèn)了句柄0x000b確實(shí)是一個(gè)寫句柄。上圖中句柄0x000b的UUID和nrf連接匹配。
連接到燈泡后,我們可以將隨機(jī)值寫入不同的characteristics。在大多數(shù)情況下,寫入隨機(jī)值將無法按預(yù)期工作。要在句柄中寫入正確的值,我們需要解密數(shù)據(jù)協(xié)議,我們可以使用像wireshark和ubertooth之類的嗅探工具找到。
解密數(shù)據(jù)協(xié)議后,我們可以使用命令char-write-req  在句柄中寫入值。
如果char-write-req報(bào)錯(cuò),我們可以使用char-write-cmd代替。
藍(lán)牙 hci snoop log
從Android 4.4開始增加了一個(gè)用來記錄從設(shè)備進(jìn)出的所有藍(lán)牙數(shù)據(jù)包的選項(xiàng)。要啟用藍(lán)牙流量捕獲,請按照以下步驟操作。請確保Android app已安裝。
第1步:打開手機(jī)設(shè)置并啟用開發(fā)人員選項(xiàng)。
第2步:打開“開發(fā)人員選項(xiàng)”并啟用藍(lán)牙HCI snoop log。
第3步:運(yùn)行Android app(magic blue)并向燈泡發(fā)送一些更改顏色的指令。多重復(fù)操作幾遍。
第4步:我們可以在/sdcard/btsnoop_hci.log 或 /internal Storage/btsnoop_hci.log中找到藍(lán)牙流量的捕獲文件。
注 – 在某些設(shè)備中,btsnoop_hci.log會(huì)被創(chuàng)建在其它位置,例如/sdcard/Android/data/btsnoop_hci.log。
使用電子郵件或Google Drive將捕獲的日志文件傳輸?shù)诫娔X上,或者你也可以通過USB數(shù)據(jù)線將Android設(shè)備與電腦連接。
第5步:在Wireshark中分析捕獲的數(shù)據(jù)包。Wireshark是一個(gè)免費(fèi)的開源數(shù)據(jù)包分析工具,如果你沒有安裝可以通過以下命令進(jìn)行安裝。
sudo apt install wireshark-qt
有關(guān)如何使用Wireshark進(jìn)行分析的內(nèi)容,請參閱:https://blog.attify.com/exploiting-iot-enabled-ble-smart-bulb-security/
或者,你也可以在像nano這樣的文本編輯器中打開捕獲文件。
使用 nRF Connect
nRF connect同樣可用于嗅探和寫入數(shù)據(jù)。
第6步:打開nRF Connect app并連接BLE燈泡。
第7步:連接后,寫入payload值56b0306000f0aa。點(diǎn)擊發(fā)送后,燈泡的顏色將會(huì)發(fā)生改變。
這是因?yàn)轭伾腞GB值為176,48,96或B03060(十六進(jìn)制)。 我們發(fā)給燈泡的命令是56 b0 30 60 00 f0 aa。第二個(gè),第三個(gè)和第四個(gè)字節(jié)分別對(duì)應(yīng)于十六進(jìn)制的RGB值。
使用 Bleach 攻擊 BLE
Bleah是一款基于bluepy python庫的BLE藍(lán)牙掃描器。
在開始使用它之前,我們需要滿足以下軟硬件條件:
硬件
運(yùn)行Linux的電腦最好是Ubuntu系統(tǒng)
智能BLE燈泡或任何其他藍(lán)牙智能設(shè)備
藍(lán)牙適配器
軟件
Python 2.7(已在Ubuntu上默認(rèn)安裝)
Bluepy library
Bleah
首先,我們需要確保Bluepy庫能正常工作。
轉(zhuǎn)到bluepy目錄,打開終端并輸入:
sudo ./bluepy-helper 0
le on
如下所示: 
(注:Bluepy的安裝路徑,只需運(yùn)行bluepy-helper即可找到)
 success表明Bluepy運(yùn)行正常。下面,讓我們看看如何使用Bleah攻擊BLE。



熱門文章
  • 機(jī)械革命S1 PRO-02 開機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點(diǎn)不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對(duì)講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開機(jī)界面...
  • 常見打印機(jī)清零步驟
  • 安裝驅(qū)動(dòng)時(shí)提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門維修

    報(bào)修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號(hào):遼ICP備2023002984號(hào)-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 少妇人妻偷人精品无码视频| 亚洲成a∨人片在无码2023| 永久免费无码网站在线观看个| 久久久精品天堂无码中文字幕| 永久免费无码网站在线观看个| 熟妇无码乱子成人精品| 一区二区三区无码高清| 亚洲色av性色在线观无码| 国产V片在线播放免费无码| 亚洲Av永久无码精品一区二区| 亚洲ⅴ国产v天堂a无码二区| 色欲香天天综合网无码| 无码射肉在线播放视频| 无码人妻丰满熟妇精品区| 粉嫩高中生无码视频在线观看| 韩国无码AV片在线观看网站 | 日韩av无码久久精品免费| 亚洲AV无码之日韩精品| 精品无码久久久久久国产| 无码精品国产dvd在线观看9久| 18禁超污无遮挡无码免费网站| 粉嫩大学生无套内射无码卡视频 | 少妇仑乱A毛片无码| 色窝窝无码一区二区三区| 中文无码日韩欧免费视频| yy111111少妇影院无码| 最新亚洲人成无码网www电影| 亚洲成在人线在线播放无码| 人妻少妇乱子伦无码视频专区| 亚洲av无码不卡| 无码人妻久久一区二区三区| 亚洲自偷自偷偷色无码中文 | 亚洲AV无码专区电影在线观看| 日韩成人无码影院| 亚洲一级特黄无码片| 久久精品无码免费不卡| 亚洲国产精品成人精品无码区| 国模无码人体一区二区| 久久精品中文字幕无码| 人妻丰满熟妇岳AV无码区HD| 精品无码国产污污污免费网站|