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