今天是干货分享——我们来谈谈APP的安全性测试!

APP的安全性测试其实也是有点技术含量的测试,那么APP安全性测试的工具有哪些呢?

IOS 安全测试 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)

 

IOS 安全测试 app的安全测试_IOS 安全测试_02

出现android头像及:

dz>

命令提示符表示连接成功

 

02 渗透测试

Drozer的环境搭建完成后,我们就开始做下一步的测试了。下面我就开始正式用drozer进行安全性的渗透测试了:

第一步:#dz> run app.package.list

使用这个命令显示出手机中的所有包名:明确攻击对象

IOS 安全测试 app的安全测试_测试工具_03

一般来说都有乱码。

如果手机的包很多的话:

使用”-f”选项搜索特定的包名:

#dz> run app.package.list -f (package name)

IOS 安全测试 app的安全测试_测试工具_04

 

IOS 安全测试 app的安全测试_安全性测试_05

第二步:在搜索到了攻击对象之后,我们就开始了解攻击对象的详细信息。

使用以下命令查看制定包的详细信息,毕竟知己知彼百战百胜。

#dz> run http://app.package.info -a (package name)

 

IOS 安全测试 app的安全测试_软件测试_06

第三步:识别攻击面

一般攻击面有四个方面:一个控件安全级别面,一个是广播接收面,第三个是内容暴露面,最后一个是服务暴露面

run app.package.attacksurface (package name)

 

IOS 安全测试 app的安全测试_IOS 安全测试_07

然后我们根据暴露的面进行攻击(有哪些面我们就攻击哪些面),说白了就是有安全漏洞,我们就攻击那些漏洞

比如上图:四个层面都可以攻击

第四步:查看详细的攻击面

run http://app.activity.info -a (package name)

run http://app.broadcast.info -a (package name)

run http://app.provider.info -a (package name)

run http://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注入就属于内容攻击的层面,这个时候我们在明确了内容暴露之后进行如下的攻击:

IOS 安全测试 app的安全测试_测试工具_08

 

IOS 安全测试 app的安全测试_IOS 安全测试_09

IOS 安全测试 app的安全测试_程序员_10

 

IOS 安全测试 app的安全测试_安全性测试_11

IOS 安全测试 app的安全测试_测试工具_12

 

IOS 安全测试 app的安全测试_程序员_13

9、服务交互

到目前为止,我们几乎破坏了筛子。我们已经提取了用户的主密码,以及一些与他们的服务密码相关的密码文本。这很好,我们可以通过它导出的服务完全妥协。