從零開始學(xué)Android應(yīng)用安全測試(Part2)
發(fā)表時(shí)間:2023-07-30 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
在上一篇文章中,我們?yōu)闇y試安卓應(yīng)用程序設(shè)置了一個(gè)移動(dòng)滲透平臺。到目前為止,你需要保證你已經(jīng)配置好你的虛擬設(shè)備,安裝完安卓命令行工具,以及前一篇文章所提及的一些工具(drozer, dex2jar, apktool)。
在這一篇文章中,我會(huì)帶領(lǐng)大家了解一些信息收集技術(shù),我們將看到如何反編譯一款安卓應(yīng)用程序,分析安卓應(yīng)用程序的簽名以及其他一些東西。
關(guān)于虛擬設(shè)備這一點(diǎn),如果你正在尋找一款符合你需求的安卓應(yīng)用測試平臺,那么你可以去看看Android Tamer[https://androidtamer.com/ ]。
提取應(yīng)用中的信息
首先,確認(rèn)下你系統(tǒng)中的InsecureBankv2是我們的最新版本。當(dāng)然,建議你做一個(gè)git pull將所有更新都合并到你的主分支中。
完成之后,我們就來對這個(gè)apk文件進(jìn)行一些分析,將apk文件復(fù)制到一個(gè)獨(dú)立的文件夾中。就向Ios的ipa文件一樣,apk文件也是一個(gè)打包文件,所以你可以通過將文件后綴從.apk修改為.zip然后就可以進(jìn)行提取了。
進(jìn)入提取文件后的文件夾中,你可以看到許多的文件
讓我來簡單的進(jìn)行一下描述:
AndroidManifest.xml——AndroidManifest.xml 是每個(gè)android程序中必須的文件。它位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(activities, services, 等等),他們各自的實(shí)現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動(dòng)位置。從安全角度來看,它包含了應(yīng)用程序中所有使用到的組件信息,同時(shí)它還會(huì)顯示應(yīng)用程序使用的permissiosns信息,我強(qiáng)烈建議大家可以在谷歌文檔中多看看[ 在我們所要討論的漏洞中就會(huì)討論到安卓應(yīng)用組件中的一些東西。 Assets——這個(gè)被用來存儲一些原始資源文件,存儲在里面的東西會(huì)編譯到apk文件中。 Res——用于儲存像圖片,版式文件等 META-INF——這個(gè)里邊存儲的是關(guān)于簽名的一些信息 classes.dex——這里面就是編譯的應(yīng)用程序代碼,如果你要進(jìn)行反編譯操作,那么你需要先將dex文件轉(zhuǎn)換為jar文件,然后用java編譯器進(jìn)行讀取。
存儲公鑰證書的CERT.RSA文件是在META-INF 文件夾下面,找出公鑰證書的信息可以鍵入一下命令
keytool -printcert -file META-INF/CERT.RSA
請注意,在經(jīng)過反編譯,編譯然后重新部署到其他設(shè)備之后還可以對這個(gè)apk文件中的代碼進(jìn)行修改。但是,一旦修改了這個(gè)apk文件之后,就會(huì)丟失其完整性,那么我們就需要重新弄一個(gè)public/private key。
說到這里,推薦大家去了解下如何創(chuàng)建自己的public/private key
[http://developer.android.com/tools/publishing/app-signing.html]
一旦完成應(yīng)用程序的編譯工作,你可以使用jarsigner工具對其完整性進(jìn)行驗(yàn)證。
現(xiàn)在我們就來使用dex2jar這款反編譯工具,dex2jar接受輸入為.apk后綴的文件,然后將其轉(zhuǎn)換為jar文件。
完成操作之后,你可以在JD-GUI中打開,并瀏覽其源代碼。
現(xiàn)在我們就可以通過瀏覽其源代碼找到一些潛在的漏洞,我們可以清楚的注意到對這個(gè)apk文件進(jìn)行逆向,并瀏覽其源代碼是多么的簡單。這里我們需要注 意的是,我們之所以能夠這么簡單就得到源代碼是由于這款A(yù)pp沒有對其源碼進(jìn)行模糊處理。像Google提供的Proguard工具就可對代碼進(jìn)行模糊處 理。雖然對App源碼進(jìn)行模糊處理并非是萬無一失的方法,但是至少還是有一部分作用,在今后的文章中我們可能就會(huì)遇到對代碼進(jìn)行了模糊處理的案例。
在本節(jié)中,我們了解到如何從一款A(yù)pp中提取信息。
下節(jié)預(yù)告
在下一節(jié)中,我們將看到在InsecurBankv2.中一些不同類型的漏洞了。
FreeBuf小編:不得不吐槽一下,原作者不是在上節(jié)中就提示說下一節(jié)就會(huì)開始接觸到漏洞了么?這是故意吊咱們胃口么?不過作者肯定有自己的一些安排考慮在內(nèi),咱們也就一步一步的將所學(xué)內(nèi)容掌握扎實(shí)吧!
[參考來源infosec,翻譯/鳶尾,轉(zhuǎn)載請注明來自FreeBuf黑客與極客]