安全框架Drozer安裝和簡單使用


安全框架Drozer安裝和簡單使用

說明:

drozer(即以前的Mercury)是一個開源的Android安全測試框架

drozer不是什么新工具,但確實很實用,網上的資料教程都很多了,最近自己項目涉及一些移動端安全,所以就把自己的安裝過程記錄下來

一、安裝(win10)

  • 工具准備

    1. python2.7(Drozer基於2.7開發的,3.0不支持的) 點擊下載
    2. drozer-2.4.4
    3. drozer-agent-2.3.4.apk(手機安裝) 點擊下載
    4. ADB 點擊下載
    5. JDK1.8
  • Drozer安裝

    • drozer不支持python3.x,需提前安裝python2.7(配置好環境變量),安裝時選中安裝在python2.7的目錄里

    • 成功安裝后Scripts文件夾內容

  • 環境配置

    1. 在測試手機或虛擬機上安裝代理應用drozer-agent-2.3.4.apk並啟動服務,如下圖

    2. 手機連接電腦,提前打開usb調試,命令行進入python2.7的安裝目錄下/Scripts/文件夾,執行啟動命令:

      adb devices					#查看當前連接的手機
      drozer.bat console connect	#啟動drozer並連接手機
      

      首次使用drozer會缺失運行所需的依賴,因此需一步步添加依賴庫,如果能成功直接連接手機可忽略以下排錯內容

      • 更新pip

        首次啟動drozer,會提示“No module named google.protobuf”,提示使用pip進行下載該依賴,但再次報錯,pip版本需更新(當前最新版為20.2.2)

        以管理員身份在命令行執行(右鍵桌面開始進入)

        python -m pip install –upgrade pip –i https://pupi.douban.com/simple	#使用國內的源更新pip
        

      • 添加google.protobuf依賴

        執行以下命令:

        pip install protobuf		#添加protobuf庫
        

        繼續添加依賴庫,執行:

        pip install pyopenssl		#添加py	openssl庫
        pip install pyyaml		#添加pyyaml庫
        
      • 添加twisted依賴庫

        再次啟動drozer,仍報錯提示需要安裝twisted庫

        執行命令:

        pip install Twisted			#添加Twisted庫
        

        部分機器可能會報錯,提示需要C++運行環境,則需下載安裝Micorsoft Visual C++ Compiler for Python 2.7 環境包,點擊下載

      • 添加service_identity庫

        再次啟動drozer,部分機器可能仍會報錯,缺少service_identity部分庫,如下:

        部分機器可能已有service_identity庫,僅缺失其中的依賴模塊,可參考以下鏈接:https://service-identity.readthedocs.io/en/stable/installation.html

        將缺失的依賴模塊逐個安裝即可

  • 連接手機

    Drozer連接手機執行以下命令:

    adb forward tcp:31415 tcp:31415		#31415為dozer占用的端口號,可在app上設置
    drozer.bat console connect			#啟動drozer並連接手機
    

    至此,我們基本將所需要的庫全部添加,並成功連接手機

二、Drozer簡單使用

  • 查看包信息

    命令:

    run app.package.info -a <package name>
    run app.package.list -f <app name>
    
  • 掃描可攻擊面

    命令:

     run app.package.attacksurface <package name>
    

    分析四大組價是否能被其他的的應用程序調用,以最近測試的一個通信APP和行業標桿微信作對比,暴露的activity組件比微信多36個,安全風險更高,我的理解一般盡量減少非必要對外暴露的組件以提高app安全

  • 四大組件安全

    1. activity:
    run app.activity.info -a <package name> -u		#查看暴露的activity
    run app.activity.start --component <package name> <component name>	#啟動暴露的activity
    
    1. provider:
    run a	pp.provider.info -a <package name>		#查看對外暴露的provider
    run scanner.provider.finduris -a <package name>	      #獲取所有可訪問的uri
    run app.provider.query <uri>				#查詢暴露的uri
    run app.provider.update <uri> --selection <conditions> <selection arg> <column> <data>			
    run scanner.provider.sqltables -a <package name>	#列出該app的表名
    run scanner.provider.injection -a <package name>	#provider的可sql注入點掃描
    run scanner.provider.traversal -a <package name>	#provider目錄遍歷
    
    1. broadcast:
    run app.broadcast.info -a <package name>	#查詢對外暴露的broadcast
    run app.broadcast.send --component <package name> <component name> --extra <type> <key> <value>		#嘗試發送惡意廣播
    run app.broadcast.sniff --action <action>	#嗅探廣播中intent的數據
    
    1. service:
    run app.service.info -a <package name>	#查詢對外暴露的service
    run app.service.start --action <action> --component <package name> <component name>	#用命令調用調用服務組件
    run app.service.send <package name> <component name> --msg <what> <arg1> <arg2> --extra <type> <key> <value> --bundle-as-obj	#使用 Message攻擊暴露的service
    


免責聲明!

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



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