日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

[車聯(lián)網(wǎng)攻防入門]常見控車app加固措施及繞過方式

2024-03-06 09:42:16·  來源:ACSRC  
 

引言


車聯(lián)網(wǎng)安全的攻防,一定會涉及移動端控車app的分析。當(dāng)前,幾乎所有發(fā)行版的控車app都會或多或少有一些加固措施,但是相比于某些app工廠來說,控車app的防護(hù)手段還是薄弱了一些,有不少加固措施可以被常規(guī)方法繞過,本文就嘗試對這些繞過方法做一些簡單的總結(jié)。


環(huán)境準(zhǔn)備


考慮成本和便利性,我們使用安卓模擬器來進(jìn)行測試,本文內(nèi)容基于64bit Android7系統(tǒng)的夜神模擬器,部分操作在雷電9模擬器中也能正常執(zhí)行。

PC端


frida-tools + frida + objection


注意以上三者是有版本匹配要求的,目前我們在使用的版本是


frida-tools 11.0.0 + frida 15.2.2 + objection 1.11.0


上述工具直接使用pip install即可安裝,如果碰到pip安裝frida時(shí)卡在setup.py執(zhí)行階段的情況,大概率是因?yàn)閟etup.py從墻外網(wǎng)站下載工具包,可以手動下載egg安裝包后重新執(zhí)行pip install。


安裝完成后,在命令行中使用frida --version應(yīng)該能看到如下結(jié)果。


圖片


模擬器端


模擬器端可以使用frida-server或hluda-server,后者是前者的魔改版,替換掉了一些特征以規(guī)避檢測。



注意:


(1)模擬器端server需要與PC端frida版本匹配


(2)模擬器中的server需要選擇android-x86或android-x86_64版本(分別針對32bit和64bit Android系統(tǒng)),如果是用在真實(shí)手機(jī)上,則需要根據(jù)手機(jī)處理器架構(gòu)選擇對應(yīng)版本,通常是android-arm或android-arm64server


下載完成后,使用adb命令將文件推送到手機(jī)并賦予執(zhí)行權(quán)限,并以root權(quán)限運(yùn)行即可。此時(shí)使用frida-ps -U應(yīng)該就能看到模擬器中正在運(yùn)行的進(jìn)程信息了。


圖片


加固措施及其繞過方式


root檢測


安卓模擬器一般會有是否開啟root的選項(xiàng),在開啟root和不開啟root的情況下,分別啟動app,觀察運(yùn)行狀態(tài)是否有異常,即可確認(rèn)app是否有root檢測。


圖片


要繞過root檢測,簡單一點(diǎn)的方法是使用objection的命令android root disable。其原理就是通過hook機(jī)制,隱藏部分root環(huán)境下的特征,不過實(shí)測下來并不好用,目前我們在測試的某款app就無法繞過。


圖片


復(fù)雜一點(diǎn)的方法,是使用模擬器能夠開關(guān)root的功能,在root權(quán)限下修改系統(tǒng)文件,然后在非root環(huán)境下運(yùn)行app。為了能夠利用frida hook繞過app中的檢測,需要以root權(quán)限運(yùn)行frida-server,滿足了這個(gè)前提,Android系統(tǒng)有沒有root環(huán)境其實(shí)并不重要?;谶@個(gè)想法,我們可以在root權(quán)限下,修改/system/etc/init/keystore.rc文件,添加如下內(nèi)容,修改完后記得使用chmod 644恢復(fù)rc文件原本的權(quán)限,否則可能導(dǎo)致模擬器無法啟動。


圖片


添加以上命令后,關(guān)閉模擬器的root權(quán)限,我們可以通過“setprop self.test.hluda start/stop“命令來控制hluda-server的開啟和關(guān)閉,同時(shí)規(guī)避掉root檢測措施。


真實(shí)手機(jī)無法自由開關(guān)root,所以大多數(shù)情況還是要通過刷機(jī)的方式實(shí)現(xiàn)這種繞過方法。


frida檢測


如果使用frida hook后,app運(yùn)行狀態(tài)出現(xiàn)了異常,那么就需要考慮app檢測了frida。


目前我們遇到的frida檢測方式主要有兩類:檢測frida本身的特征、檢測/proc/[pid]/maps是否有/data/local/tmp目錄,因?yàn)椴还苁莊rida-server還是hluda-server,都會向這個(gè)目錄下釋放文件。


針對frida本身特征的檢測,可以使用魔改了frida特征的hluda-server來繞過。


而對于maps文件的檢測,則需要自己編寫腳本來繞過,hook libc中的open和fopen函數(shù),當(dāng)app打開maps文件檢測時(shí),給他返回一個(gè)偽造的、沒有tmp目錄的maps文件即可,以下代碼可以作為參考。


圖片


加殼


加殼可以隱藏app原本的邏輯代碼,提高逆向分析的門檻。


圖片


除了少部分app需要手動脫殼外,大部分app的脫殼可以直接使用DEXDump(https://github.com/hluwa/frida-dexdump)或者objection+DEXDump (https://github.com/hluwa/objection-plugins)脫殼,objection+DEXDump脫殼如下圖所示


圖片


上述脫殼得到的dex文件重命名為classes.dex、classes02.dex、classes03.dex……,直接填到原本的apk中,就可以放到j(luò)adx中進(jìn)行靜態(tài)分析了,不過這個(gè)apk無法安裝運(yùn)行,動態(tài)調(diào)試仍然需要依靠objection或frida。


忽略代理


對于控車app,我們最感興趣的自然是控車功能,這就需要對app與云端的通信進(jìn)行抓包。


通常我們抓包的方式,是在手機(jī)WiFi的高級設(shè)置中配置代理。


圖片


但是某些app會設(shè)置為忽略系統(tǒng)代理的模式,對此可以使用proxifier,強(qiáng)制模擬器的流量都經(jīng)過抓包工具,在proxifier的profile->Proxy Servers和profile->Proxification Rules中分別做如下設(shè)置即可。


圖片


圖片


證書校驗(yàn)


在app與服務(wù)端通信的過程中,可能存在兩部分證書校驗(yàn):客戶端對服務(wù)端的校驗(yàn)、以及服務(wù)端對客戶端的校驗(yàn),二者組合起來就是我們常說的雙向校驗(yàn)。


針對客戶端對服務(wù)端的校驗(yàn), objection同樣也提供了繞過的工具,用如下圖所示的命令即可。


圖片


這種繞過方式原理就是通過hook的方式修改了證書校驗(yàn)相關(guān)方法的實(shí)現(xiàn),對于使用原生TrustManager 、OkHttp和Retrofit的app使用objection提供的功能就已經(jīng)足夠了,更詳細(xì)的介紹可以參考o(jì)bjection官方的說明



服務(wù)端對客戶端的校驗(yàn),一種典型的報(bào)錯(cuò)如下圖所示,服務(wù)端返回的數(shù)據(jù)顯示需要特定的證書。


圖片


此時(shí)需要將客戶端的證書導(dǎo)入抓包工具。獲取客戶端證書也可以利用hook來實(shí)現(xiàn),部分app可能在啟動時(shí)就加載了證書,因此需要用objection在app啟動時(shí)就開始hook相關(guān)的類,可以使用如下命令實(shí)現(xiàn)。


 

hook的結(jié)果如下圖


圖片


上圖中Keystore.load方法,第一個(gè)參數(shù)是證書的內(nèi)容,第二個(gè)參數(shù)是打開證書所需要的密碼,在反編譯后的app代碼中,搜索這兩個(gè)密碼,就可以找到對應(yīng)的證書文件。


圖片


根據(jù)上圖的內(nèi)容,在app的assets目錄下找到對應(yīng)的證書文件導(dǎo)入抓包工具即可,我們使用的charles可以在Proxy->SSL Proxying Settings->Client Certificates中加載客戶端證書。


圖片


結(jié)語


當(dāng)然,模擬器會受到諸多限制,有條件用真機(jī)自然是更好的選擇,本文僅做拋磚引玉,文中提到的大部分做法都是可以遷移到真機(jī)的。

分享到:
 
反對 0 舉報(bào) 0 收藏 0 評論 0
滬ICP備11026917號-25