神器分享:物聯網黑客工具包

今天,我將在BSides San Francisco做一個題為“物聯網黑客工具包”的演講。我會準備一個幻燈片並且發佈一篇博客去參加這個演講,如果有我演講的視頻鏈接,我也將會把這個視頻鏈接放到這個博客裡。

神器分享:物聯網黑客工具包

介紹

來自於我演講的摘要

物聯網和嵌入式設備為希望瞭解和評估這些設備的安全工程師帶來了新的挑戰。從新的界面到不常見的操作系統和軟件,在常規安全評估之外我們還需要一 些技能和工具。我將介紹硬件和軟件工具,包括它們相同的地方以及每個工具獨特的功能。我還將會談論如何構建技能樹以及如何使用嵌入式安全評估工具來進行實 際操作。

雖然有些物聯網設備可以從純軟件的角度進行評估(逆向移動應用程序的工程師足以滿足我們的需求),但通過與所有可用接口(通常包括不用於訪問的接口,如調試和內部接口)交互可以瞭解該設備的更多信息。

背景

我一直對黑客和電子產品感興趣。我在11歲成為無線電愛好者,在大學裡,由於我的學校沒有計算機安全研究領域的課程,我選擇了嵌入式系統研究領域的 課程。作為一名黑客,我已經看到了越來越多人對物聯網設備著迷。這些設備為黑客帶來了各種新挑戰,其中也包括負責評估這些設備安全漏洞的工程師:

不熟悉的架構(主要是ARM和MIPS)

不常見的接口(802.15.4,Bluetooth LE等)

迷你的軟件(剝離了C程序是常見的)

當然,這些挑戰也為熟悉這些系統的黑客(白帽和黑帽)提供了機會。雖然在企業Web應用程序中發現內存損壞漏洞幾乎聞所未聞,但在IoT設備 上,Web請求使用基本C解析和服務並不少見,並且存在所有的內存管理問題。在2016年,我發現了流行的IP電話中的內存損壞漏洞。

考慮功能,而不是玩具

包括我自己在內的很多黑客都是“小男人” (或者 “小女孩”)。經常把每種可能用到的工具看作是新的工具增加到工具箱中,但是在一天結束時,必須考慮該工具如何增加新功能。其實它不需要具備完全獨立的功能,也許僅僅增加了速度或穩定性。

當然,這是一個“照我說的做,而不是照我做的做”區域。實際上,我有很多具有重疊功能的設備。我很樂意比較這些設備只是為了讓那些參加我的演講或閱讀這篇文章的人受益,但老實說,我喜歡我的技術玩具。

軟件

大部分軟件與應用程序安全性或滲透測試沒有區別。例如,Wireshark通常用於網絡分析(IP和藍牙),以及用於HTTP/HTTPS的Burp Suite。

fccid.io網站在偵察設備時非常有用,提供關於所使用頻率和調製的信息,以及設備的內部圖片,這些圖片還可以顯示諸如芯片組,整體架構等信息,所有這些都不需要用螺絲刀。

逆向工程

固件鏡像通常是多個文件串聯起來,或包含專有的元數據頭。Binwalk進入鏡像,查找已知的文件簽名,並提取組件。通常這將包括整個Linux文件系統,內核鏡像等。

一旦您提取了這個系統,您可能有興趣分析裡面的二進制文件或其他軟件。通常反彙編是有用的。我目前最喜歡的反彙編程序是Binary Ninja,但有很多選擇:

Binary Ninja

IDA

Radare2

Hopper

基本工具

我認為有幾種工具對於任何類型的硬件攻擊都是絕對必要的。這些工具對於瞭解設備並訪問設備上的多種類型的接口是至關重要的。

螺絲刀組

一個螺絲刀組可能是一個明顯的東西,但是你需要一個具有很多鑽頭的螺絲刀組,可以進入狹小的空間,且尺寸與您設備上的螺絲相符。許多設備也使用“安 全螺絲釘”,這似乎是一個術語,適用於任何不屬於標準家用工具套件的螺絲釘.(我已經看到了Torx,三角形鑽頭,方形鑽頭,帶有中心銷的Torx等 等)。

我有一個很棒的iFixit螺絲刀套件,它可以打開任何東西。擴展的螺絲刀有助於進入更小的空間,而64合1套件覆蓋了所有內容。我個人喜歡支持iFixit,因為它具有很好的組裝和拆解功能,但也有山寨版的iFixit。

神器分享:物聯網黑客工具包

開瓶器

許多設備都用塑料卡扣或壓配在一起的部件密封。對於這些,你需要某種開瓶器(有時稱為撬棒 )來撬開它們。我發現各種有用的形狀。您可以將它作為iFixit,iFixit克隆或開瓶器自身組合工具套件的一部分。我發現iFixit型號的質量略 高,但我也隨身攜帶了一款適合偶爾旅行使用的廉價克隆版.

非常薄的帶塑料手柄的金屬手柄可能是我最喜歡的開瓶器 – 它適合最薄的開口,但因此它也非常容易彎曲。我在使用過程中遇到過它由於彎曲導致的損壞。要小心使用這些工具,並確保您的手遠離它,如果被劃到,雖然他們不是鋒利的刀刃,但他們會劃傷您的手。

神器分享:物聯網黑客工具包

萬用表

我明白了,您正在尋找破解設備,而不是重新佈線您的汽車。這就是說,對於許多任務來說,在我們一定需要和節約時間成本上,一箇中等大小的萬用表是有必要的。萬用表一些任務包括:

識別未知的引腳

找到UART的接地引腳

檢查哪些組件已連接

搞清楚您需要什麼樣的電源

檢查接口上的電壓以確保不會造成事故

我有幾個萬用表(對於電子工作來說有多個是很重要的),但是您為了研究物聯網黑客攻擊有一個就足夠了。從性價比來看UNI-T UT-61E是不錯的,但是它的安全性評價不是很好。EEVBlog BM235是我最喜歡的,但價格比較高。如果您為了工作而購買,Fluke 87V是您最佳的選擇。

如果您購買便宜的萬用表,它可能適用於物聯網項目,但有很多萬用表存在安全隱患。請勿在“總輸電線”電源,高壓電源,任何從牆上出來的電源上使用這些便宜的萬用表。我們不能為了節省40美元而威脅到我們的人身安全。

烙鐵

在生產物聯網設備上您會發現很多未填充的頭(只是電路板上的孔)。各種調試接口頭被省略,或者作為成本節省,或者出於空間原因,或者兩者兼而有之。在開發過程中使用了這些頭,但製造商經常想要留下這些連接,以避免重新印刷電路板(PCB)佈局,或者能夠現場調試故障。

為了連接到這些未填充的頭,您會想要在他們的位置焊接您自己的頭。要做到這一點,您需要一個烙鐵。為了儘可能降低在此過程中損壞電路板的風險,請使 用可變溫度和小尖端的烙鐵。Hakko FX-888D是非常流行和非常不錯的選擇,但您仍然可以做很好的選擇,像使用this Aoyue或其他的烙鐵。但是不要使用專為水管工或類似用途設計的烙鐵,它會燒掉電路板。

同樣,開始在您目標板上工作之前,您需要練習焊接技能。比如:找到一些小型焊接項目或者廢棄電子設備進行練習。

網絡接口

顯然,這些設備具有網絡接口。畢竟,他們被稱作“Internet of Things”,所以網絡連接是一個必要條件。幾乎普遍存在802.11連接(有時僅在基站上),而以太網(10/100或1000)接口也非常普遍。

有線網絡嗅探

要想嗅出有線網絡,最簡單的方法就是在你的電腦上使用第二接口。我是這款USB 3.0雙千兆適配器的巨大粉絲,它甚至為那些使用新款筆記本電腦或僅支持USB-C的Macbook的用戶提供USB-C版本。 任何一個選項都可以為您提供兩個網絡端口,即使在沒有內置有線接口的筆記本電腦上也是如此。 除此之外,您需要軟件來進行嗅探。Wireshark是原始數據包捕獲工具,但您通常也會希望HTTP/HTTPS嗅探,因此Burp Suite是事實上的標準,但是mitmproxy是一個具有許多不錯功能的新興競爭者。

神器分享:物聯網黑客工具包

無線網絡嗅探

最常見的筆記本電腦上的無線網絡接口可以執行監視模式,但也許您想使用它來連接互聯網,我們也可以在另一個接口上嗅探。像AWUSO36NH和 AWUSO36ACH這樣的Alfa無線網卡 已經很流行了一段時間,但我個人喜歡使用基於RT5370的微型適配器進行評估,因為其體積小,便於攜帶,所以不需要長距離的測試。

有線(調試/內部)接口

物聯網設備上有許多細微的接口,它被用於調試或與各種組件之間的通信。例如:

用於閃存的SPI/I2C芯片

用於wifi的SPI/SD 芯片

用於串行控制檯的UART

用於藍牙/ wifi控制器的UART

用於調試處理器的JTAG/SWD

用於在線編程的ICSP

UART

雖然有許多通用設備可以做其他事情,但我經常碰到UART,因此我喜歡為此設置獨立適配器。此外,擁有一個獨立的適配器允許我在使用JTAG/SWD或其他接口的同時保持UART連接。

您可以獲得價值10美元的獨立電纜,可用於大多數UART接口。(在我見過的大多數設備上,UART接口為3.3v,這些電纜可以很好地工作。) 這些電纜中的大多數具有以下引腳分配,但請確保檢查自己的:

紅色:+ 5V(不要在大多數主板上連接)黑色:GND綠色:來自計算機的發送,來自設備的接收白色:來自計算機的接收,來自設備的發送

對於UART到USB 的FT232RL 或CH340芯片還有一些電纜外接頭。這些提供了一系列頭來連接目標設備和適配器之間的跳線。我更喜歡電纜的簡單性(在我的測試過程中跳線端數量會減少),但這進一步證明了有很多選項可以提供相同的功能。

神器分享:物聯網黑客工具包

通用接口(JTAG / SWD / I2C / SPI)

有許多接口被稱為“通用接口”,它能夠與各種協議對接。這些主要分為兩類:

Bit-banging微控制器

硬件接口(以FTDI的FT * 232系列為主)

有許多選項可以實現用於說明這些協議的bit-banging解決方案,從軟件項目到運行在Arduino上,以及諸如使用PIC微控制器的總線海 盜(Bus Pirate)等項目。這些通常向主機和應用程序提供串行接口(UART),並使用帶內信號進行配置和設置。某些器件可能存在一些時序問題,因為微控制器 通常無法在同一時鐘週期更新多個輸出引腳。

硬件接口使專用USB端點與設備對話,儘管可以配置它,但它通過USB端點和寄存器完成。協議在半專用硬件中實現。根據我的經驗,這些器件比 bit-banging微控制器更快,更可靠,但是你僅限於特定器件支持的任何協議,或者軟件驅動它們的能力。(例如,FT * 232H系列可以通過bit-banging來執行大多數協議,但它一次更新整個寄存器,並且具有足夠高的速度來運行多種協議的時鐘速率。)

FT2232H和FT232H(不要與僅限於UART的FT232RL相混淆)已被納入許多不同的分線板,這些分線板是優秀的通用接口:

Adafruit FT232 breakout (我個人最喜歡的)(亞馬遜)

TUMPA和TUMPA Lite (亞馬遜)

FTDI C232HM Cable (我的第二個最愛,最簡單易用的)(亞馬遜)

神器分享:物聯網黑客工具包

邏輯分析儀

當你有一個未知的協議,未知的引腳,或未知的協議設置(波特率,極性,奇偶校驗等)時,邏輯分析儀可以幫助你直接查看芯片或接口之間傳遞的信號。

我有一個Saleae Logic 8,它是一個很棒的邏輯分析儀。它體積小,軟件非常出色,易於使用。我用它來發現許多未貼標籤的端口的引腳,發現UART的設置,並且窺探板上兩個芯片之間的流量。

儘管在eBay或AliExpress上有廉價的山寨品,但我已經嘗試過它們,質量很差,不幸的是,開源的sigrok軟件並不太符合Saleae軟件的質量。此外,他們基本沒有輸入保護,來防止您自己炸燬設備。

神器分享:物聯網黑客工具包

無線

顯然,物聯網擁有相當多的無線設備。其中一些設備使用WiFI(上面討論過),但許多設備使用其他無線協議。藍牙(特別是藍牙LE)非常普遍,但在 其他領域,例如家庭自動化,其他協議比較流行。其中很多是基於802.15.4(Zigbee,Z-Wave)或433 MHz,915 MHz或2.4 GHz ISM頻段的專有協議。

藍牙

藍牙設備非常普遍,低功耗藍牙(從藍牙4.0開始)在IoT設備中非常流行。大多數不會流式傳輸音頻,提供IP連接或者其他高帶寬需求的設備似乎正在轉向低能耗藍牙,可能是由於幾個原因:

更低的功耗(對電池比較友好)

更便宜的芯片組

實施簡單

我推薦一個工具來評估藍牙,那就是Ubertooth One (亞馬遜)。這可以跟蹤和捕獲藍牙通信,以pcap或pcap-ng格式輸出,允許您將通信導入Wireshark以供以後分析。(您也可以使用其他基於 pcap的工具(scapy)來分析pcaps。)Ubertooth工具可以作為軟件包在Debian,Ubuntu或Kali中使用,但是您可以從 其Github獲得更新版本的軟件存儲庫。

Adafruit還提供BLE嗅探器 ,該嗅探器僅用於低功耗藍牙,並利用北歐半導體BLE芯片和特殊固件進行嗅探。這種軟件在Windows上運行良好,但在Linux上不太好,因為它是一種比Ubertooth工具更難以使用的python腳本。

神器分享:物聯網黑客工具包

軟件定義無線電

對於自定義協議或啟用低級評估或基於無線電系統的攻擊,軟件定義無線電為與物聯網設備的射頻端直接交互提供了極好的機會。這可以從僅接收(出於理解和逆向工程設備的目的)到能夠同時接收和發送(全雙工),這取決於您的評估需求。

對於簡單接收,有一些簡單的DVB-T軟件狗已被重新設計為通用SDR,通常稱為“RTL SDR”,該名稱是基於設備中存在的Realtek RTL2832U芯片。可以使用這些芯片,因為該芯片能夠將原始樣本提供給主機操作系統,並且由於其低成本,已經出現了一個大型的開源社區。像 NooElec這樣的公司現在甚至為SDR社區提供基於這些芯片的定製內置硬件。還有一個擴展了RTL-SDR dongles接收範圍的套件。

為了傳輸,硬件要複雜得多,這個空間中的大部分選項都是由FPGA或其他強大的處理器驅動的。即使在幾年前,這些功能在USRP等工具中也非常昂 貴。然而,HackRF由大斯科特小工具和BladeRF通過Nuand已經價格比較便宜,大部分黑客可以接受。已經提供能力的大量黑客友好的價格。

我有一個BladeRF,但我真的希望我買了一個HackRF。HackRF具有更寬的可用頻率範圍(尤其是低頻),而BladeRF則需要相對昂貴的上變頻器來覆蓋這些頻段。HackRF似乎還有一個更加活躍的社區,並在開源軟件的某些領域提供更好的支持。

神器分享:物聯網黑客工具包

其他有用的工具

使用示波器查看射頻信號或信號完整性有時候會有用,但我在工作中基本沒有使用過。專門的JTAG程序員用特定的硬件設備工作的效率比較高,但成本相對較高,這些設備專門針對這些特定的項目。

對於讀取Flash芯片,Xeltec程序員被認為是“最重要的”,並且做了一個令人難以置信的工作,但它的價格使得只有定期做這件事的實驗室才會覺得這是值得的。


分享到:


相關文章: