詳解藍牙Bluebugging攻擊技術(shù)
目前流行的藍牙協(xié)議版本應(yīng)該是2.0和2.1,但作為2005年以前生產(chǎn)的手機、PDA等便 攜式設(shè)備,普遍使用的是1.1版本。而無論是早期的藍牙1.1還是現(xiàn)在的藍牙2.0,都已經(jīng)被 公布出是存在漏洞和潛在攻擊隱患的。至于這些漏洞的具體內(nèi)容是什么,又如何表現(xiàn),本節(jié) 就來講述較為有名的Bluebugging攻擊。
13.3.1 基本概念
1.關(guān)于Bluebugging攻擊
Bluebugging允許惡意攻擊者利用藍牙無線技術(shù)通過連接手機隱藏且未經(jīng)保護的頻道, 在事先不通知或提示手機用戶的情況下訪問手機命令。此缺陷可以使惡意的攻擊者通過手機 撥打電話、發(fā)送和接收短信、閱讀和編寫電話簿聯(lián)系人、偷聽電話內(nèi)容以及連接至互聯(lián)網(wǎng)。 雖然現(xiàn)在很多智能手機已基本不受其影響,但是仍舊有大量的手機面臨此類攻擊的威脅,比 如一些采用MTK解決方案的國產(chǎn)手機。
2.何謂MTK
目前市場上主流的平臺有TI、摩托羅拉、飛利浦、MTK、ADI、展訊、英飛凌、凱明 等。一般來說,在服務(wù)方面所有手機平臺沒有特別大的差別。MTK公司的產(chǎn)品因為集成較 多的多媒體功能、容易開發(fā)的特點及較低的價格在手機公司和手機設(shè)計公司待到廣泛的應(yīng) 用。MTK全名MediaTek,是我國臺灣聯(lián)發(fā)科技多媒體芯片提供商研制的一種高度集成的多 媒體基帶芯片方案,是一個主要應(yīng)用于手機的廉價解決方案。
對消費者來說買MTK方案的手機主要是因為功能多價格便宜。雖然MTK曾一度被戲 稱為黑手機,但很多手機廠商都是用MTK的方案,因為其縮短了產(chǎn)品研發(fā)周期,使得手機 廠商能夠更加靈活地應(yīng)對市場多變的需求。雖然MTK有很多缺點,但是該解決方案的實際 表現(xiàn)證明了其強大的生命力,龐大的市場占有率和銷量都是其他平臺所無法企及的。MTK 并不像很多人認為的那樣僅僅是黑手機的標志,即使是MTK手機也是有區(qū)別的。品牌手機 無論是在做工還是保修上肯定要比一些低端手機生產(chǎn)廠商拼裝的黑手機強得多。而這些廠家 生產(chǎn)的MTK手機其外觀常與某些大品牌的手機產(chǎn)品類似,甚至在名稱上也使用了Nokai、 Anycoll等相似名稱來迷惑消費者,圖13-55所示為某MINI手機。而圖13-56為所示的手機 是D899,外觀上與時下流行的iPhone相似。
圖13-55 圖13-56
本節(jié)中的內(nèi)容適用對象也包含了使用MTK芯片的部分手機,這一點請大家注意,
13.3.2工具準備
大多數(shù)的藍牙工具在Linux下默認已安裝,如hciconfig、hcitool等,主要需要安裝的是 minicom這款Linux下的終端工具。
Linux下的minicom的功能與Windows下的超級終端功能相似,可以通過串口控制外部 的硬件設(shè)備。適于在Linux通過超級終端對嵌入式設(shè)備進行管理。同樣也可以使用minicom 對外置Modem等進行控制。對于BackTrack4 Linux的用戶來說,minicom已經(jīng)內(nèi)置安裝完 畢無須再下載。
對于Linux下的用戶,可以從http://alioth.debian.org/projects/minicom/下載minicom的安 裝包至本地再安裝。
至于Linux下的具體安裝命令,參考如下:
13.3.3攻擊步驟
下面以目前在國內(nèi)廣泛流行的低端手機為例來演示Bluebugging 攻擊。如圖13-57所示,作為本節(jié)演示用的低端手機名為Anycoll, 與三星Anycall品牌中的某一款型極其相近。這款用于測試的低端手 機采用的就是MTK芯片。
關(guān)于Bluebugging攻擊的具體步驟如下:
掃描藍牙設(shè)備。
在載入藍牙適配器后,就可以對周邊開啟籃牙的移動設(shè)備進行 圖13-57 掃描了,具體命令如下:
按IEnter]鍵后即可看到圖13-58所示的內(nèi)容,可以看到發(fā)現(xiàn)一個名為MTKBTDEVICE 的設(shè)備,該設(shè)備即為測試用的低端手機,這個名稱是其內(nèi)置的藍牙芯片名稱,其中,MTK 表示出其芯片廠商,而BT即Bluetooth的縮寫,DEVICE就是設(shè)備的縮寫。
一般在搜索到開啟藍牙功能的設(shè)備后,會使用L2ping測試與該設(shè)備的藍牙模塊之間是 否數(shù)據(jù)可達,具體命令如下:
按【Enter]鍵后即可看見圖13-58所示的內(nèi)容,會顯示出類似于“6 sent,6 received, 0% loss”的提示,即“發(fā)送6個包,收到6個包,沒有丟失”的意思。
圖13-58
查找串行端口服務(wù)。
為了獲取手機的控制權(quán),需要連接目標設(shè)備的串行端口。所以需要通過藍牙來搜索關(guān)于 串行端口的服務(wù)。這里需要使用到sdptool工具,這里使用的具體命令如下:
其中,browse用于瀏覽所有可用服務(wù),主要是列出所有隱藏的服務(wù)內(nèi)容、工作頻道等。 按IEnter]鍵后可以看到出現(xiàn)了詳細的服務(wù)列表,這些都是該手機設(shè)備支持的服務(wù)內(nèi)容, 如圖13-59所示。
對于攻擊者而言,需要找到串行端口即Serial Port的信息,在sdptool命令返回的內(nèi)容 中查看,即可看到名為Serial Port的內(nèi)容,其中,主要需留意的是Channel即頻道的數(shù)值。 如圖13-60所示,這里的Channel為10,即串口使用的隱藏頻道是10。
圖13-59 圖13-60
配置藍牙連接設(shè)置。
接下來需要對Ubuntu下的藍牙配置文件進行修改和設(shè)置,具體命令如下:
在上述命令中,nano是Linux下一款工作在Shell下的編輯工具,rfcomm.conf別是藍牙 連接的配置文件。按IEnterl鍵后即可看到圖13-61所示的內(nèi)容,當然,對于之前很少在 Linux下使用藍牙的讀者,實際看到的內(nèi)容可能與圖13-61所示的稍有偏差,請將原始的配 置文件內(nèi)容修改成與圖13-61所示的一致。其中,在device后面輸入需要連接的目標藍牙設(shè) 備MAC,這里就是上面使用hcitool搜索到的藍牙設(shè)備MACo然后在channle后面輸入Serial Port的頻道數(shù)值,這里就是上面使用sdptool 列出的內(nèi)容,即10頻道。
配置完畢后,按ICtrl+X】組合鍵退 出,注意選擇Y保存。然后開始配置設(shè)備的 映射:
其中,bind綁定在某一個設(shè)備上,這里 指與目標藍牙設(shè)備之間建立映射關(guān)系,也就 是rfcomm0指代目標設(shè)備。 按LEnterl鍵后就可以開始配置終端工具 nurucom。
圖13-61
配置minicom。
◇在使用minicom連接之前,需要先對串口進行設(shè)置,具體命令如下:
其中,-s用于進入setup模式,即配置模式。
@按【Enterl鍵后即可看到圖13-62所示的配置菜單,使用方向鍵在菜單中選擇Serial
port setup選項并按【Enter]鍵,該選項主要設(shè)置串口。
在打開的設(shè)置框中,確保Serial Device選項設(shè)置為/dev/rfcomm0,與前面綁定的一 樣,具體如圖13-63所示。然后在配置菜單中選擇Save setup as dfl保存【一定要 記得這一步),提示成功后再選擇Exit from Minicom退出菜單。
圖13-62 圖13-63
實施Bluebugging攻擊。
④一切配置無誤后,就可以開始進行Bluebugging攻擊了,先確定目標手機設(shè)備在藍
牙適配器的工作范圍內(nèi),然后輸入如下命令:
④按【Enter]鍵后即可看到圖13-64所示的內(nèi)容,成功連接至該手機設(shè)備。此時,受害者手機上會出現(xiàn)“串口已連接”的提示,不過該提示會一閃而過,不需要對方的確定。這時,攻擊者就已經(jīng)成功地獲取了該手機的控制權(quán)。 ◇現(xiàn)在攻擊者已經(jīng)可以對該手機進行任意操作了,包括命令該手機向外拔打電話、讀
取手機短信、編寫短信向外發(fā)送、讀取通話記錄等。比如輸入?yún)?shù)如下:
其中,atdt num參數(shù)用于拔打電話,后面的num為具體的電話號碼,需要注意的是,由 于機型的不同,有時在撥打手機時需要加入086這樣的國際區(qū)號。
按【Enter】鍵后如圖13-64所示,此時受害人的手機會自動拔打該號碼。 作為攻擊者而言,當然不會簡單地撥 號那么簡單,輸入?yún)?shù)如下:
參數(shù)解釋:
at+cpbr=[,] 參數(shù) 用于查詢手機中電話薄的內(nèi)容。其中,在 indexl處輸入序號,即可查詢該順序號碼 下的電話號碼。若需要查詢某一段號碼, 則在indexl處輸入起始位,在index2處輸入結(jié)束位即可。
圖13-64
該命令的意思是列舉出手機電話號碼薄中l(wèi)~ 100住的內(nèi)容。按IEnterl鍵后就可看到圖 13-65所示的內(nèi)容,自動將讀取的前100位號碼全部列舉出來。此時,受害者的手機是沒有任何 提示和反應(yīng)的。
從圖13-66可以看出,由于該手機中只存了70個號碼,所以經(jīng)過數(shù)秒后,就成功地將 全部號碼讀取完畢了。
圖13-65 圖13-66
由此可見Bluebugging攻擊的危害性,而由于攻擊者已經(jīng)獲得了該手機的全部控制權(quán), 更可以以此做出更多嚴重的危害,比如撥打惡意聲訊臺詐取高額話費、騷擾他人、偽造短信 騙取錢財、偽造身份等,由于本節(jié)僅為研究和探討B(tài)luebugging攻擊的存在形式,所以更進 一步的操作就不再演示了。不過為方便安全及滲透測試人員進行深一步的安全測試,下面給 出幾個常用的手機測試參數(shù),具體如表13-2所示。
表13-2
13.3.4小結(jié)
關(guān)閉藍牙是最簡單且有效的方法。若是確實需要藍牙功能,那么應(yīng)當設(shè)置為不可見。升 級固件也是個好方法,只是對于一般用戶來說稍有難度。
13.4 藍牙D,O.S
前面說到了針對目前Wi-Fi無線網(wǎng)絡(luò)的D.O.S攻擊的原理、工具及方法,本章主要講解 關(guān)于藍牙D.O.S的知識。 13.4.1 關(guān)于藍牙D.O.S
在傳統(tǒng)的有線網(wǎng)絡(luò)中,早期的D.O.S攻擊方式中有一種被稱為“死亡之Ping”的攻擊方 式,這種攻擊是以向目標主機發(fā)送大量畸形的ICMP數(shù)據(jù)包的方式,使得目標計算機忙于響 應(yīng)從而達到資源耗盡死機的目的。這種攻擊在以前對于Windows 98之類的系統(tǒng)很有效,但 隨著系統(tǒng)內(nèi)核的升級等原因,對于現(xiàn)在的Windows系統(tǒng)都已經(jīng)失效了。不過,若能集合足 夠數(shù)量的機器,還是可以造成龐大的D.O.S數(shù)據(jù)流。
L2ping是一款用于測試藍牙鏈路連通性的工具,主要在Linux下使用。這款工具 類似于平時使用的Ping俞令,能夠?qū)λ{牙連通情況做出回饋。不過這款工具并不需要 先使用PIN碼建立連接,而是對藍牙適配器探測范圍內(nèi)的藍牙設(shè)備都可以進行連通性 測試。
在藍牙安全測試中,該工具也可用于進行基礎(chǔ)的藍牙D.O.S攻擊,通過對指定設(shè)備 發(fā)送大量連通數(shù)據(jù)包來進行淹沒式攻擊。而使用L2ping進行藍牙D.O.S的原理與Ping of Death類似,只不過傳輸手段換成了藍牙協(xié)議,而對象則換成了藍牙設(shè)備。關(guān)于L2ping的資 料大家可以在http://linuxcommand.org/man_page s/12pingl .html網(wǎng)站中查看。
13.4.2 藍牙D.O.S實戰(zhàn)
下面就來講解如何操作,作為本書中一直在推崇的BackTrack4 Linux同樣也內(nèi)置了 L2ping,所以就不需要再次安裝了。具體操作步驟如下:
載入藍牙適配器。
在開始實戰(zhàn)前需要先載入筆記本電腦內(nèi)置的或者外置藍牙適配器,具體命令如下:
參數(shù)解釋:
●hci0:此為藍牙適配器名稱,一般都為hci0,若同時使用多個藍牙適配器,則第二個 就是hcil,以此類推。
●up:與ifconfig類似,up就是載入該設(shè)備,若是不再使用適配器,此處應(yīng)當使用down來卸載該設(shè)備。
一般都會先輸入hciconfig來查看是否有藍牙設(shè)備插入,若有hci0存在,再執(zhí)行hciconfig up來激活,若沒有任何回應(yīng),則應(yīng)該重新插入藍牙適配器,具體如圖13-67所示。
圖13-67
掃描藍牙設(shè)備。
接下來確認攻擊目標,需要掃描周邊的藍牙設(shè)備,具體命令如下:
由于之前的小節(jié)已經(jīng)詳細講解了該命令,這里就不再解釋了。執(zhí)行效果如圖13-68所示, 可以看到掃描出一個開啟藍牙的設(shè)備,MAC地址為“00:12:D2:91:34:C8”,設(shè)備名稱為 Christopher Yang。
圖13-68
對藍牙設(shè)備進行D.O.s攻擊。
既然目標已確認,那么就可以直接開始連通性測試了,L2ping的基本命令很簡單,具 體如下:
其中,目標MAC用于此處輸入之前掃描得到的目標藍牙設(shè)備的MAC地址。
按LEnterl鍵后,將看到類似于如下所示的內(nèi)容:
在默認情況下,Linux下和Windows下的Ping命令不同,使用上述命令會持續(xù)發(fā)包, 直到按【Ctrl+C】組合鍵來終止。默認發(fā)包的大小為44字節(jié),如圖13-69所示。
圖13-69
就好比在傳統(tǒng)有線網(wǎng)絡(luò)中使用Ping命令一樣,由于發(fā)送數(shù)據(jù)量很少,所以上面的操作 及命令只能算是藍牙連通性測試,而不能算是藍牙D.O.S。那么,想要對目標藍牙設(shè)備造成 D.O.S攻擊,則應(yīng)該增大藍牙數(shù)據(jù)流,具體命令如下:
參數(shù)解釋:
●-s num:定制發(fā)送數(shù)據(jù)包的大小,而num處則是輸入具體的數(shù)值。
●目標MAC:此處輸入之前掃描得到的目標藍牙設(shè)備的MAC地址。 大家需要注意返回的數(shù)據(jù)報文的延時,如圖13-70所示,當設(shè)置包大小為2000字節(jié)時, 延時達到了160ms左右,而之前在默認情況下應(yīng)為40ms左右,可見隨著單包容量的增大, 目標設(shè)備的響應(yīng)也開始變得緩慢了
圖13-70
如圖13-71所示,當數(shù)據(jù)包變?yōu)?000字節(jié)時,延時增長到2000ms左右,可見由于數(shù)據(jù) 包的增大,確實使得目標耗費了大量的資源進行處理,也就造成了響應(yīng)的緩慢。
圖13-71
類似地,如圖13-72所示,當數(shù)據(jù)包變?yōu)?0000字節(jié)時,延時增長到7500ms左右,目 標的藍牙模塊或適配器耗費了大量的運算性能進行處理,從而響應(yīng)也變得愈發(fā)緩慢。
圖13-72
檢查攻擊效果。
由圖13-73可以看到,在攻擊前,使用hcitool還能探測到開啟藍牙的PDA設(shè)備,而在 遭到攻擊后,則無法探測到,或者出現(xiàn)時而能夠探測到,時而不能探測到的情況。
圖13-73
需要注意的是,包的大小也不能設(shè)置得太大,對于不同的藍牙適配器,能夠承受的程度 也不一樣,比如當設(shè)置為10000字節(jié)時,如圖13-74所示,直接就提示連接被中斷了。而比 較圖13-72,那款Broadcom芯片的藍牙適配器是可以達到40000字節(jié)的。
圖13-74
13.4.3 藍牙D.O.S測試問題
為了解決初次學習藍牙攻擊可能遇到的幾種情況,本節(jié)也給出了對應(yīng)的解釋。
1.目標藍牙芯片不支持
當發(fā)送的藍牙通信數(shù)據(jù)包大小過于龐大,超過目標設(shè)備藍牙芯片默認所能接受時,會失 去響應(yīng)或者直接拒絕響應(yīng),具體如圖13-75所示。
2.程序出錯
若長時間用于進行大數(shù)據(jù)流的藍牙D.O.S攻擊,L2ping也會出現(xiàn)一些莫名的錯誤,如圖 13-76所示,會顯示當前程序已經(jīng)在執(zhí)行中,這往往是程序在緩存上出現(xiàn)問題所導致的。
3.遠程藍牙設(shè)備關(guān)閉,或者關(guān)機、重啟
當突然無法探測到藍牙設(shè)備時,比如對方關(guān)閉藍牙功能、關(guān)機或重啟等,也會現(xiàn)如 圖13-77所示的提示Host is down,即目標已關(guān)閉。
具體的安全防護及改進方法請看接下來的內(nèi)容。
13.5 安全防護及改進
下面給出比較有效的幾種改進現(xiàn)有藍牙設(shè)備安全性的方法,供大家參考。
13.5.1 關(guān)閉藍牙功能
最簡單的方法也是最有效的方法即關(guān)閉藍牙功能,看到這一項估計有很多讀者會顯得頗 不以為然。但是事實證明,目前有很多用戶在購買了全新手機后,由于對很多手機默認設(shè)置 藍牙開啟的不了解,所以導致自己手機藍牙功能長期處午開啟狀態(tài)但卻毫不知情,增加了自 身隱私泄露的隱患。 經(jīng)過實際檢查證明,絕大多數(shù)朋友開啟藍牙都并非本意,但自己卻毫不知情,無形中增加 了風險。例如,可能是與朋友聚會時,偶爾用藍牙傳輸一兩張照片或者文件,但用完忘了關(guān); 或者有家人玩手機,無意中打開藍牙,但歸還后自己卻未發(fā)現(xiàn)等。根據(jù)筆者的經(jīng)驗,這類情況 時常會出現(xiàn)。由此可見,定期檢查及關(guān)閉智能手機的藍牙功能將有必要成為一種習慣。
13.5.2設(shè)置藍牙設(shè)備不可見
其實有一個很簡單的辦法就是將藍牙功能設(shè)置為不可見,所謂不可見就是不能夠被其他 藍牙設(shè)備直接搜索到,只有之前連接過的藍牙設(shè)備才可以直接連接此設(shè)備。具體如圖13-78 所示,在安裝了Windows Mobile 6系統(tǒng)的智能手機上,進入藍牙配置頁面,取消勾選“使此 設(shè)備對其他設(shè)備可見”復(fù)選框即可實現(xiàn)藍牙功能不可見。
13.5.3 限制藍牙可見時長
直接關(guān)閉可見模式可能對于一些用戶而言,反而會造成一些麻煩。那么,也可以通過限 制可見模式的時長來達到加強安全性的目的。如圖13-79所示,對于使用Windows Mobile 系統(tǒng)的智能手機而言,進入到藍牙配置頁面下,可以將藍牙昀可見時間設(shè)置為5分鐘,即5 分鐘后該智能手機的藍牙功能將自動轉(zhuǎn)為“不可見”模式。這樣,就有效地防止了可能的藍 牙掃描及攻擊隱患。
圖13-78 圖13-79
13.5.4升級操作系統(tǒng)至最新版本
應(yīng)及時將鐲氍手機的操作系統(tǒng)或者固件升級到最新的版本。尤其是那些既需要藍牙功 能,又需要不時使用藍牙與朋友分享桌面、音樂、鈴聲以及圖片或者傳送文件的朋友,避免 藍牙安全漏洞隱患最好的辦法就是升級手機的操作系統(tǒng),比如將智能手機默認的Windows Mobile 5.0/6.1版系統(tǒng)升級為官方最新的6.5版本系統(tǒng)。
13.5.5設(shè)置高復(fù)雜度的PIN碼
通常情況下,藍牙耳機等便攜式外設(shè)默認PIN碼長度均為4位數(shù),且一般為純數(shù)字的簡 單組合,如1234、0000、1111等。即使個別產(chǎn)品支持額外配置PrN碼,但很多人為了方便 起見,仍然會使用三四位純數(shù)字這樣簡單的密碼。
同樣地,在具備藍牙功能的智能手機與筆記本電目崮藝間通過藍牙連接時,一樣需要配置 PIN碼,在這里就需要注意使用在本章前面講述的長度達6位的隨機PIN碼進行連接,盡可 能地不要使用弱PIN碼。
13.5.6 拒絕陌生藍牙連接請求
對于手機或者PDA上突然出現(xiàn)的藍牙連接提示,應(yīng)明確來源。若無法確定來源,應(yīng)拒 絕接受藍牙連接請求,這樣可最大可能地避免藍牙攻擊及病毒的侵擾。
13.5.7拒絕可疑藍牙匿名信件
同樣地,當自己的手機上顯示為一個藍牙信息收取,而來源是并不熟悉的其他設(shè)備時, 應(yīng)拒絕接收,這樣同樣對避免藍牙攻擊及病毒的侵擾有所幫助。
13.5.8啟用藍牙連接驗證
對于智能手機或者使用外置藍牙適配器的筆記本電腦而言,開 啟強制安全驗證將有效地確保通過藍牙信道傳輸?shù)陌踩。在開啟 驗證后,所有的藍牙連接操作都將經(jīng)過對方的同意,比如通過藍牙 發(fā)送文件,則接收方的設(shè)備上會出現(xiàn)連接提示,只有接收方選擇同 意后,文件才能夠通過藍牙發(fā)出。
如圖13-80所示,應(yīng)確保在藍牙配置中無線發(fā)送驗證頁面的“需 要驗證”選項是開啟的。
圖13-80