從零開始學Android應用安全測試(Part2)
發表時間:2023-07-30 來源:明輝站整理相關軟件相關文章人氣:
在上一篇文章中,我們為測試安卓應用程序設置了一個移動滲透平臺。到目前為止,你需要保證你已經配置好你的虛擬設備,安裝完安卓命令行工具,以及前一篇文章所提及的一些工具(drozer, dex2jar, apktool)。
在這一篇文章中,我會帶領大家了解一些信息收集技術,我們將看到如何反編譯一款安卓應用程序,分析安卓應用程序的簽名以及其他一些東西。
關于虛擬設備這一點,如果你正在尋找一款符合你需求的安卓應用測試平臺,那么你可以去看看Android Tamer[https://androidtamer.com/ ]。
提取應用中的信息
首先,確認下你系統中的InsecureBankv2是我們的最新版本。當然,建議你做一個git pull將所有更新都合并到你的主分支中。

完成之后,我們就來對這個apk文件進行一些分析,將apk文件復制到一個獨立的文件夾中。就向Ios的ipa文件一樣,apk文件也是一個打包文件,所以你可以通過將文件后綴從.apk修改為.zip然后就可以進行提取了。

進入提取文件后的文件夾中,你可以看到許多的文件

讓我來簡單的進行一下描述:
AndroidManifest.xml——AndroidManifest.xml 是每個android程序中必須的文件。它位于整個項目的根目錄,描述了package中暴露的組件(activities, services, 等等),他們各自的實現類,各種能被處理的數據和啟動位置。從安全角度來看,它包含了應用程序中所有使用到的組件信息,同時它還會顯示應用程序使用的permissiosns信息,我強烈建議大家可以在谷歌文檔中多看看[ 在我們所要討論的漏洞中就會討論到安卓應用組件中的一些東西。 Assets——這個被用來存儲一些原始資源文件,存儲在里面的東西會編譯到apk文件中。 Res——用于儲存像圖片,版式文件等 META-INF——這個里邊存儲的是關于簽名的一些信息 classes.dex——這里面就是編譯的應用程序代碼,如果你要進行反編譯操作,那么你需要先將dex文件轉換為jar文件,然后用java編譯器進行讀取。
存儲公鑰證書的CERT.RSA文件是在META-INF 文件夾下面,找出公鑰證書的信息可以鍵入一下命令
keytool -printcert -file META-INF/CERT.RSA

請注意,在經過反編譯,編譯然后重新部署到其他設備之后還可以對這個apk文件中的代碼進行修改。但是,一旦修改了這個apk文件之后,就會丟失其完整性,那么我們就需要重新弄一個public/private key。
說到這里,推薦大家去了解下如何創建自己的public/private key
[http://developer.android.com/tools/publishing/app-signing.html]
一旦完成應用程序的編譯工作,你可以使用jarsigner工具對其完整性進行驗證。

現在我們就來使用dex2jar這款反編譯工具,dex2jar接受輸入為.apk后綴的文件,然后將其轉換為jar文件。

完成操作之后,你可以在JD-GUI中打開,并瀏覽其源代碼。

現在我們就可以通過瀏覽其源代碼找到一些潛在的漏洞,我們可以清楚的注意到對這個apk文件進行逆向,并瀏覽其源代碼是多么的簡單。這里我們需要注 意的是,我們之所以能夠這么簡單就得到源代碼是由于這款App沒有對其源碼進行模糊處理。像Google提供的Proguard工具就可對代碼進行模糊處 理。雖然對App源碼進行模糊處理并非是萬無一失的方法,但是至少還是有一部分作用,在今后的文章中我們可能就會遇到對代碼進行了模糊處理的案例。
在本節中,我們了解到如何從一款App中提取信息。
下節預告
在下一節中,我們將看到在InsecurBankv2.中一些不同類型的漏洞了。
FreeBuf小編:不得不吐槽一下,原作者不是在上節中就提示說下一節就會開始接觸到漏洞了么?這是故意吊咱們胃口么?不過作者肯定有自己的一些安排考慮在內,咱們也就一步一步的將所學內容掌握扎實吧!
[參考來源infosec,翻譯/鳶尾,轉載請注明來自FreeBuf黑客與極客]