成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

移動開發(fā) Android
由于 Android 系統(tǒng)在解析時對非 COMP_DEFLATE 的壓縮方式采取的是未壓縮處理,從邏輯上看,這種做法并不符合規(guī)范,因此,導(dǎo)致 b356 成功地利用了這一邏輯漏洞。徹底的解決方案應(yīng)該是 Android 系統(tǒng)按照規(guī)范的 zip 包解壓格式進(jìn)行處理。
背景

隨著移動應(yīng)用的廣泛普及,惡意軟件也日趨復(fù)雜和隱蔽。本報告著眼于一個由 ReBensk 提交至 incinerator.cloud 的惡意 Android 軟件樣本。

樣本哈希值:

MD5: 2f371969faf2dc239206e81d00c579ff

SHA-256: b3561bf581721c84fd92501e2d0886b284e8fa8e7dc193e41ab300a063dfe5f3

在 ReBensk 提交至 incinerator.cloud 的多個惡意樣本中,我們特別關(guān)注了一款經(jīng)過自定義修改的 APK 文件,以下簡稱為“樣本 b356”。這個樣本采用了獨(dú)特的混淆和隱蔽技術(shù),導(dǎo)致標(biāo)準(zhǔn)的解壓縮工具無法成功解壓其內(nèi)容。通過特定的修正操作,我們成功突破這一限制,并進(jìn)一步分析了該樣本。

分析過程

1. 解壓失敗分析

在嘗試使用 7z 工具解壓這個 APK 文件時(Apk 本質(zhì)上是一個 ZIP 文件),遇到錯誤顯示 AndroidManifest.xml header 錯誤,這說明標(biāo)準(zhǔn)的解壓過程無法正確地解壓樣本 b356。

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

在使用 010 Editor 打開 APK 文件并應(yīng)用 ZipAdv 模板進(jìn)行解析后,并未發(fā)現(xiàn)任何明顯的錯誤或異常。

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

為了更深入地了解問題,我們打開了一個正常運(yùn)行的 APK 文件進(jìn)行對比分析。這樣做是為了確定是否存在某種特殊或不規(guī)則的結(jié)構(gòu)或數(shù)據(jù),可能是導(dǎo)致解壓失敗的原因。

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

通過對比發(fā)現(xiàn),我們發(fā)現(xiàn)樣本 b356 采用了一個不非法的壓縮算法 0x23C2。在標(biāo)準(zhǔn)的 ZIP 格式規(guī)范中,壓縮方法由一個短整數(shù)(short)表示,取值通常如下文所示(以下代碼取自 010 Editor 的 ZIPAdv.bt 模板)。由于 0x23C2 不是任何已知的標(biāo)準(zhǔn)壓縮方法,因此 7z 等解壓工具無法識別和處理。

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

因此,樣本 b356 采用了未知的壓縮算法,導(dǎo)致通用壓縮工具解壓縮失敗。但為什么它能在 Android 系統(tǒng)上仍然可以成功安裝和運(yùn)行呢?

2. Android 系統(tǒng)的成功解析與運(yùn)行原因

正如下圖所示, 根據(jù) Android 系統(tǒng)源代碼,當(dāng)系統(tǒng)遇到非 COMP_DEFLATE 的壓縮算法時,它會采用“未壓縮”(COMP_STORED)的方法處理輸入文件。具體來說,系統(tǒng)直接讀取未壓縮數(shù)據(jù)的長度,并據(jù)此進(jìn)行解析。

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

請注意看黃框和紅框中的代碼對比,在黃框中,如果使用的是 COMP_DEFLATE 壓縮算法,系統(tǒng)將按照相應(yīng)的方法解壓縮,如果不是,系統(tǒng)將直接讀取壓縮前的長度,然后進(jìn)行處理。

這就解釋了為什么修改了 AndroidManifest 的壓縮方法后,系統(tǒng)仍然可以正確運(yùn)行。樣本 b356 在正常打包流程完成后,將包中的 AndroidManifest.xml 文件內(nèi)容替換為未壓縮前的內(nèi)容,并將壓縮算法替換為非 COMP_DEFLATE 。因此,常規(guī)解壓工具會失敗,但 Android 系統(tǒng)會按照未壓縮的方式處理,因此可以正常運(yùn)行。

3. 解壓程序的修改建議

3.1 修復(fù) Apk

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

按照 Android 系統(tǒng)的處理方式,Apk 的 AndroidManifest.xml 只能采用兩種壓縮方式。COMP_DEFLATE 或未壓縮。

如果壓縮算法不是默認(rèn)的 COMP_DEFLATE ,那么一定是未壓縮。因此修復(fù) apk 的方法是,如果發(fā)現(xiàn)壓縮算法不是 COMP_DEFLATE ,將壓縮算法設(shè)置為 0,即未壓縮,并將壓縮后的長度設(shè)置為壓縮前的長度。這樣,常規(guī)解壓工具就可以解壓了。

修復(fù)后,我們嘗試使用 7-Zip(通常簡稱為 7z)工具進(jìn)行解壓,結(jié)果如下圖所示。盡管仍然存在錯誤,特別是關(guān)于 CRC(循環(huán)冗余檢查)值尚未修復(fù)的問題,但我們已成功解壓了 APK 文件,并可以訪問其中的 AndroidManifest.xml 內(nèi)容。

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)AndroidManifest.xml 多種混淆繞過靜態(tài)分析的技術(shù)分析(Zip 格式類型修改繞過)

3.2 靜態(tài)分析工具的修復(fù)

靜態(tài)分析工具可以按照系統(tǒng)的解壓方式處理,如果發(fā)現(xiàn) AndroidManifest.xml 的壓縮方法不是 COMP_DEFLATE ,那么就讀取壓縮前的長度作為 AndroidManifest.xml 的內(nèi)容。

總結(jié)

由于 Android 系統(tǒng)在解析時對非 COMP_DEFLATE 的壓縮方式采取的是未壓縮處理,從邏輯上看,這種做法并不符合規(guī)范,因此,導(dǎo)致 b356 成功地利用了這一邏輯漏洞。徹底的解決方案應(yīng)該是 Android 系統(tǒng)按照規(guī)范的 zip 包解壓格式進(jìn)行處理。

來源:https://www.liansecurity.com/#/main/news/GzKmQIoBUQjGUXE22_tO/detail

責(zé)任編輯:武曉燕 來源: 嘶吼網(wǎng)
相關(guān)推薦

2013-12-04 10:21:38

AndroidAndroidMani

2014-08-04 10:52:48

AndroidMani

2011-03-30 17:32:28

androidmaniAndroid開發(fā)

2013-03-27 14:15:25

2012-06-05 10:09:45

AndroidManiAndroidMani

2013-06-28 13:38:45

AndroidAndroidMani

2009-09-21 18:00:49

Hibernate X

2013-01-11 16:23:29

2016-12-28 10:34:58

2017-05-24 11:28:20

2023-02-28 09:47:42

2012-12-24 13:50:54

2015-10-13 16:21:53

2017-01-15 22:51:16

2013-06-03 10:02:53

WAF繞過

2013-12-18 09:39:37

XSSWAF繞過

2009-10-26 11:32:53

接入網(wǎng)技術(shù)

2010-02-23 18:10:01

WCF綁定類型

2019-01-17 04:41:38

2019-02-19 08:45:41

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩av一区二区在线观看 | 欧美在线一区视频 | 精品一区电影 | 天堂av中文在线 | 亚洲一区视频在线 | 欧美二区在线 | 免费视频二区 | 九九九国产 | 一区二区在线 | 欧美精品1区2区3区 免费黄篇 | 日韩有码一区 | 99国产精品久久久 | 国产精品成人一区二区 | 狠狠操av| 天堂一区二区三区 | 韩日在线 | 亚洲综合天堂网 | 久久精品网 | 蜜臀网| 国产综合精品一区二区三区 | 精品真实国产乱文在线 | 亚洲一区国产精品 | www.99久久.com | 欧美1区2区| 日日夜夜草 | 久久精品二区 | 一区二区在线 | 蜜桃传媒一区二区 | 国产精品片 | 免费国产视频在线观看 | 色综久久 | 黄色在线免费观看 | 久久高潮 | 亚洲精品乱码久久久久久按摩观 | 亚洲精品久久久久久久久久吃药 | 中文字幕在线一区 | 亚洲高清视频在线观看 | 国产免费一区二区 | 国产第一页在线播放 | 久久影院一区 | 一区二区伦理电影 |