近年來智能家居日益普及,涌現了各式各樣的產品,如智能電視、智能插座、智能燈泡、智能門鎖、智能攝像頭。智能家居為我們的生活提供了便利,帶來了對未來的無限想象空間。然而,大多數智能家居產品在安全性方面的表現堪憂,可以這么說吧,就像飛機上的一顆隱形炸彈隨時可能被引爆。
對于智能設備的安全性,也有很多安全研究者開始關注,比如近期神話鬼斧實驗室最近在汽車防盜系統方面的研究。當然,我們也在關注和研究,部分成果可以參考這篇物聯網安全研究聯合團隊的文章《潛伏在身邊的危機——智能設備安全》。
筆者前段時間跟團隊一起參加了今年的GeekPwn(很棒的一個關注智能生活安全的比賽),對某款智能插座進行了分析并發現了一些問題,可惜在比賽過程中出了點意外導致演示失敗。不過沒有關系,本文就通過這個智能插座的問題管中窺豹一探智能生活安全。文中涉及的漏洞已經由GeekPwn官方通知廠商修復。
【發現】
該插座的控制示意圖如下:
過程:
1)手機APP通過智能插座自帶WIFI完成配置,告知智能插座路由器密碼;
2)智能插座通過路由器連接服務器;
3)手機APP與智能插座同時連接服務器,利用xmpp協議通信,完成手機APP對智能插座的控制、升級等操作
另外,插座固件升級過程:手機向服務器發送升級請求,服務器向智能插座發送升級的固件地址,智能插座自行下載固件并完成升級。
對固件升級過程抓包,可以發現,智能插座會通過HTTP從固定的URL下載更新固件y2.bin以及校驗碼y2.bin.md5。很明顯,這里存在中間人攻擊的可能性。
【進一步分析】
Binwalk解壓升級固件y2.bin,可知該插座使用的是openwrt系統。
查看shadow文件,發現root用戶默認密碼p9zxxx。
nmap掃描,該插座開放了tcp 22(SSH)端口。
于是乎果斷嘗試,SSH直接登錄上去了。使用系統自帶的sysupgrade便可以直接更新固件。該過程未校驗待刷固件是否比當前固件版本高,還存在固件降級的漏洞。
在解壓出來的固件中植入反彈shell的代碼,并打包固件。Openwrt自帶的nc是不帶-e選項的,使用一個小技巧便可綁定指定端口,如下圖所示。Openwrt squashfs ROM的重打包方法參考這篇文章(注:重打包的過程如果稍有差錯,將會直接把智能硬件刷成磚。筆者成功刷壞了兩個插座)。
【一次實際的滲透測試】
嘗試搭建中間人攻擊的環境。由于在路由器上不方便對HTTP包做修改,故采用局域網內DNS欺騙的攻擊方式,網絡環境如圖所示。
位于同一局域網的攻擊者使用ettercap的dns_spoof模塊進行攻擊。
此時用戶使用手機APP向插座發送固件升級指令。可以看到,已成功實施兩次DNS欺騙。一次是y2.bin,一次是y2.bin.md5。
更新固件后,重新啟動插座。公網主機成功獲得反彈shell,如下圖所示。
由于條件有限,只演示了DNS欺騙這種攻擊場景。其它可行的中間人攻擊方式還有在路由器或主干網修改請求包的URL,以及利用ARP攻擊修改HTTP請求返回的數據。由此可見,智能插座使用HTTP傳輸同時又沒有實施有效的文件校驗(比如用非對稱加密算法),實非明智之舉。
【結語】
智能硬件存在諸多的安全隱患,其中不僅僅是用戶隱私,還可能涉及人身安全。正如《網絡犯罪調查》中的情節,罪犯遠程控制嬰兒攝像頭,發現父母的作息規律,趁父母睡覺時偷走嬰兒。
最后還是希望智能硬件廠商能夠更加注重安全,提供安全的智能生活。我們也會對行業盡自己的一份力,建設更安全的物聯網。
版權所有:鄭州三中網安科技有限公司 豫ICP備2020036495號-1 ?? | 豫公網安備 41019702002241號 | 站點地圖 | 人才招聘 | 聯系我們 |