当前位置:文档之家› APP渗透测试方案

APP渗透测试方案

APP渗透测试方案
APP渗透测试方案

APP 渗透测试方案

2016-7-29

XXXXX 公司

广东省广州市 XXXXX 地址

目录

1 App 渗透简介 (2)

2 APP 渗透测试所用工具 (2)

2.1 代理抓包工具 (2)

2.2 反编译工具 (2)

2.3 其他针对服务端的web 渗透工具 (3)

3 APP 渗透测试的方法 (4)

3.1 数据包分析、测试 (4)

3.2 APP 反编译还原代码 (4)

4 APP 渗透测试流程 (4)

4.1 项目启动 (4)

4.1.1 项目启动准备 (4)

4.1.2 实施方案制定 (4)

4.2 项目实施 (5)

4.2.1 信息收集 (5)

4.2.2 平台使用不当的测试 (5)

4.2.3 不安全的数据存储的测试 (5)

4.2.4 不安全的通信的测试 (5)

4.2.5 不安全的身份验证的测试 (6)

4.2.6 加密不足的测试 (6)

4.2.7 不安全的授权的测试 (6)

4.2.8 客户端代码质量问题的测试 (6)

4.2.9 代码篡改的测试 (6)

4.3 项目收尾 (6)

4.3.1 报告编写 (6)

4.3.2 问题复查 (7)

1

1 App 渗透简介

移动app 大多通过web api 服务的方式跟服务端交互,这种模式把移动安全跟web 安全绑在一起。移动app 以web 服务的方式跟服务端交互,服务器

端也是一个展示信息的网站,常见的web 漏洞在这也存在,比如说SQL 注入、

文件上传、中间件/server 漏洞等。

2 APP 渗透测试所用工具

2.1 代理抓包工具

?Burpsuit

?Fiddler

代理抓包工具主要用于抓取、分析、篡改APP 与服务端之间的交互数据包。

爆破、解编码、执行会话令牌等作用。

2.2 反编译工具

APP 的反编译有两种反编译方式,dex2jar 和apktool,两个工具反编译的

效果是不一样的,dex2jar 反编译出java 源代码,apktool 反编译出来的是java

汇编代码。

?工具1:dex2jar+jdgui

?工具2:apktool

工具 1 反编译出来的是java 源代码,易读性比较高。

工具 2 反编译出来的东西为smali 反汇编代码、res 资源文件、assets 配置

2

文件、lib 库文件,我们可以直接搜索smali 文件和资源文件来查找链接等。

2.3 其他针对服务端的web 渗透工具

?NMAP

Nmap 是一款网络扫描和主机检测的非常有用的工具。Nmap 是不局限于仅

仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac 等操作系统。Nmap 是一款非常强大的实用工具,可用于:

检测活在网络上的主机(主机发现)

检测主机上开放的端口(端口发现或枚举)

检测到相应的端口(服务发现)的软件和版本

检测操作系统,硬件地址,以及软件版本

检测脆弱性的漏洞(Nmap 的脚本)

?SLQMAP

Sqlmap 是一种开源的渗透测试工具,可以自动检测和利用SQL 注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。

支持的数据库:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MaxDB

SQL 注入技术:boolean-based blind, time-based blind, error-based, UNION query, stacked queries and out-of-band

枚举数据:users,password hashes,privileges,roles,databases,tables and columns

?其他

针对strut2 的漏洞利用脚本、网站弱电扫描工具、网站目录爆破工具、

BeEF 等

3

3 APP 渗透测试的方法

3.1 数据包分析、测试

利用burpsuit、fiddler 对APP 进行抓包分析、篡改。这个方法利用在移动设备上设置代理,通过人工操作使app 与服务端交互。测试APP 与服务端的业务流程是否存在漏洞。

3.2 APP 反编译还原代码

有两种反编译方式,dex2jar 和apktool,两个工具反编译的效果是不一样的,dex2jar 反编译出java 源代码,apktool 反编译出来的是java 汇编代码。从源代码层面上分析APP 安全性。

4 APP 渗透测试流程

4.1 项目启动

4.1.1 项目启动准备

项目启动前为了保障双方利益、使得APP 渗透项目可以顺利进行需与客户签订项目合同、项目保密协议、项目启动实施协调等前期工作。

4.1.2 实施方案制定

某某获取到XXX 的书面授权许可后,才进行渗透测试的实施。并且将实施范围、方法、时间、人员等具体的方案与XXX 进行交流,并得到XXX 的认同。

4

在测试实施之前,某某会做到让XXX 对渗透测试过程和风险的知晓,使随后的正式测试流程都在XXX 的控制下。

4.2 项目实施

4.2.1 信息收集

?收集目标系统暴露于网络上,不需要额外的授权便可获取到的信息。

?专业安全工具扫描、嗅探,对系统的网络和应用程序进行远程漏洞扫描,

并对扫描结果进行分析。

?利用社会工程学原理获取目标系统敏感信息。

4.2.2 平台使用不当的测试

滥用平台功能,没有使用平台安全控制。包括Android 的intent,平台权限控制,错误使用TouchID,秘钥链(KeyChain)、或是移动操作系统中的其他安全控制。

4.2.3 不安全的数据存储的测试

包括不安全的数据存储和非故意的数据泄漏。包括邮箱、手机号码、身份证信息、QQ、用户密码、等信息。

4.2.4 不安全的通信的测试

包括不完善的通信握手过程、使用了有漏洞的SSL 版本、不安全的通讯协议、敏感信息的明文传输,等等。

5

4.2.5 不安全的身份验证的测试

包括对终端用户不安全的身份验证或不正确的session 会话管理;需要身份鉴权的时候没有识别用户身份;在一个持续的会话中没有正确的识别用户身份;会话管理中的漏洞。

4.2.6 加密不足的测试

对代码使用弱加密技术对敏感信息资产进行加密进行测试发现。

4.2.7 不安全的授权的测试

包括任何失败的授权行为(例如:在客户端的授权决策、强迫浏览等。)。它有别于身份验证问题(例如:设备注册、用户标识等)。

4.2.8 客户端代码质量问题的测试

包括例如缓冲区溢出、字符串格式漏洞以及其他不同类型的代码级错误,而这些错误的解决方法是重写在移动设备中运行的某些代码。

4.2.9 代码篡改的测试

包括二进制修补、本地资源修改、方法钩用、方法调整和动态内存修改。

4.3 项目收尾

4.3.1 报告编写

渗透测试报告包括渗透测试整个流程描述,会对发现问题的思路与手法进行

必要的说明,并且结合目标系统环境,对安全问题进行风险分析,出具针对性解决

6

方案。

4.3.2 问题复查

渗透测试完成后,某某协助XXX 对已发现的安全隐患进行修复。修复完成后,某某渗透测试小组对修复的成果再次进行远程测试复查,对修复的结果进行检验,确保修复结果的有效性。最终完成《渗透测试复查报告》。

7

相关主题
文本预览
相关文档 最新文档