最近接到任務,讓瞭解一下幾款Android安全性測試相關的軟體,首先是Drozer。Drozer是一款綜合的安全評估和攻擊的android架構,據 產品介紹 裡說,Drozer可以全面評估app的安全性,並協助團隊把app的安全風險保持在可控範圍內。
使用方法
1、在 mwrinfosecurity 公司的這個網頁上,提供了社區版本的下載(沒錯,還有收費的進階版),下載並安裝之。並保證android的adb環境已經配置好,即cmd中輸入adb devices不會報錯。並在手機端安裝下載包中的Agent.apk的包。
2、在PC端開啟轉寄
adb forward tcp:31415 tcp:31415
adb forward tcp:31415 tcp:31415
3、在手機端開啟安裝好的apk程式。
4、在PC上開啟Drozer console
drozer console connect
drozer console connect
這樣,就進入了 dz> 的console介面,後面就參照說明書一步一步進行測試。
功能介紹
dz> run app.package.list -f example
dz> run app.package.list -f example
list命令用以列出所有包含“example”的手機中已安裝package名稱,記住目標應用的完整名稱。
dz> run app.package.info -a com.example
dz> run app.package.info -a com.example
info命令用以通過完整名稱,擷取該package的詳細資料,比如data路徑、apk路徑、聲明的許可權等等。
dz> run app.package.attacksurface com.example
dz> run app.package.attacksurface com.example
attacksurface即攻擊面分析,分析Activity/Broadcast Receiver/Content Provider/Service的許可權,即是否能被其他的的應用程式調用。會像下列樣本一樣列出數量:
Attack Surface:
3 activities exported
0 broadcast receivers exported
2 content providers exported
2 services exported
is debuggable
dz> run app.provider.info -a com.example
dz> run app.provider.info -a com.example
擷取provider的資訊,比如是否需要額外許可權來讀寫app的資料庫,等等。如果找到相關漏洞,就可以通過
dz> run scanner.provider.finduris -a com.example
dz> run scanner.provider.finduris -a com.example
來掃描一些可用的uri,比如userName、password、ID之類的,甚至可以修改值(如SQL注入什麼的):
dz> run app.provider.query content://xxxxxx --preinjection "xxx"
dz> run app.provider.query content://xxxxxx --preinjection "xxx"
dz> run scanner.provider.injection -a com.example
dz> run scanner.provider.injection -a com.example
進行簡單的SQL注入檢查、檔案遍曆檢查之類的。
其他:
service相關
查詢service
dz> run app.service.info -a com.example
dz> run app.service.info -a com.example
shell.start
在裝置上啟動一個可互動的linux shell
tools.file.upload / tools.file.download
在android裝置上上傳/下載檔案
tools.setup.busybox / tools.setup.minimalsu
往裝置上安裝busybox和minimalsu
其他功能
在收費版本中,Drozer還提供了攻擊面的可視化介面,並在多裝置支援、類比感應器輸入等方面進行了探索,但是介於收費功能,沒有繼續看下去。
總結
在測試app的安全性上,Drozer確實可以發揮一些作用,不過關鍵問題還是要瞭解Android app的整體結構和安全性原則,才能遊刃有餘,而不是見招拆招,被動的很。