成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于BLE的IoT智能燈泡的安全漏洞利用

安全 漏洞
在這篇文章中,我們將討論如何接管基于BLE的IoT智能燈泡,與之進行交互,改變顏色,并在這個過程中考察BLE的安全機制。

前言

目前物聯(lián)網(wǎng)和智能設(shè)備已經(jīng)日益普及,并且當我們談?wù)撐锫?lián)網(wǎng)時,首先想到的往往是智能家居。智能家居通常涉及各種設(shè)備,包括智能冰箱、智能燈泡、電源適配器、水壺、烤面包機、蛋盤,等等。

[[190325]]

在這篇文章中,我們將討論如何接管基于BLE的IoT智能燈泡,與之進行交互,改變顏色,并在這個過程中考察BLE的安全機制。

在這篇文章中,我們將要向讀者介紹的主題包括:

  • 使用Ubertooth嗅探BLE
  • 主動嗅探流量
  • 修改BLE的處理程序和特征值
  • 控制設(shè)備

為了順利閱讀本文,您需要做好以下準備:

  • 硬件
  • 筆記本電腦
  • Ubertooth
  • 軟件
  • hcitool
  • ubertooth-utils
  • Gatttool

基于BLE的IoT智能燈泡的漏洞利用

將燈泡連接到電源。然后,試著使用智能手機來打開和關(guān)閉燈泡,以確保它工作正常。接下來,我們首先要做的是找到目標設(shè)備的藍牙地址。

第1步:我們使用hcitool查找主機附近存在的所有可用的BLE設(shè)備。

  1. hcitool lescan 

使用hcitool查找主機附近存在的所有可用的BLE設(shè)備

在上圖中,我們能夠看到自己周圍的多個設(shè)備的藍牙地址。通過檢查后發(fā)現(xiàn),我們的燈泡的藍牙地址看起來像是88:C2:55:CA:E9:4A,該設(shè)備的藍牙名稱是cnligh。

第2步:現(xiàn)在,我們已經(jīng)知道了目標設(shè)備的BD_ADDR(藍牙地址),接下來就可以使用gatttool來查看目標設(shè)備中運行的各種服務(wù)了。使用gatttool -I切換到交互模式,然后通過給定的BD_ADDR連接到目標設(shè)備。

  1. gatttool -I 
  2. connect 88:C2:55:CA:E9:4A 
  3. primary 

使用gatttool來查看目標設(shè)備中運行的各種服務(wù)

在上圖中,有三個主要的服務(wù)在運行,對應(yīng)于三個UUID。其中,00001800和00001801是Bluetooth SIG定義的服務(wù),而UUID 0000f371則并非由藍牙SIG定義的服務(wù)。

第3步:現(xiàn)在我們可以使用char-desc列出特定UUID(0000f371)中的所有句柄。最好指定attr和end group句柄,就本例而言為0x0010 0xffff

  1. char-desc 0x0010 0xffff 

特定的UUID 0xffff的句柄列表

在上圖中,我們給出了特定的UUID 0xffff的句柄列表。

通過觀察,我們發(fā)現(xiàn)服務(wù)0xfff1到0xfff9是由制造商定義的,其他的則是由藍牙技術(shù)聯(lián)盟采用的服務(wù),如主要服務(wù)、特征、特征用戶描述。如果您想進一步了解服務(wù)及其具體的UUID值的話,請參考https://www.bluetooth.com/specifications/gatt/services 。

第4步:這里有很多句柄同時我們不知道可以向哪些句柄寫數(shù)據(jù),所以我們嘗試用句柄值來讀取句柄

  1. char-read-hnd 0x0012 

句柄

當我們嘗試讀取句柄時,會收到如上圖所示的錯誤信息。當然,這里有點難度,因為我們不知道哪些句柄可以讀取/寫入數(shù)據(jù),甚至連數(shù)據(jù)包的格式都不知道。

為了了解數(shù)據(jù)包格式和句柄,我們可以嗅探BLE數(shù)據(jù)包。這方面,Ubertooth是一種有效的工具,可用于BLE流量的主動嗅探。

第5步:利用ubertooth-btle嗅探BLE數(shù)據(jù)包。為此,我們可以直接使用ubertooth-btle -f命令。如果您有多個設(shè)備,可以使用ubertooth-btle -f -t 與目標設(shè)備的藍牙地址。在本例中

  1. ubertooth-btle -f -t88:C2:55:CA:E9:4A 

利用ubertooth-btle嗅探BLE數(shù)據(jù)包

第6步:為了捕獲數(shù)據(jù)包,可以使用以下命令

  1.      
  2. ubertooth-btle -f -t88:C2:55:CA:E9:4A -c smartbulb_dump.pcap 

用于捕獲由文件名指定的pcap中的數(shù)據(jù)包

-c用于捕獲由文件名指定的pcap中的數(shù)據(jù)包。

現(xiàn)在打開您的燈泡手機應(yīng)用程序并連接燈泡。連接成功后,請執(zhí)行一個動作,如改變燈泡的顏色,ubertooth將捕獲所有的數(shù)據(jù)包。

燈泡的廣告包

上圖展示的是燈泡的廣告包,并且需要注意以下幾點

  • 訪問地址(AA)為0x8e89bed6,用于管理鏈路層,它是一個隨機數(shù)。
  • 它是37頻道,專們用于廣告的頻道之一。
  • 數(shù)據(jù)包PDU是ADV_IND,意味著它是可連接的,單向的和可掃描的。
  • AdvA id是88:c2:55:ca:e9:4a,這只是廣告設(shè)備的BD_ADDR
  • Type 01標志表示AdvA地址是隨機的。

如果仔細觀察上圖,我們將注意到這里有兩個值——來自目標設(shè)備的掃描響應(yīng)(SCAN_RSP)和來自應(yīng)用程序的掃描請求(SCAN_REQ)

SCAN_REQ

  • ScanA是一個6字節(jié)的掃描地址,TxAdd指示它是隨機值還是公共地址
  • AdvA是一個6字節(jié)的廣告地址,PDU中的RxAdd表示地址是公共的還是隨機的

SCAN_RES

  • AdvA是一個6字節(jié)的廣告地址,TxAdd表示地址的類型,是隨機的還是公開的
  • ScanRspData是來自廣告客戶的可選廣告數(shù)據(jù)

Connec_REQ

Connec_REQ

下圖展示的是嗅探到的數(shù)據(jù)

嗅探到的數(shù)據(jù)

第7步:下面使用wireshark分析捕獲的數(shù)據(jù)包,首先啟動wirehark,然后打開捕獲的pcap文件。

使用wireshark分析捕獲的數(shù)據(jù)包

這時,它將顯示所有捕獲的數(shù)據(jù)包。

第8步:現(xiàn)在我們需要在這些捕獲的數(shù)據(jù)包中查找ATT數(shù)據(jù)包。其中,最簡單的方法就是使用wireshark中的過濾器選項,即鍵入btl2cap.cid == 0x004

查找ATT數(shù)據(jù)包

如果我們觀察上圖,會發(fā)現(xiàn)這里只有ATT數(shù)據(jù)包和數(shù)據(jù)包方面的信息。

第9步:這里,我們在改變燈泡的顏色的同時已經(jīng)捕獲了數(shù)據(jù)包,所以讓我們來研究一下寫請求數(shù)據(jù)包。

現(xiàn)在我們知道數(shù)據(jù)將被寫入句柄0x0012,該句柄屬于我們需要弄清楚的某個UUID。

第10步:如果我們分析特定的寫請求包,我們可以發(fā)現(xiàn)相應(yīng)的訪問地址、CRC值、操作碼、句柄和UUID

在上圖中我們可以看到

  • 訪問地址:0xaf9a9515
  • 主從地址
  • CRC:0x6dcb5
  • 句柄:0x0012
  • UUID:0xfff1
  • 值:03c90006000a03000101000024ff000000006

  • 報頭長度為2字節(jié),它緊隨PDU之后
  • 模式選擇是硬編碼的,用于控制燈的顏色
  • 0024ff是RGB值,如果改變這6個字節(jié)的內(nèi)容,就可以獲得所需的顏色

第11步:我們可以使用gatttool將值寫入特定句柄或UUID,

  1. char-write-req 0x0012 03c90006000a03000101000024ff00000000 //bluish green 
  2. char-write-req 0x0012 03c90006000a0300010100ff000000000000 // Red 
  3. char-write-req 0x0012 03c90006000a030001010000ff0000000000 //Green 
  4. char-write-req 0x0012 03c90006000a03000101000000ff00000000 // Blue 
  5. char-write-req 0x0012 03c90006000a03000101000024ff00000000 //bluish green 
  6. char-write-req 0x0012 03c90006000a0300010100ff000000000000 // Red 
  7. char-write-req 0x0012 03c90006000a030001010000ff0000000000 //Green 
  8. char-write-req 0x0012 03c90006000a03000101000000ff00000000 // Blue 

第12步:若要打開和關(guān)閉燈泡,可以更改數(shù)據(jù)中的開/關(guān)位

  1. char-write-req 0x0012 03c90006000a030101010000000000000000 //Off 
  2. char-write-req 0x0012 03c90006000a0300010100ff000000000000 //On 
  3. char-write-req 0x0012 03c90006000a030101010000000000000000 //Off 
  4. char-write-req 0x0012 03c90006000a0300010100ff000000000000 //On 

03c90006000a030101010000000000000000將關(guān)閉燈泡,RGB值應(yīng)為零,否則燈泡不會關(guān)閉

 

03c90006000a0300010100ff0000000000000將打開燈泡,這里RGB值是強制性的。

責任編輯:趙寧寧 來源: 安全客
相關(guān)推薦

2010-01-03 20:52:27

2011-07-29 10:46:44

2016-12-05 09:50:17

2022-04-29 15:53:20

網(wǎng)絡(luò)安全漏洞隱私

2022-04-25 13:47:03

安全漏洞勒索軟件

2014-10-08 09:25:30

2014-07-09 14:39:09

2010-10-08 13:08:47

2020-08-16 08:50:03

Zoom網(wǎng)絡(luò)攻擊漏洞

2014-05-09 09:58:04

2010-07-26 15:37:12

telnet安全漏洞

2015-07-08 10:06:38

2022-09-21 13:30:39

公有云安全漏洞

2010-06-08 14:32:08

2011-03-23 14:54:34

2014-06-03 11:36:18

2014-06-03 09:23:41

2021-08-14 20:21:21

漏洞勒索軟件攻擊

2023-08-25 13:47:53

2013-09-03 15:45:50

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品久久久久一区二区国产 | 精品视频国产 | 日本午夜精品一区二区三区 | 一区二区三区电影在线观看 | 国产精品免费一区二区三区 | 日韩一二三区视频 | 精品久久九九 | 人成在线视频 | 日韩中文视频 | 99国内精品久久久久久久 | 亚洲第一av | 有码在线 | 国产精品成av人在线视午夜片 | av中文字幕网 | 亚洲激情一区二区 | 日韩精品免费在线 | 一区二区三区国产精品 | 久久中文字幕在线 | 日本特黄a级高清免费大片 特黄色一级毛片 | 日韩中文一区 | 亚洲成人av | 综合久久av | 国产乱码精品1区2区3区 | 久久国产欧美日韩精品 | 九九九精品视频 | 欧美一区免费 | 亚洲人成人一区二区在线观看 | 范冰冰一级做a爰片久久毛片 | 精品久久香蕉国产线看观看亚洲 | 国产精品久久99 | 91视视频在线观看入口直接观看 | 亚洲iv一区二区三区 | 成人欧美一区二区三区在线播放 | 日美女逼逼 | 欧美成人精品在线 | 国产亚洲精品久久19p | 欧美精品在线一区 | 国产男女视频网站 | 99精品亚洲国产精品久久不卡 | 国产精品久久久久久久久久久久久久 | 亚洲欧美中文日韩在线v日本 |