Android開發工具Apktool漏洞利用分析

Apktool是Android開發人員常用的工具,可用于反編譯、重打包Apk。

近日,國外安全人員披露了早期版本的Apktool存在的兩個漏洞細節,一個是XXE漏洞,可造成對用戶電腦/系統任意文件的訪問;另一個是路徑穿越漏洞,可釋放、覆蓋用戶電腦/系統文件、代碼執行等危害。

二 漏洞實例

1. XML外部實體 (XXE) 漏洞

原理:Apktool在解析AndroidManifest.xml文件時,不會禁用外部實體引用,導致存在XML外部實體注入攻擊(XXE)漏洞。

利用方式:惡意攻擊者通過構造Android應用中的惡意XML文件,用戶使用Apktool對該應用進行重打包時,觸發XXE漏洞,導致對用戶電腦上文件的訪問。

以下是利用過程:

先構造惡意AndroidManifest.xml,在其中插入一段訪問遠程服務器的代碼,如下所示:

當用戶使用Apktool對這個目錄進行重打包生成Apk時,從遠程服務器日志可以看出,用戶電腦已經靜默訪問該網站。

研究人員也提供了讀取/etc/目錄下的文件并將內容回傳給遠程服務器的PoC代碼,如下圖所示:

關于XXE漏洞攻擊和防護手段,可以訪問TSRC的這篇博客 https://security.tencent.com/index.php/blog/msg/69 了解詳情。

2.路徑穿越漏洞

原理:Apktool在解析apktool.yml文件中的unknownFiles字段時,沒有對”../“字符串進行過濾,導路徑穿越漏洞。

利用方式:惡意攻擊者通過構造惡意apktool.yml文件,在unknownFiles字段中使用包含” ../“的路徑,用戶使用Apktool對該應用進行反編譯時,造成釋放、替換用戶電腦對應路徑下文件,甚至可造成代碼執行的危害。

以下是利用過程:

先看一個正常apk反編譯后的apktool.yml文件,

接著我們對其中的unknownFiles字段進行修改,添加一個能在apktool解壓時穿越到apache服務器路徑下的變量,如下圖所示,

然后使用apktool對這個修改后的文件夾進行重打包,生成的apk效果如下:

當用戶下載這個apk,使用apktool對其進行反編譯時, shell.php文件會被釋放到 /var/www/html 路徑下,同理,也可以替換用戶其他路徑下的文件。

三 修復建議

Apktool在 1.5.2-2.2.4 之間的版本受上述漏洞影響,Apktool作者已經在新版本修復漏洞,建議升級至最新版。

Apktool下載鏈接: https://bitbucket.org/iBotPeaches/apktool/downloads

四 結語

這個漏洞向我們展示了一個新的新攻擊面,通過對常用開發者工具的漏洞利用,達到竊取用戶/公司/系統敏感文件、代碼執行的目的。建議大家不僅要對系統進行日常更新,也要關注常用軟件的更新。

 

來自:https://security.tencent.com/index.php/blog/msg/122

 

 本文由用戶 1083077416 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!