安全框架Drozer安装和简单使用
安全框架Drozer安装和简单使用
说明:
drozer(即以前的Mercury)是一个开源的Android安全测试框架
drozer不是什么新工具,但确实很实用,网上的资料教程都很多了,最近自己项目涉及一些移动端安全,所以就把自己的安装过程记录下来
一、安装(win10)
工具准备
Drozer安装
- drozer不支持python3.x,需提前安装python2.7(配置好环境变量),安装时选中安装在python2.7的目录里
- 成功安装后Scripts文件夹内容
环境配置
在测试手机或虚拟机上安装代理应用drozer-agent-2.3.4.apk并启动服务,如下图
手机连接电脑,提前打开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安全
四大组件安全
- activity:
run app.activity.info -a <package name> -u #查看暴露的activity
run app.activity.start --component <package name> <component name> #启动暴露的activity
- 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目录遍历
- 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的数据
- 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安装和简单使用的更多相关文章
- Python爬虫框架--Scrapy安装以及简单实用
scrapy框架 框架 -具有很多功能且具有很强通用性的一个项目模板 环境安装: Linux: pip3 install scrapy Windows: ...
- python--flask框架的安装和简单使用(转)
原文地址:http://blog.csdn.net/xiaowu8858892520/article/details/54428196
- Thrift的安装和简单演示样例
本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述 ...
- php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中
php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...
- 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 重点: 实现多级子目录的压缩, ...
- 【转】asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- python爬虫中scrapy框架是否安装成功及简单创建
判断框架是否安装成功,在新建的爬虫文件夹下打开盘符中框输入cmd,在命令中输入scrapy,若显示如下图所示,则说明成功安装爬虫框架: 查看当前版本:在刚刚打开的命令框内输入scrapy versio ...
随机推荐
- spring再学习之AOP实操
一.spring导包 2.目标对象 public class UserServiceImpl implements UserService { @Override public void save() ...
- Jenkins 安装与部署详细教程
一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...
- next v5升级到next v7需要注意的地方
title: next v5升级到next v7需要注意的地方 date: 2020-03-04 categories: web tags: [hexo,next] 大部分的设置都是一样的,但有一些细 ...
- acm的做题技巧
1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 大数据输入输出时最好不要用cin.cout,防止超时. (或加上 1 ios ...
- mybatis(五)mybatis工作流程
转载:https://www.cnblogs.com/wuzhenzhao/p/11103017.html 先来看一下MyBatis 的编程式使用的方法: public void testMapper ...
- 24 WAYS to impress your friends
24 WAYS to impress your friends 24 ways is the advent calendar for web geeks. For twenty-four days e ...
- cocos2d-x & cocos2d-js
cocos2d-x & cocos2d-js cocos2d-x new https://github.com/cocos2d/cocos2d-x cocos2d-x is a multi-p ...
- modal 弹框遮罩层,滚动穿透bug 解决方案
modal 弹框遮罩层,滚动穿透bug 解决方案 parent component 动态设置 lock css const computedClassName = classNames( 'activ ...
- apollo-server 返回模拟数据
模式模拟GraphQL数据 const { ApolloServer, gql } = require('apollo-server'); const typeDefs = gql` type Que ...
- NDB程序进近复飞保护区的绘制
终于有点空闲,找张图来演练一下<风螺旋标准模板>软件的用法. 某机场NDB进近程序剖面图如下图所示: 该机场采用了近台和远台的双台布局,近台和远台均为NDB与指点标的合装台,没有中间进近定 ...