安卓應用程式滲透測試(二)
在上一篇文章中( ofollow,noindex">安卓應用程式滲透測試一 ),我們講解了安卓裝置的基本架構。本篇文章,我們來講解一些安卓應用滲透測試工具並且為正式攻擊進行一些基礎設定。
安卓滲透測試工具有很多,但每個工具各有所長,哪些工具有什麼功能,能實現什麼目的,我們能從中提取什麼細節才是最重要的。
我們也可以使用一些框架中內建的工具集,下面這些框架都是開源的:Appuse,Appie,Santoku,Pentestbox,MobSF等等。
先從APPuse開始
APPuse是由AppSec Labs開發的VM虛擬機器。它是安卓環境中移動應用安全測試的獨特平臺,包括AppSec Labs開發的獨家定製工具。APPuse專業版官網地址在這裡, https://appsec-labs.com/appuse-pro/ ,免費版本就夠用了。
APPuse dashboard(主介面)如下:
模擬器
模擬器是內建在APPuse框架中的,或者我們也可以新增外部的已經root過的移動裝置進行測試。啟動模擬器可以提供一個虛擬裝置。
Root裝置:它將使用superuser.apk檔案來對模擬器裝置進行root並獲取sudo許可權。
開啟ADB shell:這會開啟一個ADB shell。(ADB的意思是安卓除錯橋,它是一個命令列視窗,用於通過電腦端與模擬器或者真實裝置互動)。如果你不想使用模擬器,可以將移動裝置連線到App中使用。
第一步:在移動裝置上啟用USB除錯模式並且連線到機器。
第二部:adb裝置會顯示已經連線的裝置。
安卓應用滲透測試工具
在很多滲透測試案例中都大有幫助的基礎工具,框架中都已經提供了,你只需要點選工具就行,如圖:
·Burp Suite:Burp Suite是web安全測試中的瑞士軍刀,堪稱神器。它是一個代理工具,可以攔截客戶端和伺服器端的請求。
· Wireshark:這是一款網路流量捕獲工具,可以清楚的顯示網路上的資料包。
· IDA:IDA是Windows,Linux或Mac作業系統下的多處理器反彙編工具和偵錯程式。
· Eclipse:Eclipse為幾乎所有語言和體系結構提供IDE環境和平臺。
· NetBeans:使用Java,JavaScript,HTML5,PHP,C / C ++等開發桌面,移動和Web應用程式,原始碼免費開源。
· SQLite瀏覽器:用於檢視資料庫檔案。
· Nmap:網路掃描器,可以掃埠和漏洞,也是開源的,我們可以安裝使用。
.apk檔案的逆向
對於逆向來說,很多滲透測試工具也已經整合在APPuse裡了,工具如圖:
如果要載入已安裝在裝置/模擬器中的.apk檔案,請單擊載入APK 。你也可以從本地選擇.apk檔案,當然你也可以從Google商店中選擇檔案。
我們主要是要解碼一個APK檔案,我們需要執行apktool d filename.apk命令。執行之後,它會在當前目錄下建立一個資料夾,其中包含反編譯檔案。或者也可以用另一種方式,在App中,使用它與dashboard(主介面)全部連結起來,dashboard我們可以直接利用。
APK的概念
apk檔案是一個zip壓縮檔案。zip檔案包含XML檔案和其他安卓應用原始檔。Apktools工具對原始檔進行解碼並且將安卓位元組碼轉換成彙編級別的小檔案。Dex2jar工具將dex檔案轉換為存檔在jar檔案中的Java位元組碼檔案。JD-GUI和Luyten工具將Java位元組碼反編譯成Java原始碼檔案。
安裝或選擇.apk檔案後,我們可以通過點選View Manifest來檢視安卓清單檔案。
Dalvik虛擬機器不使用Java位元組碼,使用的是它自己的檔案格式dex(Dalvik Executable Format)。它包含多個類和相關資料的定義。
Smali/Baksmali分別是dex檔案格式的重編譯和反編譯程式。
儲存Java源—dex2jar工具將.dex檔案解碼成.jar檔案。
JD-GUI是一個圖形實用工具,可以顯示”.class”檔案的Java原始碼。
Drozer工具
這個工具並沒有內建在APPuse中,你可以通過下面連結中的指南來安裝。
https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf