精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久成人av少妇免费| 欧美日韩一区二区三区在线电影| 国产精品美女久久久久久久久久久| 国产美女精彩久久| 麻豆成人在线视频| 美女久久久久| 678五月天丁香亚洲综合网| 黄网站色视频免费观看| 全部免费毛片在线播放网站| 全部av―极品视觉盛宴亚洲| 欧美尺度大的性做爰视频| 国模私拍在线观看| 欧美日韩免费电影| 偷窥少妇高潮呻吟av久久免费| 欧美日韩国产精品一卡| 国产女同91疯狂高潮互磨| 日韩午夜高潮| 欧美成人网在线| 欧美狂猛xxxxx乱大交3| 粉嫩91精品久久久久久久99蜜桃| 一区av在线播放| 亚洲欧洲一区二区| 四虎国产精品永远| 国产精品18久久久久久vr| 日本高清视频一区| 国产亚洲精品久久久久久打不开| 第一会所亚洲原创| 亚洲精品国产suv| 亚欧美一区二区三区| 色豆豆成人网| 福利微拍一区二区| 大胆欧美熟妇xx| 亚洲s色大片| 91老司机福利 在线| 91福利视频导航| 国产一区二区网站| 日韩国产欧美视频| 69视频在线免费观看| 欧美日韩在线国产| 99久久精品费精品国产| 国产亚洲精品激情久久| 美国黄色a级片| 久久香蕉精品香蕉| 日韩欧美黄色影院| 日批视频在线看| 亚洲综合伊人| 91精品免费在线观看| 亚洲综合色在线观看| 欧美日韩视频免费观看| 91久久精品国产91性色tv| av天堂永久资源网| 欧美无毛视频| 在线亚洲欧美专区二区| 国产免费毛卡片| 神马午夜在线视频| 精品福利在线视频| 成人av一级片| 亚洲黄色网址| 在线观看国产精品网站| 动漫av免费观看| 中文字幕av一区二区三区佐山爱| 欧美性猛交xxxx偷拍洗澡| 欧美爱爱视频免费看| 水蜜桃在线视频| 色婷婷久久99综合精品jk白丝| 国产原创popny丨九色| h片精品在线观看| 五月婷婷久久综合| 国产偷人视频免费| 欧美xnxx| 在线电影一区二区三区| 亚洲三级在线视频| 国产精伦一区二区三区| 亚洲精品二三区| 亚洲专区区免费| 欧美日韩激情在线一区二区三区| 视频在线一区二区| 国产探花在线免费观看| 精品动漫3d一区二区三区免费| 97国产精品免费视频| 欧美黑人一区二区| 久久精品国产免费| 99国产高清| 青青草在线播放| 中文字幕巨乱亚洲| 久久精品在线免费视频| 国产无遮挡裸体视频在线观看| 色综合久久综合网| 亚洲高清在线不卡| 久久婷婷国产| 日韩中文第一页| 国产在线综合网| 首页国产欧美久久| 91gao视频| 日韩午夜影院| 亚洲欧美日韩国产中文在线| 国产精品999视频| 成人免费一区| 亚洲电影在线看| www.4hu95.com四虎| 精品成人国产| 国产一区二区丝袜| 五月婷婷六月丁香| 国产精品初高中害羞小美女文| 亚洲精品蜜桃久久久久久| 3d欧美精品动漫xxxx无尽| 91精品啪在线观看国产60岁| 97人妻天天摸天天爽天天| 色喇叭免费久久综合网| 97视频免费观看| 国产精品区在线观看| 91啦中文在线观看| 欧美在线观看视频免费| 色综合天天色| 亚洲黄色在线观看| 午夜激情福利电影| 久久久777| 国产精品美女xx| 免费在线看a| 色综合天天综合在线视频| 国产成人精品一区二区三区在线观看| 国产欧美日韩一区二区三区四区| 久久69精品久久久久久国产越南| 天天综合久久综合| 99久久久精品| 欧美激情亚洲天堂| crdy在线观看欧美| 在线观看中文字幕亚洲| 亚洲熟女综合色一区二区三区| 国产91在线观看| 精品久久免费观看| 欧美123区| 亚洲欧美999| 成人精品免费在线观看| 高清国产一区二区三区| 水蜜桃在线免费观看| 精品国产美女a久久9999| 国产小视频国产精品| 亚洲视频 欧美视频| 97久久精品人人做人人爽| 人妻无码一区二区三区四区| 国产一区二区三区视频在线| xvideos亚洲人网站| 怡春院在线视频| 中文字幕不卡在线播放| 狠狠热免费视频| 精品国产99| 国产99久久精品一区二区| 青草久久伊人| 日韩欧美精品网址| 精品无码一区二区三区| 免费永久网站黄欧美| 欧美xxxx黑人又粗又长密月| 欧美少妇网站| 亚洲人成77777在线观看网| 中文字幕一区在线播放| 91小视频免费观看| 中国丰满人妻videoshd| 国产午夜一区| 国产精品日日摸夜夜添夜夜av| 成年网站在线| 欧美日本国产视频| 老女人性淫交视频| 成人一级黄色片| 97超碰青青草| 精品国产精品| 91精品啪在线观看麻豆免费| 欧美videossex| 亚洲高清不卡av| aaa在线视频| 国产精品色呦呦| 97超碰人人看| av成人国产| 午夜精品美女久久久久av福利| 日韩福利影视| 日韩在线免费视频| 亚洲av无码乱码在线观看性色| 亚洲va韩国va欧美va精品 | 国产精品综合在线视频| 800av在线免费观看| 欧美一级一片| 国产精品视频999| 在线中文字幕电影| 精品亚洲aⅴ在线观看| 做爰无遮挡三级| 一区二区三区久久久| 国产精品探花一区二区在线观看| 日韩福利电影在线观看| 婷婷视频在线播放| 婷婷成人影院| 成人信息集中地欧美| 97蜜桃久久| 中文字幕亚洲综合久久筱田步美| 精品国产乱码久久久久久蜜臀网站| 亚洲3atv精品一区二区三区| 激情无码人妻又粗又大| 成人免费的视频| av污在线观看| 亚洲中字黄色| 91嫩草国产丨精品入口麻豆| 亚洲视频分类| 99国产盗摄| 久久青草免费| 奇米成人av国产一区二区三区| 免费av网站在线看| 日韩精品在线观看网站| 精品国产伦一区二区三| 欧美在线综合视频| 欧美三级韩国三级日本三斤在线观看 | 日韩精品网站| 精品无码久久久久久久动漫| 国产精品亚洲欧美一级在线| 国产成人精品午夜| 9lporm自拍视频区在线| www.美女亚洲精品| 你懂的在线看| 亚洲成人a**站| 国产美女无遮挡永久免费| 色综合咪咪久久| 日韩欧美a级片| 亚洲视频一区二区在线观看| 国产精品美女高潮无套| 97久久精品人人做人人爽50路| 手机看片国产精品| 黑人巨大精品欧美黑白配亚洲| 欧美成人一区二区在线观看| 韩国自拍一区| 国产精品自拍合集| 久久精品国内一区二区三区水蜜桃| 日本福利一区二区三区| 丝袜美腿一区二区三区动态图 | 偷拍亚洲色图| 国产九区一区在线| av在线亚洲色图| 99热99热| 一本色道69色精品综合久久| 成人在线免费观看视视频| 国产91精品在线| 国产精品看片资源| 欧美舌奴丨vk视频| 日韩免费在线免费观看| 中文在线免费二区三区| 2020国产精品视频| 瑟瑟视频在线看| 2020欧美日韩在线视频| 春色校园综合激情亚洲| 国内精品小视频| 蜜臀久久精品| 国产精品91久久| 天然素人一区二区视频| 国产精品久久久久免费a∨大胸| 欧美va在线| 国产日韩欧美中文| 图片一区二区| 亚洲xxxx在线| 99久久免费精品国产72精品九九| 成人一区二区三区四区| 激情小说亚洲图片| 久久99国产精品| 国产免费av一区二区三区| 亚洲国产精品一区二区第一页| 成人在线视频免费观看| 中文字幕日韩一区二区三区不卡| 香蕉精品视频在线观看| 久久久久久av无码免费网站下载| 亚洲国产电影| 欧美视频第三页| 久久精品国产精品亚洲红杏| 日韩av加勒比| 成人福利视频在线| 免费观看av网站| 国产精品久久久久影院色老大| 国产一区二区精彩视频| 亚洲午夜一区二区| 天堂а√在线中文在线新版| 精品视频免费在线| 亚洲国产精彩视频| 亚洲精品自拍第一页| www 日韩| 久久91超碰青草是什么| 625成人欧美午夜电影| 国产美女91呻吟求| 久久久精品国产**网站| 日韩三级在线播放| 欧美激情五月| 激情婷婷综合网| 精品一二三四在线| 菠萝菠萝蜜网站| 国产精品日日摸夜夜摸av| 久久久精品人妻一区二区三区四| 福利微拍一区二区| 99热这里只有精品5| 精品亚洲一区二区三区在线播放| 免费av网站在线看| 青青在线视频一区二区三区| 91视频成人| 日本不卡一二三区| 亚洲天堂成人| 午夜久久福利视频| 99re66热这里只有精品3直播| 五月天免费网站| 精品欧美国产一区二区三区| 国产精品伦一区二区三区| 日韩精品在线观看一区| av网址在线| 国产精品av在线| 黑色丝袜福利片av久久| 伊人久久大香线蕉午夜av| 国产欧美不卡| av地址在线观看| 中文一区二区在线观看| 男人的天堂一区二区| 在线成人免费视频| 欧美理论在线观看| 久久久久国产精品www| 国产精品无码久久久久| 美女被啪啪一区二区| 黄色日韩在线| 国产精品久久久久久久av福利| 久久久久9999亚洲精品| 日本少妇做爰全过程毛片| 日韩一区二区三区视频在线| lutube成人福利在线观看| 68精品久久久久久欧美| 成人激情自拍| 黄色一级片黄色| 国产一区二区三区视频在线播放| 超碰97av在线| 在线观看视频一区| 青青草在线免费视频| 91av在线播放| 日韩三级毛片| 成年人网站免费视频| 成人免费毛片a| 久久免费精彩视频| 日韩午夜激情av| 超鹏97在线| 亚洲最大的成人网| 亚洲精品一区二区妖精| 91免费视频污| 亚洲人成网站色在线观看| 一区二区日韩在线观看| 日韩在线观看网站| 婷婷精品久久久久久久久久不卡| 一区二区三区精品国产| 蜜桃av一区二区| 国产第一页精品| 欧美疯狂性受xxxxx喷水图片| 伊人免费在线| 亚洲精品欧美极品| 欧美视频网站| 北岛玲一区二区| 狠狠色香婷婷久久亚洲精品| 涩爱av在线播放一区二区| 热久久99这里有精品| 亚洲资源网你懂的| 丰满少妇在线观看| 国产精品乱码一区二三区小蝌蚪| 一级片在线观看视频| x99av成人免费| 亚洲一区二区电影| 蜜臀av无码一区二区三区| 99视频一区二区| 免费又黄又爽又猛大片午夜| 中文字幕欧美专区| 日韩精品一区国产| 日本a在线免费观看| 久久日韩粉嫩一区二区三区| 亚洲av无码不卡| 久久久精品免费视频| 一区中文字幕| 国产1区2区在线| 中文字幕在线不卡一区二区三区 | 日韩精品极品在线观看播放免费视频 | 亚洲精品亚洲人成在线| 亚洲视频在线a| 亚洲三级在线播放| 色婷婷av一区二区三| 国产成人精品综合| 在线成人激情| 少妇特黄一区二区三区| 欧美精品成人一区二区三区四区| 中文字幕在线观看播放| 麻豆成人av| 精品一区二区三区香蕉蜜桃| 伊人国产在线观看| 亚洲天堂成人在线视频| 久久69av| 国产最新免费视频| 亚洲欧洲日产国码二区| 天天综合在线视频| 国产日韩在线精品av| 影音先锋在线一区| 又嫩又硬又黄又爽的视频| 337p日本欧洲亚洲大胆精品| 欧美色片在线观看| 久久精品国产sm调教网站演员| 欧美国产激情二区三区| 高潮毛片7777777毛片| 国产日韩专区在线|