【安全攻防挑戰】Android app遠程控制實戰
阿裡聚安全攻防挑戰賽第三題Android PwnMe解題思路
大家在聚安全挑戰賽正式賽第三題中,遇到android app 遠程控制的題目。我們今天帶你一探究竟,如何攻破這道題目。
一、題目
購物應用pwn (6分)
環境:
- 要求在ARM 64位Android手機上攻擊成功,也可在模擬器(運行Google官方Android SDK提供的Google APIs ARM64 Android 7.0鏡像)中攻擊成功,其中鏡像會打包提供,參見題目下載鏈接。模擬器執行命令參考如下:(qemu-system-aarch64 -sysdir . -datadir . -kernel kernel-qemu -system system.img -ramdisk ramdisk.img -data userdata.img)
- 包含bug的apk一個
- 必須在非root環境
攻擊過程:
- 將apk裝入模擬器中。
- 打開chrome浏覽器,訪問選手的惡意網頁的地址。(web服務由選手自己搭建)
- 通過選手的惡意網頁,即可獲取此app的shell。
- apk顯示“購買成功”
目標:Chrome浏覽器點擊鏈接,導致遠程觸發app的購買邏輯,app界面上顯示“購買成功”。
評分標准:通過浏覽器訪問網頁即達到控制app遠程任意代碼執行得6分,其中:
1. 反彈shell控制app ,5分。
2. 能夠進一步讓app界面顯示“購買成功”分數進一步得1分 。
3. 需提供遠程任意代碼執行的利用程序源代碼。
二、解題思路
攻擊流程如下:
1. Android Intents with Chrome
其中題目中要求“Chrome浏覽器點擊鏈接”,Chrome的官方文檔規定了如何從鏈接發intent啟功app,官方文檔鏈接:https://developer.chrome.com/multidevice/android/intents 。反匯編ExamPwn.apk文件發現AndroidManifest.xml中果然有接受相關intent的內容。如圖:
類LoginActivity先接受這個intent解析出帳號密碼並匹配,帳號密碼直接以明文硬編碼在類LoginActivity中,反匯編直接可以看見。匹配正確後將intent中的url丟給類MainActivity。也就是說攻擊者的網頁至少如下:
閱讀全文直接點擊:http://click.aliyun.com/m/9829/