主題是對付LIFX燈膽的,LIFX是一款智能燈膽,它可以或許用WIFI節制,節能,多色彩表現,可以或許利用Android或iOS手機節制。咱們之以是抉擇對這款產物停止研討,重要是因為它利用了新興的無線網絡協定,投入市場的方法和先輩的技巧深深的吸引了咱們。
2012年9月,LIFX名目開端于Kickstarter眾籌平臺,該產物剛開端在眾籌平臺上線就受到了投資者們的青眼,其召募到的資金是其原始目的資金的13倍以上。
LIFX燈膽平日必要銜接到WiFi網絡,以便利用智能手機利用法式可以或許對燈膽停止節制。在有多個燈膽可用的情況下,只有一個燈膽將銜接到網絡。這個“主”燈膽從智能手機利用法式上接管敕令,并經由進程802.15.4 6LoWPAN無線網絡將其播送到其余燈膽。

WiFi和802.15.4 6LoWPAN mesh網絡
在主燈膽封閉或與WIFI網絡斷開銜接的情況下,體系會從殘剩燈膽中從新抉擇一個燈膽作為主裝備,并使其銜接到WiFi網絡,新主裝備繼承將敕令發送到其余燈膽。這類一次只必要銜接一個燈膽到WiFi上的架構具備很多長處,其中包含殘剩燈膽在不亮時以低功率運轉,另有便是可以或許使燈膽網絡的可用規模遠遠跨越WiFi網絡的籠罩規模,如許可以或許削減WiFi網絡的堵塞。
不用說,LIFX燈膽利用的新興無線通訊協定,mesh網絡布局和主/從通訊方法深深吸進了“黑客”的留意力,是以咱們拿起了幾個燈膽并開端了咱們的研討之旅。該博客針對LIFX固件1.1版本停止了研討和闡發,而且自從向LIFX申報了研討成果以后,該公司曾經對固件1.1版本停止了進級,如今1.2版本曾經可供下載了。
開啟入侵攻擊之旅
LIFX燈膽網絡中有如下三個焦點通訊組件:
1.智能手機到燈膽的通訊
2.燈膽WiFi通訊
3.燈膽網絡通訊
闡發初始階段碰著的最大困難是新技巧和實踐常識帶給咱們的挑釁,是以咱們籌備從燈膽內的802.15.4 6LoWPAN無線mesh網絡開端動手,以檢查其能否存在破綻漏洞bug。具體來講,咱們決議研討LIFX燈膽是如安在6LoWPAN mesh網絡之間同享WiFi網絡憑據的。
6LoWPAN是一種基于IEEE 802.15.4構建的無線通訊尺度,與Zigbee利用的根本尺度雷同,該尺度容許經由進程低功率的Personal Area Networks (PAN)轉發IPv6數據包。為了監控和注入6LoWPAN流量,咱們必要一個基于802.15.4尺度的核心裝備。在此義務中咱們抉擇的裝備是安裝了Contiki 6LoWPAN固件鏡像的ATMEL AVR Raven ,該裝備供給了一個尺度的網絡接口,經由進程該網絡接口咱們可以或許監控和注入網絡流量到LIFX mesh網絡。
協定闡發
經由進程上述網絡接口,咱們可以或許監控并將網絡流量注入到LIFX mesh網絡中。經由進程察看咱們發覺到LIFX網絡在很大程度上是未加密的,是以咱們可以或許輕松地剖析其網絡協定,并結構新聞來節制燈膽并重放隨意率性數據包的有用載荷。
經由進程在LIFX網絡中增加新燈膽和同時監控從mesh網絡中捕捉的數據包,咱們可以或許辨認無關WiFi網絡憑據的特定數據包。全部新燈膽的參加進程包含主燈膽在網絡上播送有一個新燈膽參加進網絡;以后新燈膽對主燈膽的播送作出相應,并哀求傳輸WiFi憑據細節;然后主燈膽經由進程mesh網絡播送加密的WiFi憑據細節,并將新的燈膽增加到LIFX智能手機利用法式中的可用燈膽列表中。

經由進程Wireshark 6LoWPAN捕捉數據包
經由進程對捕捉到的數據包停止闡發咱們發覺到,WiFi細節(包含憑據)是被加密傳輸的,是以咱們可以或許在mesh網絡中注入數據包,以獲得WiFi細節。別的,獲得WiFi詳細信息的進程不會增加任何新裝備或在LIFX智能手機利用法式中激發任何警報。如今咱們可以或許隨意率性地從mesh網絡獲得WiFi憑據,但卻沒方法來解密它們。為了進一步的入侵攻擊,咱們必要對其利用的加密機制停止闡發。
獲得固件
咱們起首從闡發LIFX裝備的固件開端來測驗考試去破解其加密機制,一樣平常情況下,咱們只必要從供應商網站下載固件,脫殼,解密或以其余方法將其更改成咱們認識的格局就能夠或許了。但是,在研討時咱們發覺到,因為LIFX裝備剛投入市場,是以供應商還沒有向"大眾宣布可以或許闡發的固件。在這類情況下,咱們只能本身獲得LIFX裝備的固件。
為了從裝備中提取固件,咱們起首必要獲得對內嵌的微節制器的物理拜訪,這是一個異常講求技巧的獲得進程。對付門外漢來講,彷佛只不過是用錘子敲擊它,直到可以或許看到LIFX裝備的外部布局。一旦獲得內嵌的微節制器,咱們就能夠或許拜訪Printed Circuit Board (PCB)了,該裝備如下圖所示:

提取LIFX PCB
經由進程闡發獲得到PCB咱們發覺到,該器件重要由兩個片上體系(SoC)集成電路(IC)構成:一個是德州儀器CC2538,其重要賣力6LoWPAN網絡裝備的通訊,另一個是STMicroelectronics STM32F205ZG,其重要賣力WiFi端的通訊。這兩款芯片均基于ARM Cortex-M3處理器。進一步的闡發發覺到,每一個芯片上的JTAG引腳功能齊全。JTAG是Joint Test Action Group的縮寫,是IEEE 1149.1尺度的罕用稱號,它描寫了用于測試微節制器缺點的一種協定,并經由進程Test Action Port接口調試硬件。
一旦肯定了每一個芯片準確的JTAG引腳和籌備好銜接到芯片的JTAG接口,下一步要做的工作是手動跟蹤引腳,闡發和主動探測。為了可以或許節制發送到芯片的JTAG敕令,咱們必要硬件和軟件組合起來利用。在這類情況下利用的硬件是開源的BusBlaster JTAG調試器,它與開源的OpenOCD調試器共同利用。在設置裝備擺設好硬件和軟件以后,咱們可以或許向芯片收回JTAG敕令了。
BusBlaster JTAG調試器
此時,咱們可以或許從每一個芯片中疾速的轉儲閃存,并啟動對固件的逆向闡發工作。
逆向闡發固件
如今咱們領有兩個二進制的blob固件,咱們必要辨認哪一個固件賣力存儲和加密WiFi憑據。經由進程映像上的“字符串”咱們肯定WIFI憑據存儲在LIFX LWM-01-A芯片的固件映像中。
將固件映像加載到IDA Pro中,咱們可以或許經由進程查找罕見的加密常量(S-Boxes,Forward and Reverse Tables和Initialization Constant)來辨認加密代碼,經由進程該方法咱們肯定芯片中利用的是AES加密算法。因為AES是一種對稱加密算法,是以加密密鑰和解密密鑰是雷同的。經由進程闡發咱們發覺到在LIFX的計劃中,每一個裝備都邑收回一個恒定的全局密鑰。是以假如咱們可以或許從一個裝備中獲得密鑰,那末咱們就能夠或許利用雷同的密鑰來解密統統其余裝備發送的新聞。在這類情況下,密鑰可用于解密從任何LIFX燈膽發送的加密新聞。因為加密常量也可用于辨認加密和解密法式的匯編代碼,是以在AES算法開源完成的贊助下,咱們可以或許經由進程逆向闡發以前定位到的加密函數來提取加密密鑰,初始化向量和塊形式。

IDA Pro拆解固件加密代碼
末了一步是經由進程利用提取到的密鑰解密從網絡中嗅探到的WiFi憑據來證實提取的加密密鑰能否準確。
組合入侵攻擊
控制了加密算法,密鑰,初始化向量和對mesh網絡協定的懂得,咱們可以或許將數據包注入到mesh網絡中,捕捉WiFi細節并解密憑據,統統這統統都不會惹起LIFX裝備的任何身份驗證或警報。是以咱們勝利了!
應當留意的是,因為這類入侵攻擊是針對802.15.4 6LoWPAN無線mesh網絡停止的入侵攻擊,以是入侵攻擊者必要在一個易受入侵攻擊的LIFX燈膽的無線籠罩規模內(30米規模內)停止入侵攻擊,是以這重大限定了大規模破綻漏洞bug利用的實用性。
修復倡議
在發覺到該破綻漏洞bug后咱們實時通知了LIFX公司,并一路幫忙該公司完成為了破綻漏洞bug的修復工作,和其余進一步的網安性改良步伐。如今,新固件利用從WiFi憑據導出的加密密鑰來加密統統的6LoWPAN流量,并包含了用于包管新燈膽可以或許網安參加到WIFI網絡中的網安功能。
固然,任何物聯網裝備,無論是手機,筆記本電腦,照樣燈膽,黑客總是有機遇將其挾制,后續咱們將會在博客中先容更多無關挾制物聯網裝備的技巧文章。
|