安全框架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

安全框架Drozer安装和简单使用的更多相关文章

  1. Python爬虫框架--Scrapy安装以及简单实用

    scrapy框架 框架 ​ -具有很多功能且具有很强通用性的一个项目模板 环境安装: Linux: ​        pip3 install scrapy ​ ​ ​  Windows: ​     ...

  2. python--flask框架的安装和简单使用(转)

    原文地址:http://blog.csdn.net/xiaowu8858892520/article/details/54428196

  3. Thrift的安装和简单演示样例

    本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述                                           ...

  4. php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中

    php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...

  5. asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  6. 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用

    一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...

  7. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  8. 【转】asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  9. python爬虫中scrapy框架是否安装成功及简单创建

    判断框架是否安装成功,在新建的爬虫文件夹下打开盘符中框输入cmd,在命令中输入scrapy,若显示如下图所示,则说明成功安装爬虫框架: 查看当前版本:在刚刚打开的命令框内输入scrapy versio ...

随机推荐

  1. TCP之“3次握手,4次挥手”问题

    你知道"3次握手,4次挥手"吗? 当面试官问你什么是"3次握手,4次挥手",你是不是要开启"诵经"模式了?作为程序员,要有"刨根问 ...

  2. Socket 编程简介

    Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 本章节我们为大家接收 Perl ...

  3. μC/OS-III---I笔记10---内存管理

    内存管理: 平时经常用到一些windows内存管理的软件,有一些内存管理的软件进行内存碎片的整理,在频繁分配和释放内存的地方会造成大量的内存碎片.内存碎片是如何形成的呢?书中是这样写的:在不断的分配和 ...

  4. R语言学习2:绘图

    本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...

  5. Chrome debug & string to object & copy format json

    Chrome debug & string to object & copy format json // save as global variable copy(JSON.stri ...

  6. c++ x86_x64挂钩无参数函数

    https://github.com/januwA/GameCheat #include "pch.h" #include <iostream> #include &l ...

  7. c++ string split function

    #include <string> #include <vector> #include <regex> struct SplitListItem { std::s ...

  8. Nestjs 验证对象数组

    route @Patch(':id') patch(@Param('id') id: string, @Body() removeEssayDto: RemoveEssayDto) { return ...

  9. TypeScript——02——TS基本数据类型介绍和使用

    一,TS的数据类型 ES6的数据类型: 6种基本数据类型 Boolean Number String Symbol undefined null 3种引用类型 Array Function Objec ...

  10. 比特币大涨之际,VAST空投火爆来袭!

    昨天特斯拉宣布投资了15亿美元的比特币,消息一出,币圈沸腾,比特币瞬间拉升,突破4万美元关口,现价46000美元!大涨20%,又刷新历史新高! 另外NGK项目热度最高的BGV也是不断刷新历史新高,数据 ...