摘要:前言攝像頭是我們常見的設(shè)備,它的安全關(guān)系著用戶的隱私,而廠商為了防止逆向分析,在程序的實現(xiàn)上會使用各種方法來阻止逆向工程。本文通過某款知名的攝像頭的逆向分析,簡單介紹了我是如何通過串口一步步的對攝像頭中的關(guān)鍵程序進行逆向的方法。
攝像頭是我們常見的IoT設(shè)備,它的安全關(guān)系著用戶的隱私,而廠商為了防止逆向分析,在程序的實現(xiàn)上會使用各種方法來阻止逆向工程。本文通過某款知名的攝像頭的逆向分析,簡單介紹了我是如何通過串口一步步的對攝像頭中的關(guān)鍵程序進行逆向的方法。
直接拆開目標(biāo),處理器和FLASH在底座下面,通過分析可知道,該型號的攝像頭使用了海思Hi3516A(ARM架構(gòu)),F(xiàn)LASH為128MB,該FLASH引腳相對拆焊比較費時間,于是 試試能不能直接從串口中獲取到固件。
?發(fā)現(xiàn)PCB版上暴露了UART串口,其中通過萬用表測量可知,最左邊的焊盤為GND,最右邊焊盤對地為3.3v,應(yīng)該是Vcc,中間兩個為Rx和Tx。
?將UART接到TTL轉(zhuǎn)USB,這時注意Rx和Tx如果接反串口無信息,這時調(diào)換以下就可以看到輸出的打印信息。
?打開對應(yīng)的串口,設(shè)置波特率115200:
按住Ctrl+B進入U-boot,這時我們可以在U-boot中提取出固件了 。
先看flash內(nèi)存布局,開始的1M存放的是boot,后面是kernel,接著是program,我們關(guān)注點主要在kernel和program上,先把這些數(shù)據(jù)讀取出來。
先把數(shù)據(jù)讀到內(nèi)存,然后md出來,再轉(zhuǎn)成bin即可,這里演示是dump kernel的數(shù)據(jù)。其他FLASH數(shù)據(jù)也可通過該方法dump出來。
使用binwalk可以直接解開提取到的固件數(shù)據(jù),然而在分析過程中,
發(fā)現(xiàn)一些程序是加密的,如下圖所示,該文件原來應(yīng)該是ELF程序,應(yīng)該有ELF magic number,但是010 editor分析后發(fā)現(xiàn)這個程序是加密了。
有加密的地方就會有解密的地方,一般linux下對程序解密都是放在內(nèi)核完成的,下一步我們需要分析該固件的內(nèi)核,如下所示,高亮的地方我們可以獲取到該內(nèi)核的真正加載地址:0xC0008000。
當(dāng)設(shè)置正確的加載地址后,IDA已經(jīng)可以識別出一大部分函數(shù)信息:
?我們通過字符串引用信息快速定位了解密該程序的地方,該函數(shù)先判斷了是否是ELF文件,是的話就不執(zhí)行解密邏輯。如果確定程序加密后,先讀取前32字節(jié)解密出AES密鑰。
我們不需要太關(guān)心解密密鑰算法,由于該算法很簡單,直接復(fù)制到vs中進行調(diào)用,并且編譯運行得到AES密鑰:QdCpBsjP_**?_TY
?
后面是直接調(diào)用了AES-CBC進行解密,key和iv為我們解密得到的字符串:
解密腳本如下所示:
from Crypto.Cipher import AESimport binasciiimport hexdumpwith open("./fs/usr/bin/****","rb") as fd: data=fd.read()key=b"QdCpBsjP_***_TY"iv=keycipher = AES.new(iv, AES.MODE_CBC,key)dec=cipher.decrypt(data[0x80:])hexdump.hexdump(dec)with open("****.bin","wb+") as fd: fd.write(dec)
解密結(jié)果如下:
?
本文簡單介紹了串口提取固件的方法以及快速解密廠商自定義的程序加密的方法。通過以上工作,基本上為后續(xù)的分析掃除了障礙,當(dāng)然,后面的漏洞挖掘工作還是一個不小的挑戰(zhàn)。今后大家遇到加密得ELF程序或者bash,不妨分析下Linux內(nèi)核,沒準(zhǔn)解密算法就在其中。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/119773.html
摘要:咱媽說別亂點鏈接之淺談攻擊閱讀掘金作者馬達編輯迷鹿馬達,精通開發(fā)開發(fā),擅長接口設(shè)計以及平臺化建設(shè),獨自主導(dǎo)過多個產(chǎn)品。一題目購物應(yīng)用分環(huán)境要求安全學(xué)習(xí)資料匯總掘金安全學(xué)習(xí)資料匯總安全學(xué)習(xí)網(wǎng)站收集 咱媽說別亂點鏈接之淺談 CSRF 攻擊 - 閱讀 - 掘金作者 | 馬達編輯 | 迷鹿 馬達, 精通PHP開發(fā)、Web開發(fā),擅長api接口設(shè)計以及平臺化建設(shè),獨自主導(dǎo)過多個Web產(chǎn)品。目前就職...
摘要:咱媽說別亂點鏈接之淺談攻擊閱讀掘金作者馬達編輯迷鹿馬達,精通開發(fā)開發(fā),擅長接口設(shè)計以及平臺化建設(shè),獨自主導(dǎo)過多個產(chǎn)品。一題目購物應(yīng)用分環(huán)境要求安全學(xué)習(xí)資料匯總掘金安全學(xué)習(xí)資料匯總安全學(xué)習(xí)網(wǎng)站收集 咱媽說別亂點鏈接之淺談 CSRF 攻擊 - 閱讀 - 掘金作者 | 馬達編輯 | 迷鹿 馬達, 精通PHP開發(fā)、Web開發(fā),擅長api接口設(shè)計以及平臺化建設(shè),獨自主導(dǎo)過多個Web產(chǎn)品。目前就職...
閱讀 1321·2023-04-25 20:31
閱讀 3806·2021-10-14 09:42
閱讀 1621·2021-09-22 16:06
閱讀 2801·2021-09-10 10:50
閱讀 3675·2021-09-07 10:19
閱讀 1883·2019-08-30 15:53
閱讀 1261·2019-08-29 15:13
閱讀 2902·2019-08-29 13:20