APP的安全性测试指南——测试工具Drozer

发表于:2020-9-07 09:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:今日头条

  APP的安全性测试其实也是有点技术含量的测试,那么APP安全性测试的工具有哪些呢?
  移动 App 的广泛应用,必然伴随着新的应用安全威胁。这些攻击与以前经典的 web app 无关。据?NowSecure?的最新研究表明,有 25% 的 App 包含高风险漏洞,常见的安全漏洞如下
  ●跨站脚本攻击(XSS)
  ●用户敏感数据(IMEI、GPS、MAC 地址、电子邮件等)泄露
  ●SQL 注入
  ●网络钓鱼攻击
  ●数据加密缺失
  ●OS 命令注入
  ●恶意软件
  ●任意代码执行
  那么今天我们还是先开始谈谈Drozer这款APP安全性测试工具吧!一般只要把一种安全性测试工具弄透,剩下来的就很简单了!
  Drozer是由 MWR InfoSecurity 开发的 App 安全测试框架。它可以帮助开发者确定Android 设备中的安全漏洞。
  特点
  ●它是一个开源工具,可同时支持真实的 Android 设备和模拟器;
  ●通过自动化和开展复杂活动,它只需很少时间即可评估与 Android 安全相关的复杂性;
  ●它支持 Android 平台,并在 Android 设备自身上执行启用 Java 的代码。对于这款安全性测试工具来说,周老师是非常推崇的。
  那么这款工具具体怎么用的呢?
  首先是搭建drozer的运行环境:
  01.Dorzer安装
  安装Dorzer需要用到如下两个工具:(如以前安装过mercury,这两个工具应该已经有了)
  ●Java Runtime Environment (JRE) or Java Development Kit (JDK)
  ●Android SDK
  下载安装后需要把adb和java工具路径写入PATH环境变量中
  1)下载
  打开此下载地址,windows环境选择drozer (Windows Installer)并下载
  https://www.mwrinfosecurity.com/products/drozer/community-edition/
  2)安装
  解压zip文件并点击setup安装,一路默认安装就行;它会自动安装到C:\drozer文件夹下。
  3)检测是否安装成功
  打开cmd窗口,键入C:\drozer\drozer.bat , 如出现如下提示说明安装成功。
  4)安装agent客户端到手机
  确保手机debug模式开启,通过USB连接到PC上,通过如下命令安装agent.apk客户端。
  adb install agent.apk
  安装完成后启动drozerAgent
  点击右下角“开启”按钮,开启Agent
  5)建立session连接
  保持手机与PC通过USB连接正常,然后通过cmd窗口键入如下命令
  adb forward tcp:31415 tcp:31415
  drozer console connect 或 C:\drozer\drozer.bat console connect(注:因为默认是安装在c盘的,目的是到根目录进行执行drozer.bat)
  出现android头像及:
  dz>
  命令提示符表示连接成功
  6)具体安装步骤和使用方法详见文件
  https://www.mwrinfosecurity.com/system/assets/559/original/mwri_drozer-users-guide_2013-09-11.pdf
  02.渗透测试
  Drozer的环境搭建完成后,我们就开始做下一步的测试了。下面我就开始正式用drozer进行安全性的渗透测试了:
  第一步:#dz> run app.package.list
  使用这个命令显示出手机中的所有包名:明确攻击对象
  一般来说都有乱码。
  如果手机的包很多的话:
  使用”-f”选项搜索特定的包名:
  #dz> run app.package.list -f (package name)
  第二步:在搜索到了攻击对象之后,我们就开始了解攻击对象的详细信息
  使用以下命令查看制定包的详细信息,毕竟知己知彼百战百胜。
  #dz> run app.package.info -a (package name)
  第三步:识别攻击面
  一般攻击面有四个方面:一个控件安全级别面,一个是广播接收面,第三个是内容暴露面,最后一个是服务暴露面
  run app.package.attacksurface (package name)
  然后我们根据暴露的面进行攻击(有哪些面我们就攻击哪些面),说白了就是有安全漏洞,我们就攻击那些漏洞
  比如上图:四个层面都可以攻击
  第四步:查看详细的攻击面
  run app.activity.info -a (package name)
  run app.broadcast.info -a (package name)
  run app.provider.info -a (package name)
  run app.service.info -a (package name)
  第五步:根据具体的攻击面进行攻击
  启动暴露的activity
  run app.activity.start--component (package name) (component name)
  启动暴露的broadcast
  run app.broadcast.start --component (package name) (component name)
  启动暴露的provider
  run app.provider.query--content://com.mwr.example.sieve.DBContentProvider/Passwords
  启动暴露的service
  run app.service.start --component (package name) (component name)
  经过这些操作之后我们就成功渗透进入app的内部了。后面可以根据实际情况继续深入。
  比如:我们的sql注入就属于内容攻击的层面,这个时候我们在明确了内容暴露之后进行如下的攻击:
  03.服务交互
  到目前为止,我们几乎破坏了筛子。我们已经提取了用户的主密码,以及一些与他们的服务密码相关的密码文本。这很好,我们可以通过它导出的服务完全妥协。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号