精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次RTEMS系統的固件解密

安全 應用安全
本篇我們著重討論了一款固件加密的門禁考勤機設備,并借鑒PC端app脫殼的技巧,解密解壓了固件中的kernel以及app。

1、前言

近期翻閱之前的工作,發現在考勤機系列的安全研究里,有一篇很早就整理好但是沒發出來的文章,考慮到相關設備的漏洞已經提交了快兩年了,想必該修復的也修復了,設備可能都已經不再生產了。這篇文章我們主要聊一下這個設備的分析過程,著重描述一下這個設備的固件解密。

2、IoT設備啟動概述

IoT設備的安全分析中,分析人員的主要工作是分析設備的邏輯功能及其代碼實現,從而挖掘設備中的漏洞。大多數分析工作是從解析固件開始的,如果這一步就不順利的話,后續可能會更加麻煩。不巧的是,這次的設備在起步階段就很曲折:固件被加密了,并不能直接開始分析。

在此我們再簡單總結一下那些常見IoT設備的啟動流程,如下圖所示:

圖2-1 IoT設備大致的啟動流程

上圖大致可以分為4個階段:

(1)首先,芯片上電后首先運行的是boot rom,執行完畢后會跳轉到bootloader,如果設備啟用了固件簽名,那么此處會對固件進行校驗;

(2)然后,bootloader的作用類似于PC啟動過程的引導,主要功能就是為操作系統的運行做準備工作,在復雜的設備中,bootloader會進一步分成多個階段;

(3)此時,操作系統就開始接管對MCU的控制,上圖中把操作系統和app分成了兩個部分,是為了對標PC方便大家理解,實際上在有些設備里跑的操作系統和app是混合在一起的,甚至可能沒有操作系統;

(4)最后,各個app被加載運行,開始執行設備的邏輯功能,此處往往是我們想要著重分析的地方。

上圖中,bootloader、kernel和app這三個階段的代碼通常是由開發者編寫并燒錄到Flash中的,我們所說的固件指的就是這部分內容。請將此圖放在腦海中,后續所有工作都將以此圖為模板展開分析和敘述。

PS:本次分享討論的是固件可以提取但是無法分析的情況,一些由于讀保護機制導致固件不被提取的情況,暫不在本篇的討論范疇中。

3、情況簡介

通過熱風槍可以取下Flash芯片,然后通過編程器可以拿到Flash中的固件,這些基本功各位一定已經非常熟悉了,這里就不再贅述。固件文件包含一個FAT12格式的文件系統,可以通過7z工具直接提取出文件系統中的所有內容,提取內容截圖如下:

圖3-1 固件文件系統內容

顯而易見,上圖中的App文件夾中肯定包含了這款門禁考勤機的主程序。不過,事情肯定沒有那么順利,該文件夾內只有一個文件是可以解析的ELF格式,其他文件均不可解析,僅存在可解析文件叫main.bin,用IDA加載之后,內容看起來也有些過于簡單,截圖如下:

圖3-2 main.bin程序內容

上圖中,雖然函數符號都還在,可以大概推斷出函數的作用,但是函數看起來很古怪,比如RT_CreateProcess函數內容是下圖中的樣子:

圖3-3 RT_CreateProcess函數內容

上圖中的gFuncEntryKern看起來有點像虛表指針,指向一個函數地址表,而這個指針在程序啟動時被賦值。

程序main.bin很短,很快就逆完了,看起來最后創建了一個新的進程,但除了main.bin程序之外,其他程序全都無法解析。即便是main.bin自身,看起來也不太正常,很多函數只有跳轉stub,缺少實質內容,看起來像是PC中加了保護導入表的殼。那么,接下來還是從頭開始啃一下這個設備固件吧。

4、kernel分析與解密

按照圖2-1所示,我們決定先看看bootloader,在解壓獲得的完整文件系統中,可以看到Product.ini文件,從里面能夠找到設備的分區表,如下圖所示:

圖4-1固件分區表

我們此前解壓縮得到的FAT12文件系統即為0x20000偏移處,順便吐槽一下binwalk,為啥binwalk識別不出FAT12文件系統,因為太古老了嗎?

結合設備上電后串口的輸出字符串,可以推斷出0x20000之前的固件內容即為程序的bootloader,接下來用IDA載入bootloader部分代碼進行分析,并結合串口的輸出日志,可以定位到關鍵位置,如下圖:

圖4-2 bootloader加載kernel文件的過程

上圖中,我們根據串口打印出來的字符串來定位程序的關鍵位置,找到了kernel文件其實就是rootfs中的Rtbio_3760_R4502文件,且串口打印出來的信息包含了kernel的加載基址和入口地址,根據這些信息,可以分析kernel文件了。

使用IDA加載kernel文件之后,IDA導航條如下圖所示:

圖4-3 直接解析Rtbio文件時的IDA導航條

可以看到此時kernel只被解析出了一小部分,絕大多數內容都是unexplored狀態,實際上這部分內容還是處于加密或壓縮狀態。由于執行流程已經離開bootloader而進入kernel階段,那么kernel代碼肯定是自解密或自解壓的,這很正常,一般情況下linux kernel都是自解壓的,但我們沒辦法直接解壓就很奇怪。通過逆向分析,可以在入口點附近看到多處異或解密代碼,如下圖所示:

圖4-4 異或解密代碼

上圖中,0x79E1即為異或解密使用的密鑰,類似上圖中的異或解密代碼在多個位置都有出現,原來再自解壓之前還有一步自解密過程,所以沒法直接解壓。

耐心分析這些已經解析的代碼,可以將kernel的啟動流程整理為下圖所示內容:

圖4-5 kernel文件的解密過程分析

可以看到,kernel既包含自解密部分,也包含自解壓部分。將我們在PC端脫殼的經驗用到此處,待程序完成自解密和自解壓之后,dump完整的內存,就可以獲得可以逆向閱讀的kernel二進制文件。

然而我們并沒有找到設備調試接口,寫脫機解密腳本又太繁瑣,最終選擇用QEMU加載kernel,運行其自解密和自解壓代碼,待所有工作完畢之后dump內存。最后,用ida加載dump下來的內核文件,就可以看到很多代碼和明文的字符串,如下圖:

圖4-6 載入并分析dump kernel

在眾多字符串中,我們還注意到了一個版權信息,如下圖:

圖4-7 版權信息字符串

上圖中的版權信息表明此固件可能使用了RTEMS系統。該系統一款開源的RTOS系統,在github上就可以找到源碼,代碼參考鏈接:https://github.com/RTEMS/rtems

與我們此前分析云丁鹿客智能門鎖那篇很類似,當確定了固件使用的操作系統,那么逆向工作就變得相對簡單,畢竟有源碼可以參考。通過對比源碼,我們可以分辨出大量函數,如open、close、read等。查找這些函數的交叉引用,我們發現了一張很大的函數表,如下圖右側所示:

圖4-8 導出函數表

上圖左側中,我們展示了第3章main.bin的幾個函數調用,并與右側kernel中的函數表相互對應。還記得gFuncEntryKern指針嗎?看起來這個指針所指向的函數表就是上圖右側中的函數表。到此,依靠這張函數表,我們就可以正常分析main.bin程序中的所有函數了。

到此,bootloader和kernel部分可以告一段落了,在開始分析APP之前,還有一點需要提一下,與傳統PC操作系統不同的是,該設備并不存在用戶態和內核態,kernel和app處于相同的特權級別,所以兩者之間可以直接相互調用,不需要上下文的切換。

5、app分析與解密

在這個設備固件中,除了kernel需要解密解壓之外,大部分app也是需要解密解壓的。除main.bin之外的程序,我們都無法用IDA直接分析,就是因為這些程序尚未解密解壓,而解密解壓的關鍵就在RT_UnzipFile函數中,將該函數的關鍵位置截圖如下:

圖5-1 RT_UnzipFile函數的代碼片段

上圖中可以看到read、xor、write等幾個關鍵點,進一步分析可以判定RT_UnzipFile函數同樣包含解密和解壓這兩個過程,異或密鑰也沒有變化,同樣是0x79E1。

根據以上結論我們可以寫一個用于解密和解壓每個bin文件的腳本,將這些文件恢復成可以分析的ELF格式。通過腳本,我們將Root_00.bin解密解壓,root_00.bin就是main.bin在執行最后創建的新進程,用IDA載入解密解壓后的ELF文件,截圖如下:

圖5-2 通過IDA載入解密后的Root_00.bin文件

可以看到,Root_00.bin已經可以分析了。至此,我們已經完全理解了這個設備和固件,可以隨意分析其中的文件了。

6、固件程序的編寫

門禁考勤機作為一個企業的門戶,往往承擔了保衛企業的任務,如果門禁考勤機自身變成了打入企業內網的潛伏者,想必是件很搞笑的事情。當我們發現了門禁考勤機的漏洞,想植入后門時,就可以來閱讀一下這第6章的內容。

雖然與開發傳統的Linux程序比較類似,但由于我們沒有與之匹配的SDK,而只能選擇公版ARM編譯器,所以在開發過程中,需要額外注意兩點:

(1)系統調用。通過逆向分析被解密解壓的多個固件程序,我們可以確定程序是沒有導入表的,系統調用是通過gFuncEntryKern和gFuncEntryLibc等幾個指針實現。由于我們沒有官方SDK,這就導致沒辦法像常規正向開發一樣進行各種系統調用,但是按照shellcode開發思路,直接寫匯編肯定是沒問題的,最終結果如下圖所示:

圖6-1 模擬系統調用

上圖中,我們參考IDA的逆向代碼用匯編實現socket、bind等系統調用,具體的邏輯功能代碼還是可以照常用C來編寫。

(2)生成文件格式。通過查看其他已經解密解壓的多個固件程序,我們可以確定ELF文件是relocatable格式,而不是executable格式的,如下圖所示:

圖6-2 查看main.bin文件格式

因此,使用gcc編譯程序時,需要指定-c參數,用于生成僅編譯和匯編的文件;同時,使用ld鏈接程序時,指定-r參數,用于生成relocatable文件。

完成以上工作后,將編譯的程序,按照第三章的分析做好壓縮、加密處理后,并通過某些方式植入設備中,設備上電后即可看到程序開始執行,tcp回連nc監聽的42240端口,如下圖:

圖6-3 反彈socket通信的進程

上圖中,我們以發送hello world字符串來說明問題。

當然,我們也可以修改固件中已有的文件,例如開機界面的圖片,更多內容我們這里不再展示。

圖6-4 修改考勤機開機界面

7、總結

本篇我們著重討論了一款固件加密的門禁考勤機設備,并借鑒PC端app脫殼的技巧,解密解壓了固件中的kernel以及app。其實,本篇分享的固件加密只是各種加密方式的一小類,更常見的情況應該是固件文件完整加密,如果以后有機會我們也會分享那些完整加密的情況,感興趣的可以等我們后續的分享。

責任編輯:武曉燕 來源: FreeBuf.COM
相關推薦

2021-11-11 16:14:04

Kubernetes

2011-02-22 09:29:23

jQueryJavaScript

2021-12-20 10:15:16

zip密碼命令網絡安全

2019-03-15 16:20:45

MySQL死鎖排查命令

2013-04-01 10:27:37

程序員失業

2013-01-17 10:31:13

JavaScriptWeb開發firebug

2021-05-13 08:51:20

GC問題排查

2024-03-28 12:56:36

2023-04-06 10:52:18

2017-07-07 16:07:41

2023-04-06 07:53:56

Redis連接問題K8s

2014-08-11 09:31:52

2022-01-07 11:48:59

RabbitMQGolang 項目

2021-01-22 05:35:19

Lvm模塊Multipath

2020-08-24 07:34:39

網絡超時請求

2021-03-05 22:41:55

CDH集群CDH集群

2023-03-06 14:06:48

2018-02-23 13:41:05

數據庫MySQL數據恢復

2022-11-29 21:26:26

跨域配置

2023-01-04 18:32:31

線上服務代碼
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久9999高清| 欧美调教网站| 一区二区三区.www| 精品欧美日韩在线| www.av88| 亚洲电影av| 永久免费毛片在线播放不卡| 99国产精品免费视频| 三级成人黄色影院| 亚洲三级小视频| 免费久久一级欧美特大黄| 亚洲网站免费观看| 亚洲一区欧美激情| 欧美成人高清视频| 91精品久久久久久久久久久久| 欧美大片91| 欧亚洲嫩模精品一区三区| 国产精品8888| 成人性生交大片免费看午夜| 粉嫩高潮美女一区二区三区| 国产精品一区二区三区免费视频| 国产真实乱偷精品视频| 欧美肥老太太性生活| 亚洲精品国产精品久久清纯直播| 波多野结衣在线免费观看| 欧美电影免费观看网站| 亚洲一二三级电影| 正在播放精油久久| 国自产拍在线网站网址视频| 国产不卡在线播放| 91精品久久久久久久久久另类| 欧美精品一二三四区| 欧美午夜免费影院| xvideos国产精品| 欧美图片第一页| 精品综合久久88少妇激情| 91麻豆精品久久久久蜜臀| 欧美日韩在线免费播放| а√在线中文网新版地址在线| 亚洲人成人一区二区在线观看 | 国产亚洲欧洲997久久综合| 99一区二区三区| 国产精品无码久久久久成人app| 久久字幕精品一区| 日韩av片永久免费网站| 国产成人精品网| 一区二区日本视频| 97人人模人人爽人人喊中文字| 免费一级黄色大片| 欧美日韩调教| 欧美情侣性视频| 激情小说中文字幕| 最新精品国产| 欧美黄色性视频| 久久午夜鲁丝片午夜精品| 欧美永久精品| 欧美国产视频日韩| 九九九国产视频| 亚洲黄色毛片| 欧美中在线观看| caoporn国产| 日本欧美一区二区三区| 国产a∨精品一区二区三区不卡| 国产精品免费精品一区| 日韩精品乱码av一区二区| 国产精品美女主播在线观看纯欲| 中文字幕在线日亚洲9| 免费成人在线观看视频| 国产免费成人av| 国产精品嫩草影院桃色| 国产激情一区二区三区桃花岛亚洲| 91视频88av| 噜噜噜久久,亚洲精品国产品| 丁香六月久久综合狠狠色| 精品视频一区二区三区四区| 黄上黄在线观看| 中文字幕一区二区三区乱码在线 | 一本色道88久久加勒比精品| 91av网站在线播放| 最近中文字幕在线观看| 国产一区三区三区| 国产精品久久精品视| 欧美女v视频| 国产精品电影一区二区三区| 国产aaa免费视频| 亚洲欧美韩国| 欧美一区二区三区播放老司机| 久久无码专区国产精品s| 亚洲盗摄视频| 欧美精品在线免费播放| 久久精品国产成人av| 老司机一区二区| 国产精品一区视频| 色多多视频在线观看| 亚洲一线二线三线久久久| 欧美伦理视频在线观看| 91麻豆精品激情在线观看最新| 亚洲午夜女主播在线直播| 婷婷在线精品视频| 天堂资源在线中文精品| 97碰碰视频| 国产日韩精品在线看| 一区二区三区中文字幕| aaa毛片在线观看| 日本精品视频| 国产亚洲精品成人av久久ww | 欧美日韩亚洲网| 国产永久免费网站| 亚洲免费毛片| 色综合色综合网色综合| 最近中文字幕在线观看| 91毛片在线观看| 800av在线免费观看| 国产精品美女午夜爽爽| 日韩大片免费观看视频播放| 91日韩中文字幕| 蜜桃视频在线一区| 欧美国产综合视频| 51av在线| 日韩精品一区二区三区视频在线观看 | 美国成人xxx| 久热在线中文字幕色999舞| 无码无套少妇毛多18pxxxx| 粉嫩aⅴ一区二区三区四区五区| 亚洲一区二区三区加勒比| videos性欧美另类高清| 亚洲国产97在线精品一区| 国产女人18水真多毛片18精品| 青青草成人在线观看| 蜜桃视频成人| 日韩精品av| 亚洲精品91美女久久久久久久| 国产一区二区视频在线观看免费| 理论电影国产精品| 亚洲一区二区三区在线观看视频| 色香欲www7777综合网| 日韩大陆欧美高清视频区| 国产一级在线观看视频| 国产成人精品一区二| 97超碰人人爱| 精品国产乱码一区二区三区| 久久视频在线免费观看| 国产精品爽爽久久| 亚洲精选免费视频| 午夜激情视频网| 综合一区av| 亚洲www视频| 超碰在线最新| 日韩天堂在线观看| 免费看一级一片| 成人高清免费观看| 好吊妞无缓冲视频观看| 狼人精品一区二区三区在线| 欧美亚洲国产视频| 黄网在线观看| 欧美日韩免费一区二区三区 | 亚洲综合在线视频| 丰满人妻一区二区三区大胸| 国产一区视频在线观看免费| 国产精品一区视频网站| 嗯~啊~轻一点视频日本在线观看| 亚洲电影免费观看高清完整版在线观看 | 91在线免费视频| 日本三级在线观看网站| 亚洲激情小视频| 国产成人无码精品久久久久| 2欧美一区二区三区在线观看视频| 黄色动漫网站入口| 精品国精品国产自在久国产应用 | 亚洲国产精品99久久久久久久久 | 国产精品21p| 日本一区二区视频在线观看| 五月激情五月婷婷| 欧美视频福利| 日本精品一区| 激情视频亚洲| 97人人爽人人喊人人模波多| 国产三级在线免费观看| 欧美一区二区三区白人| 九一国产在线观看| 中文字幕在线观看一区| 国产人成视频在线观看| 日韩国产在线观看一区| 黄色一级片国产| 偷拍自拍亚洲色图| 成人黄色免费片| 美女高潮在线观看| 日韩在线www| 日韩有码第一页| 欧美日韩情趣电影| 国产无精乱码一区二区三区| 中文字幕成人在线观看| 亚洲天堂av网站| 免费成人av在线| 欧美精品自拍视频| 日韩黄色大片网站| 久久久久se| 国产精品视频首页| 国产精品91久久| 日本色护士高潮视频在线观看| 一色桃子一区二区| 无码国产色欲xxxx视频 | 色综合免费视频| 欧美日韩成人在线| 欧美一区二区激情视频| 亚洲精品国产成人久久av盗摄 | 亚洲乱熟女一区二区| 欧美亚洲综合一区| 日韩精品――中文字幕| 亚洲欧美自拍偷拍色图| av在线免费在线观看| 黑人极品videos精品欧美裸| 国产色无码精品视频国产| 久久久精品蜜桃| 日韩黄色一区二区| 久久99热这里只有精品| 国产男女激情视频| 影音先锋亚洲一区| 视色,视色影院,视色影库,视色网| 九九免费精品视频在线观看| 成人欧美一区二区| 亚洲ww精品| 国产精品三级网站| 高清电影一区| 日韩av免费在线播放| 天堂8中文在线最新版在线| 欧美日韩国产成人在线| 精品51国产黑色丝袜高跟鞋| 中文字幕在线观看亚洲| 国产对白叫床清晰在线播放| 日韩国产高清污视频在线观看| 亚洲av无码乱码国产麻豆| 91精品国产品国语在线不卡| 中文字幕第99页| 欧美中文一区二区三区| www.日韩一区| 色狠狠色噜噜噜综合网| 久久青青草视频| 日韩欧美999| 99精品在线播放| 欧美日韩中文字幕在线视频| 日韩三级视频在线播放| 精品久久久久久久久国产字幕| 日韩黄色a级片| 婷婷开心久久网| 国产成人在线免费视频| 黄色一区二区在线观看| av资源免费观看| 欧美日韩美女在线| 国产精品久久久久久久久久精爆| 欧美日韩日本国产| 无码人妻精品一区二区三区蜜桃91 | 国产视频丨精品|在线观看| 亚洲 欧美 自拍偷拍| 日韩精品福利在线| 国产无套粉嫩白浆在线2022年 | 一区二区三区在线观看免费视频| 久久在线观看免费| 成人做爰69片免网站| 国产精品久久久久久久久免费丝袜| 亚洲精品国产精品乱码在线观看| 中文字幕亚洲欧美在线不卡| 亚洲色婷婷一区二区三区| 一区二区欧美在线观看| 国产精品 欧美 日韩| 日韩欧美国产成人| 国产91av在线播放| 91精品在线免费观看| 亚洲第一色网站| 亚洲美女精品久久| 美女隐私在线观看| 欧美激情一级欧美精品| 不卡一二三区| 91精品啪在线观看麻豆免费| 高清精品xnxxcom| 日韩av高清| 亚洲第一偷拍| 国产欧美日韩网站| 奇米一区二区三区av| 特级黄色片视频| 久久综合色婷婷| 情侣偷拍对白清晰饥渴难耐| 一区二区三区四区亚洲| 久久久久久在线观看| 91精品国产aⅴ一区二区| 天天av天天翘| 精品国产一区二区三区久久久| 国产精品—色呦呦| 国产精品激情av电影在线观看| 香蕉大人久久国产成人av| 区一区二区三区中文字幕| 亚洲精品极品少妇16p| 黄色免费视频大全| 狠狠色丁香久久婷婷综合_中| 捆绑裸体绳奴bdsm亚洲| 国产精品的网站| 91国产丝袜播放在线| 91精品国产91久久久久久最新毛片| 日韩av资源| 欧美日本高清视频| 免费一区二区三区四区| 国产在线一区二区三区欧美| 亚洲美女视频| 99免费视频观看| 99视频国产精品| 黄色a级片在线观看| 在线精品观看国产| 天天在线女人的天堂视频| 久久五月天色综合| 日本精品在线中文字幕| 久久精品国产一区二区三区不卡| 在线成人激情| 五月婷婷丁香色| 久久免费看少妇高潮| 久久久久久久9999| 在线不卡免费av| 91啦中文在线| 国产精品成av人在线视午夜片| 动漫av一区| 日韩一级片一区二区| 激情欧美一区二区三区在线观看| 中文字幕网站在线观看| 动漫精品一区二区| 可以免费观看的毛片| 欧美日韩成人免费| 91丨精品丨国产| 亚洲午夜精品一区二区| 日本亚洲天堂网| 新91视频在线观看| 五月激情丁香一区二区三区| 亚洲美女福利视频| 欧美极品少妇xxxxx| 亚洲三级av| 欧美交换配乱吟粗大25p| 国产一区二区三区四| 国产小视频你懂的| 欧美三区免费完整视频在线观看| 成人jjav| 91精品久久久久久久久| 日韩精品一卡| 久久久久久综合网| √…a在线天堂一区| 91av久久久| www.欧美三级电影.com| 婷婷激情成人| 国产成年人在线观看| 国产一区二区剧情av在线| 希岛爱理中文字幕| 欧美大肚乱孕交hd孕妇| 青青在线视频| 国内精品久久国产| 免费亚洲婷婷| 天天躁日日躁aaaa视频| 欧美日免费三级在线| 快射视频在线观看| 91久久精品国产91久久性色tv| 国产精品观看| 呦呦视频在线观看| 色哟哟国产精品免费观看| 国产私人尤物无码不卡| 国产精品九九久久久久久久| 欧美成人激情| 成年人看片网站| 午夜精品福利一区二区三区av| 青春有你2免费观看完整版在线播放高清 | 特级片在线观看| 欧美精品一区二区三区蜜臀 | 亚洲日韩视频| 久久精品—区二区三区舞蹈| 欧美日韩国产成人在线91| 影音先锋中文在线视频| 国产伦理一区二区三区| 久久精品欧洲| 日本高清一二三区| 亚洲缚视频在线观看| av免费在线一区| 国产精品久久久影院| 久久天堂av综合合色蜜桃网| 在线观看免费视频a| 久久人人爽国产| 精品成人影院| 韩国三级在线看| 色视频一区二区| 尤物在线网址| 欧美一二三区| 国产成人精品影视| 天天干天天插天天射| 欧美猛交免费看| 视频一区中文| 国产精久久久久| 欧美日韩一区三区| 不卡的av影片| 一区不卡字幕| 久久综合九色综合欧美亚洲| 国产欧美一级片| 日韩av成人在线| 国产精品国码视频| 刘亦菲国产毛片bd| 日韩精品在线视频美女| 日韩高清二区|