一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

物聯(lián)網(wǎng)安全教程:加密固件分析

蛇矛實(shí)驗(yàn)室 ? 來(lái)源:蛇矛實(shí)驗(yàn)室 ? 2023-08-19 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本期作者/0xc4se

背景

在前面的小節(jié)中,我們學(xué)習(xí)了許多IOT漏洞挖掘方面的知識(shí)。在漏洞挖掘過(guò)程中,想要對(duì)二進(jìn)制程序改進(jìn)分析,我們就需要獲取目標(biāo)設(shè)備的文件系統(tǒng),這樣才能更好的逆向分析設(shè)備程序的運(yùn)行邏輯,從而發(fā)現(xiàn)其中的漏洞點(diǎn)。然而并非所有設(shè)備固件中的文件系統(tǒng)都可以讓我們輕易獲取,對(duì)于已經(jīng)被加密的固件,我們?cè)诮饷苓^(guò)程中也需要具備一些分析思路。很多大佬已經(jīng)寫過(guò)許多固件解密思路,這里我們站在巨人的肩膀上看世界,總結(jié)一下在解密固件的幾種常用的思路和方法。

加密固件識(shí)別

binwalk工具識(shí)別

使用binwalk查看一下固件的信息,如果是未加密的固件,通??梢話呙璩鰜?lái)使用了何種壓縮算法。第二種方式就是查看固件的熵值。熵值是用來(lái)衡量不確定性,熵值越大則說(shuō)明固件越有可能被加密或者壓縮了。這個(gè)地方說(shuō)的是被加密或者壓縮了,被壓縮的情況也是會(huì)讓熵值變高或者接近1的,下圖為使用"binwalk -E"命令查看一個(gè)加密固件。

7159dccc-3dae-11ee-ac96-dac502259ad0.png

固件解密

設(shè)備固件中的解密程序

解密固件的最簡(jiǎn)單方法是在固件中查找解密程序。如DLink設(shè)備的DIR882系列固件,我們進(jìn)入官網(wǎng)瀏覽固件信息。

718a57b2-3dae-11ee-ac96-dac502259ad0.png

下載1.30版本固件和1.0.1版本固件,使用"binwalk 固件名"命令分析兩個(gè)固件,發(fā)現(xiàn)新版本的固件被加密,而舊版本固件為未加密狀態(tài)。

71bb9318-3dae-11ee-ac96-dac502259ad0.png

在官網(wǎng)瀏覽其他版本時(shí)發(fā)現(xiàn),發(fā)現(xiàn)在1.10版本,官方提供了倆個(gè)固件,有一個(gè)版本固件名稱為中間版本(未加密)。所以猜測(cè)這里很有可能是設(shè)備固件在出廠發(fā)布時(shí)未加密,也不包含任何解密例程。這里較新版本(v1.10)的固件與含有解密程序的未加密固件一起提供,以供將來(lái)加密固件更新,后續(xù)固件版本是加密的。在這種情況下,我們可以從中間版本獲取解密程序,并使用它來(lái)解密其他加密版本。

71fab246-3dae-11ee-ac96-dac502259ad0.png

下載DIR882A1_FW104B02_Middle_FW_Unencrypt.bin和DIR882A1_FW110B02.bin文件,使用"binwalk -Me 固件名"命令對(duì)未加密固件的文件系統(tǒng)進(jìn)行提取。

7219460c-3dae-11ee-ac96-dac502259ad0.png

在未加密固件的文件系統(tǒng)中,尋找可能的解密程序。使用grep搜索時(shí),搜索字符串"decrypt"、"dec"、"extract"等,可以幫我們快速定位解密程序或腳本。

725497ac-3dae-11ee-ac96-dac502259ad0.png

使用qemu-static對(duì)尋找的程序進(jìn)行運(yùn)行測(cè)試,這里發(fā)現(xiàn)imgdecrypt程序就是固件解密程序。使用imgdecrypt對(duì)v1.10版本和v1.30版本固件解密,發(fā)現(xiàn)程序都可以正常解密。

729bf7be-3dae-11ee-ac96-dac502259ad0.png

另一個(gè)zyxel設(shè)備固件解密實(shí)例中(https://www.iotsec-zone.com/article?id=237),binwalk雖然解不出固件的文件系統(tǒng),但是binwalk解出了一些文件,這些文件中就是對(duì)固件進(jìn)行解密的程序。通過(guò)對(duì)程序進(jìn)行逆向分析,使用相應(yīng)參數(shù)進(jìn)行運(yùn)行即可解密出文件系統(tǒng)。

72ec863e-3dae-11ee-ac96-dac502259ad0.png

使用解密出的密碼對(duì)固件的文件系統(tǒng)進(jìn)行提取。

733dea6a-3dae-11ee-ac96-dac502259ad0.png

明文攻擊

明文攻擊是一種密碼分析技術(shù),其中攻擊者擁有一些已知的明文和對(duì)應(yīng)的密文。這些已知的明文-密文對(duì)能夠幫助攻擊者破解加密算法或密鑰,一般在CTF競(jìng)賽中經(jīng)常遇到。明文攻擊同樣可以用于固件解密,當(dāng)設(shè)備廠商提供的固件壓縮包中具有說(shuō)明文檔、配置文件,且需要提取加密壓縮固件中也同樣具有相同的文件時(shí),就可以進(jìn)行明文攻擊(壓縮算法需相同)。確定相同文件就是比對(duì)crc32的值,下面使用"crc32 ./*"命令查看每個(gè)文件的crc32值。

7379119e-3dae-11ee-ac96-dac502259ad0.png

這里發(fā)現(xiàn)需要提取加密壓縮固件中也同樣具有相同的文件,并且查看這里的算法也是具備明文攻擊的條件。接下來(lái),我們就可以使用工具對(duì)加密固件進(jìn)行提取。

73c6ba0c-3dae-11ee-ac96-dac502259ad0.png

windows的明文攻擊破解工具可以用ARCHPR,linux下可以使用pkcrack。

73f6553c-3dae-11ee-ac96-dac502259ad0.png

解密后進(jìn)行解壓縮就可以獲取設(shè)備固件的文件系統(tǒng)。

7476dd92-3dae-11ee-ac96-dac502259ad0.png

根據(jù)固件特征猜測(cè)加密

在defcon27議題中(https://media.defcon.org/DEF%20CON%2027/DEF%20CON%2027%20presentations/DEFCON-27-grichter-Reverse-Engineering-4G-Hotspots-For-Fun-Bugs-Net-Financial-Loss.pdf),g richter大佬分享了挖掘Nighthawk m1設(shè)備漏洞的一些方法,其中里面的固件解密思路也非常值得我們學(xué)習(xí)。由于作者這里沒(méi)有Nighthawk m1設(shè)備,所以完整流程并未復(fù)現(xiàn)成功。下面貼了幾種原作者的圖。解密大致思路為,發(fā)現(xiàn)固件被加密時(shí),查看固件發(fā)現(xiàn),固件中存在大量重復(fù)的數(shù)據(jù)。如下圖中的"8040 4c21 ... 8f 6e",一般在一個(gè)文件中,大量的重復(fù)數(shù)據(jù)可能都是00或ff,如果這里是異或加密,那么對(duì)這些數(shù)據(jù)重新進(jìn)行異或可能解密出固件。

74968692-3dae-11ee-ac96-dac502259ad0.png

使用下面的命令,對(duì)文件中重復(fù)出現(xiàn)相同數(shù)據(jù)的行進(jìn)行次數(shù)統(tǒng)計(jì)并排序,排序后發(fā)現(xiàn),有64行數(shù)據(jù)重復(fù)出現(xiàn)了3800次左右,其他數(shù)據(jù)則是500次以下,64行的16字節(jié)數(shù)字恰好是1024字節(jié),也就是說(shuō)密鑰長(zhǎng)度為1024字節(jié)。

hexdump -v -C Mr1100.spk | cut -d" "-f3-20| sort| uniq -c| sort-nr | head -n 100

74f5d4f8-3dae-11ee-ac96-dac502259ad0.png

緊接著作者根據(jù)上面固件中出現(xiàn)重復(fù)塊的現(xiàn)象進(jìn)行搜索后發(fā)現(xiàn),Nighthawk m1設(shè)備固件和Sierra Wireless路由器固件極其相似。對(duì)比后就可得知大致加密流程為:固件的前 0x100 個(gè)字節(jié)不完全為“空”(這里是間歇性的“空”/“非空”),而是一大塊“非空”數(shù)據(jù)從 0x100 開(kāi)始,到 0x140 結(jié)束。然后有一個(gè)從0x170到0x190的非空段。然后另一個(gè)“非空”段從0x290開(kāi)始,然后在0x2F0處開(kāi)始一個(gè)空行,然后是來(lái)自0x300的更多非空數(shù)據(jù)。

75699834-3dae-11ee-ac96-dac502259ad0.png

得到大致加密思路后,通過(guò)利用該加密特點(diǎn)對(duì)Nighthawk m1設(shè)備的程序進(jìn)行逆向分析,得到了解密部分的代碼如下。下圖中的AES_set_decrypt_key函數(shù)為加密標(biāo)頭的解密函數(shù)。

75f03fce-3dae-11ee-ac96-dac502259ad0.png

程序在每個(gè)加密標(biāo)頭上調(diào)用 AES_decrypt 函數(shù)。

7623d5aa-3dae-11ee-ac96-dac502259ad0.png

由于這里沒(méi)有設(shè)備,無(wú)法根據(jù)上面逆向分析的代碼編寫解密腳本,效果如下。

765f1e62-3dae-11ee-ac96-dac502259ad0.png

不同鏡像的解密程序

不同鏡像的解密程序,這里的以fortigate為例,具體思路為fortigate的硬件設(shè)備固件都被加密,而fortigate提供多個(gè)鏡像版本(比如vmx和kvm版本的固件),這些固件我們可以無(wú)條件獲取,廠商在發(fā)布同一個(gè)系列固件中,很有可能使用同一份代碼。那么我們可以通過(guò)對(duì)fortigate不同鏡像版本的固件進(jìn)行分析,就可以找到fortigate的通用解密代碼,然后編寫解密程序就可以獲得其他版本固件的文件系統(tǒng)。這里的測(cè)試版本為VMX-v7.2.4.F-build1396,設(shè)備固件為90E-v7.2.4.F-build1396。首先我們掛載fortigate的虛擬卷,將里面的rootfs.gz復(fù)制出來(lái)并解壓。

76a3ca1c-3dae-11ee-ac96-dac502259ad0.png

使用系統(tǒng)自帶的解包程序?qū)嚎s文件進(jìn)行解包處理。

76c8b296-3dae-11ee-ac96-dac502259ad0.png

通過(guò)搜索字符串尋找解密程序,猜測(cè)init程序中存在解密部分。

77069322-3dae-11ee-ac96-dac502259ad0.png

通過(guò)搜索固件升級(jí),固件下載等字符串查找定位,固件升級(jí)時(shí)觸發(fā)的解密代碼,下圖中便是fortigate的固件解密代碼。

7758ceda-3dae-11ee-ac96-dac502259ad0.png

我們獲得了解密代碼后,需要查找解密的密鑰,通過(guò)對(duì)固件的加密模塊進(jìn)行分析后發(fā)現(xiàn),我們可以對(duì)密鑰進(jìn)行爆破。這里直接使用大佬已經(jīng)寫好的腳本(https://github.com/BishopFox/forticrack)進(jìn)行測(cè)試,最終的解密效果如下圖。

7785aca2-3dae-11ee-ac96-dac502259ad0.png

尋找內(nèi)核解密程序

尋找內(nèi)核中的解密程序,我們從芯片中進(jìn)行提取的固件后,可以從內(nèi)核中獲取固件解密的程序。以某快設(shè)備為例,我們對(duì)其固件進(jìn)行解密分析(https://www.iotsec-zone.com/article?id=218),下面官方提供的設(shè)備固件壓縮包中,文件系統(tǒng)rootfs被加密,而vmlinz沒(méi)有被加密,我們可以使用"extract-vmlinux.sh"腳本((無(wú)符號(hào)表))或者vmlinx-to-elf工具(有符號(hào)表)對(duì)內(nèi)核鏡像中提取內(nèi)核。

77c4ab00-3dae-11ee-ac96-dac502259ad0.png

對(duì)照l(shuí)inux內(nèi)核源碼,我們使用ida對(duì)內(nèi)核文件進(jìn)行逆向分析,因?yàn)槲募到y(tǒng)被加密,所以我們直接查找和定位initramfs代碼部分(內(nèi)核2.4版本前為initrd)。最后找到對(duì)文件系統(tǒng)的解密代碼,代碼如下。

77efefea-3dae-11ee-ac96-dac502259ad0.png

通過(guò)提取核心解密代碼編寫解密腳本,我們就可以對(duì)文件系統(tǒng)進(jìn)行解密。

7816842a-3dae-11ee-ac96-dac502259ad0.png

同理,思路向后延伸,當(dāng)內(nèi)核也被加密時(shí),我們可以對(duì)提取出來(lái)的uboot.bin部分進(jìn)行分析后并發(fā)現(xiàn)具有可利用信息,例如前面小節(jié)中的某華設(shè)備。

7887d062-3dae-11ee-ac96-dac502259ad0.png

總結(jié)

固件解密在安全評(píng)估、漏洞分析和逆向工程中起著重要作用,通過(guò)解密固件,可以更加輕松地查找和分析程序中的脆弱點(diǎn)和設(shè)計(jì)缺陷。在這一小節(jié)中,我們學(xué)習(xí)并總結(jié)了幾個(gè)固件解密的分析思路和方法,整體的大致思路為尋找設(shè)備系統(tǒng)運(yùn)行所有環(huán)節(jié)中可能存在解密功能的部分。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2931

    文章

    46251

    瀏覽量

    392676
  • 固件
    +關(guān)注

    關(guān)注

    10

    文章

    566

    瀏覽量

    23918
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    83000
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    20398

原文標(biāo)題:物聯(lián)網(wǎng)安全-加密固件分析

文章出處:【微信號(hào):蛇矛實(shí)驗(yàn)室,微信公眾號(hào):蛇矛實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    聯(lián)網(wǎng)數(shù)據(jù)傳輸---數(shù)據(jù)安全加密

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎
    發(fā)表于 07-03 09:51

    聯(lián)網(wǎng)數(shù)據(jù)安全保護(hù)

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市
    發(fā)表于 07-03 10:26

    如何保障聯(lián)網(wǎng)設(shè)備安全

    的重要性毋庸置疑!那么該如何保障聯(lián)網(wǎng)設(shè)備安全呢?加密芯片就是保障聯(lián)網(wǎng)設(shè)備
    發(fā)表于 09-07 10:36

    車規(guī)級(jí)加密芯片供應(yīng),數(shù)據(jù)加密,安全通訊,安全啟動(dòng)方案

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 11-01 10:38

    聯(lián)網(wǎng)安全方案,車聯(lián)網(wǎng)安全方案,數(shù)據(jù)加密,通訊加密

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 11-30 10:41

    聯(lián)網(wǎng)安全芯片,車聯(lián)網(wǎng)安全芯片,數(shù)據(jù)加密芯片

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 12-06 16:36

    聯(lián)網(wǎng)聯(lián)網(wǎng)安全方案,數(shù)據(jù)通信加密,硬件加密方案,車規(guī)加密芯片

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 03-26 15:53

    聯(lián)網(wǎng)安全芯片,車規(guī)級(jí)加密芯片,車聯(lián)網(wǎng)安全方案

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 03-27 10:48

    智能鎖硬件安全加密方案

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 04-09 14:50

    聯(lián)網(wǎng)硬件安全解決方案,硬件加密芯片

    目前聯(lián)網(wǎng)以及車聯(lián)網(wǎng)的發(fā)展以及產(chǎn)品的普及,讓大家開(kāi)始注意到了,對(duì)于數(shù)據(jù)加密的需求,開(kāi)始關(guān)于對(duì)于數(shù)據(jù)通信的安全和對(duì)于合法用戶的認(rèn)證 深圳市鼎恒
    發(fā)表于 04-09 14:51

    聯(lián)網(wǎng)通信安全需求如何實(shí)現(xiàn)

    設(shè)備包含路由器、攝 像頭、防火墻、打印機(jī)、VPN等各種設(shè)備類型,足以可見(jiàn)聯(lián)網(wǎng)設(shè)備的安全需求日益凸顯。DDA無(wú)線通信技術(shù)出現(xiàn)可以有效解決網(wǎng)絡(luò)安全問(wèn)題,其采用5種對(duì)稱
    發(fā)表于 06-05 20:24

    Adiantum(鐵線蕨)的新加密方式究竟能改變聯(lián)網(wǎng)安全的現(xiàn)狀嗎?

    Adiantum(鐵線蕨)的新加密方式,究竟能改變多少聯(lián)網(wǎng)安全的現(xiàn)狀?已經(jīng)稱王的AES,為什么不適用于
    發(fā)表于 06-29 09:11

    簡(jiǎn)化安全、基于 UEFI 的聯(lián)網(wǎng) 固件更新

    簡(jiǎn)化安全、基于 UEFI 的聯(lián)網(wǎng) 固件更新
    發(fā)表于 09-04 17:22 ?8次下載
    簡(jiǎn)化<b class='flag-5'>安全</b>、基于 UEFI 的<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b> <b class='flag-5'>固件</b>更新

    聯(lián)網(wǎng)設(shè)備固件安全分析

    一. 引言隨著聯(lián)網(wǎng)設(shè)備的普及,聯(lián)網(wǎng)設(shè)備的安全問(wèn)題也逐漸被“有心人”挖掘出來(lái),如2017年9月,一位黑客通過(guò)
    發(fā)表于 12-07 14:36 ?7次下載
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>設(shè)備<b class='flag-5'>固件</b>的<b class='flag-5'>安全</b>性<b class='flag-5'>分析</b>

    加密網(wǎng)關(guān)如何保障產(chǎn)業(yè)聯(lián)網(wǎng)數(shù)據(jù)安全

    針對(duì)聯(lián)網(wǎng)產(chǎn)業(yè)的安全與穩(wěn)定,佰馬提供高品質(zhì)加密聯(lián)網(wǎng)關(guān),滿足電力
    的頭像 發(fā)表于 10-19 17:40 ?1327次閱讀
    <b class='flag-5'>加密</b>網(wǎng)關(guān)如何保障產(chǎn)業(yè)<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>數(shù)據(jù)<b class='flag-5'>安全</b>