安卓應用程序滲透測試(四)
在前面的幾篇文章中,我們講了Android的基本架構,滲透測試工具和ADB,現在我們來看下Android應用程序滲透測試如何入門。
從安全形度來看,查看清單文件通常是滲透測試人員開始滲透之前第一件要做的事情。
Android清單文件
·提供Android應用程序所有詳細細節
·命名應用程序的Java包
·聲明所有許可權
·描述Android應用程序組件
·包含應用程序所需的最低級API的聲明
·運行改程序所需的最低Android版本
·所有服務
我們將使用insecurebank這個apk來進行演示
允許調試:true
如果應用程序被標記為可調試,任何攻擊者在獲取應用程序的許可權後可以訪問應用程序的數據,也可以在該應用程序許可權下執行任意代碼。
Java Debug Wire 協議是調試器和JVM實例之間的中心鏈接。
手機沒有root,也是可以通過應用程序允許來獲取數據或執行任意代碼的。
APP啟動前:
APP啟動後:
上面是我個人手機的shell終端,手機並沒有root。
允許備份:true
這個設置定義啟用了USB調試的用戶能否備份和存儲應用程序數據。
因此,處理和存儲信用卡信息,密碼等敏感信息的應用程序此設置應該設置為false,來防止敏感信息泄露風險。
打開終端
輸入如下命令
-Adb backup -apk -shared (apk name)
再輸入下面這條命令
Cat backup.ab zlib-flate -uncompress > backup_compressed.tar
許可權
許可權是對訪問設備上部分代碼和數據的一種限制。
應該檢查有許可權複製數據到外部存儲的應用程序,以確保沒有存儲敏感信息。
應審查應用程序請求的所有許可權,以確保它們不會帶來安全風險。
許可權屬性的值有下面4個:
·Normal(普通)
·Dangerous(危險)
·Signature(簽名)
·Signature Or System(簽名或系統)
示例
Android:protectionLevel=「signature」
Intents(意圖)
這些是用於將兩個或多個不同Android組件綁定在一起的組件。Intents可用於執行各種任務,例如啟動操作,切換活動和啟動服務。
Intents可用於啟動活動,將其發送到任何感興趣的廣播接收器組件,以及與後台服務通信。應該審查Intents消息,以確保它們不包含任何可能被截獲的敏感信息。
顯式意圖將一個活動連接到同一個應用程序中的另一個活動。這些Intents通過名稱指定目標組件,它們通常用於應用程序內部消息——例如當用戶單擊按鈕時啟動同類型活動的活動。
隱式意圖不命名目標,組件名稱的欄位留空。隱式意圖通常用於激活其他應用程序中的組件。例如,如果我們想要向用戶顯示地圖上的位置,我們可以使用隱式意圖來請求另一個能夠定位的應用在地圖上顯示指定位置。
敬請期待安卓應用程序滲透測試五。
※注入系列——DLL注入
※針對內核中運行的惡意軟體Uroburos的分析
TAG:嘶吼RoarTalk |