Andorid安全测试思路及环境搭建
字数 3253 2025-08-07 08:22:12

Android安全测试全面指南:思路、工具与环境搭建

一、Android安全测试概述

随着移动应用的普及,Android安全测试已成为安全测试工作的重要组成部分。Android安全测试主要分为两大方向:

  1. 自动化检测:使用框架和平台如Drozer、MobSF等对APK进行自动化风险识别
  2. 手动测试:包括本地敏感数据检测、APK反编译与重编译、Frida Hook、抓包改包等

二、测试环境搭建

1. Android SDK安装

Android SDK是Android专属的软件开发工具包,包含adb、ddms等调试工具。

安装步骤

  1. AndroidDevTools下载SDK Tools
  2. 下载platform-tools和tools文件,复制到SDK目录
  3. 配置全局环境变量
  4. 验证安装:执行adbddms命令应能正常运行

2. 本地敏感数据检测工具

a) XML等文件敏感信息查看

  • 使用ddms工具
  • 路径:/data/data/<应用包名>/
  • 导出文件后用Sublime等工具查看

b) SQLite数据库存储检测

  • 路径:/data/data/<应用包名>/database/
  • 导出.db文件后用SQLite工具查看

c) SharedPreferences存储检测

  • 基于XML的key-value存储
  • 路径:/data/data/<应用包名>/shared_prefs/
  • 用Sublime查看

d) 数字签名检测

  • 使用jarsigner工具(位于JDK的bin目录)
  • 命令:jarsigner.exe -verify -verbose -certs <apk路径>

3. APK反编译与重编译工具

a) apktool

  • 下载地址:Bitbucket
  • 反编译命令:java -jar apktool_2.5.0.jar d -f <apk名称> -o <输出目录>
  • 重编译命令:java -jar apktool.jar b -f <目录> -o <apk名称>
  • 签名工具SignApk:GitHub
  • 签名命令:java -jar signapk.jar certificate.pem key.pk8 <待签名apk> <输出apk>

b) dex2jar

  • 下载地址:SourceForge
  • 反编译命令:d2j-dex2jar.bat classes.dex
  • 多dex文件命令:d2j-dex2jar.bat <apk文件>

c) jd-gui

  • 用于查看反编译后的.jar文件

d) AndroidKiller

  • 集成化工具,可配置不同版本apktool和签名文件

4. Drozer安全测试框架

  • 下载地址:GitHub
  • 依赖:Java环境、Python 2.7
  • 安装步骤:
    1. PC端安装Drozer
    2. Android端安装Drozer Agent
    3. 端口转发:adb forward tcp:31415 tcp:31415
    4. 启动Drozer:drozer console connect

常用命令

  • 列出所有应用包:run app.package.list
  • 查找特定应用:run app.package.list -f <应用名>
  • 查看攻击面:run app.package.attacksurface <包名>

组件安全检测:

  • Activity组件

    • 查看信息:run app.activity.info -a <包名>
    • 启动Activity:run app.activity.start --component <包名> <Activity>
  • Broadcast Receiver组件

    • 查看信息:run app.broadcast.info -a <包名>
  • ContentProvider组件

    • 查找URI:run scanner.provider.finduris -a <包名>
    • SQL注入检测:run scanner.provider.injection -a <包名>
    • 目录遍历检测:run scanner.provider.traversal -a <包名>
  • Service组件

    • 查看信息:run app.service.info -a <包名>

5. MobSF安全测试框架

MobSF是开源的自动化移动应用安全测试框架,支持静态、动态和恶意软件分析。

Kali Linux安装步骤

apt-get update
apt-get install -y apt-transport-https ca-certificates
apt-get install dirmngr
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
apt-get update
apt install docker-ce
service docker start
apt install docker-compose
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8008:8000 opensecurity/mobile-security-framework-mobsf:latest

访问http://localhost:8008/上传APK进行分析。

注意:动态分析需在非Docker/虚拟机环境中部署,建议配合Genymotion模拟器使用。

6. Frida Hook框架

Frida是基于Python + JavaScript的Hook框架,支持多平台。

安装步骤

  1. 安装Frida:pip install frida
  2. 查看版本:frida --version
  3. 下载对应版本server:GitHub Releases
  4. 推送server到Android:adb push <frida-server> /data/local/tmp/frida-server
  5. 设置权限:chmod 777 /data/local/tmp/frida-server
  6. 端口转发:
    adb forward tcp:27042 tcp:27042
    adb forward tcp:27043 tcp:27043
    
  7. 启动server:./frida-server
  8. 验证:frida-ps -U应显示Android进程列表

7. Fiddler抓包工具

Fiddler是客户端和服务器之间的代理工具。

配置步骤

  1. 下载安装:Telerik
  2. 导出证书:Tools > Options > HTTPS > Actions > Export
  3. 在Android中安装证书:设置 > 安全 > 从SD卡安装证书
  4. 设置Android代理为PC IP和Fiddler监听端口(默认8888)

三、测试方法与思路

1. 本地存储数据检测

  1. 文件存储检测

    • 检查/data/data/<包名>/目录
    • 重点关注XML、JSON等配置文件
  2. SQLite数据库检测

    • 检查/data/data/<包名>/database/目录
    • 使用SQLite工具分析.db文件内容
  3. SharedPreferences检测

    • 检查/data/data/<包名>/shared_prefs/目录
    • 分析XML格式的键值对数据

2. 组件安全测试

  1. Activity组件

    • 检测导出组件的权限控制
    • 尝试未授权访问敏感Activity
  2. Broadcast Receiver

    • 检测广播接收器的导出状态
    • 尝试发送伪造广播
  3. ContentProvider

    • 检测URI访问控制
    • 测试SQL注入和目录遍历漏洞
  4. Service组件

    • 检测服务导出状态
    • 尝试未授权绑定/启动服务

3. 代码分析与Hook

  1. 静态分析

    • 使用apktool反编译APK
    • 使用dex2jar和jd-gui分析Java代码
    • 搜索敏感关键词(password、token、key等)
  2. 动态分析

    • 使用Frida Hook关键函数
    • 分析加密/解密逻辑
    • 修改运行时数据

4. 网络通信测试

  1. 抓包分析

    • 使用Fiddler或Burp Suite拦截请求
    • 分析HTTPS证书校验
    • 测试接口参数篡改
  2. 协议安全

    • 检测敏感信息明文传输
    • 检查加密算法强度
    • 测试重放攻击

四、总结

Android安全测试是一个系统性的工作,需要结合自动化工具和手动分析:

  1. 环境准备:搭建完整的测试环境(SDK、反编译工具、Drozer、MobSF等)
  2. 静态分析:APK反编译、代码审计、配置文件检查
  3. 动态分析:组件测试、Hook调试、网络抓包
  4. 漏洞验证:对发现的问题进行验证和利用

建议安全测试人员深入理解Android系统机制,熟练掌握ARM汇编和Java代码分析技能,并持续关注新的安全威胁和测试技术。

Android安全测试全面指南:思路、工具与环境搭建 一、Android安全测试概述 随着移动应用的普及,Android安全测试已成为安全测试工作的重要组成部分。Android安全测试主要分为两大方向: 自动化检测 :使用框架和平台如Drozer、MobSF等对APK进行自动化风险识别 手动测试 :包括本地敏感数据检测、APK反编译与重编译、Frida Hook、抓包改包等 二、测试环境搭建 1. Android SDK安装 Android SDK是Android专属的软件开发工具包,包含adb、ddms等调试工具。 安装步骤 : 从 AndroidDevTools 下载SDK Tools 下载platform-tools和tools文件,复制到SDK目录 配置全局环境变量 验证安装:执行 adb 和 ddms 命令应能正常运行 2. 本地敏感数据检测工具 a) XML等文件敏感信息查看 使用ddms工具 路径: /data/data/<应用包名>/ 导出文件后用Sublime等工具查看 b) SQLite数据库存储检测 路径: /data/data/<应用包名>/database/ 导出.db文件后用SQLite工具查看 c) SharedPreferences存储检测 基于XML的key-value存储 路径: /data/data/<应用包名>/shared_prefs/ 用Sublime查看 d) 数字签名检测 使用jarsigner工具(位于JDK的bin目录) 命令: jarsigner.exe -verify -verbose -certs <apk路径> 3. APK反编译与重编译工具 a) apktool 下载地址: Bitbucket 反编译命令: java -jar apktool_2.5.0.jar d -f <apk名称> -o <输出目录> 重编译命令: java -jar apktool.jar b -f <目录> -o <apk名称> 签名工具SignApk: GitHub 签名命令: java -jar signapk.jar certificate.pem key.pk8 <待签名apk> <输出apk> b) dex2jar 下载地址: SourceForge 反编译命令: d2j-dex2jar.bat classes.dex 多dex文件命令: d2j-dex2jar.bat <apk文件> c) jd-gui 用于查看反编译后的.jar文件 d) AndroidKiller 集成化工具,可配置不同版本apktool和签名文件 4. Drozer安全测试框架 下载地址: GitHub 依赖:Java环境、Python 2.7 安装步骤: PC端安装Drozer Android端安装Drozer Agent 端口转发: adb forward tcp:31415 tcp:31415 启动Drozer: drozer console connect 常用命令 : 列出所有应用包: run app.package.list 查找特定应用: run app.package.list -f <应用名> 查看攻击面: run app.package.attacksurface <包名> 组件安全检测: Activity组件 : 查看信息: run app.activity.info -a <包名> 启动Activity: run app.activity.start --component <包名> <Activity> Broadcast Receiver组件 : 查看信息: run app.broadcast.info -a <包名> ContentProvider组件 : 查找URI: run scanner.provider.finduris -a <包名> SQL注入检测: run scanner.provider.injection -a <包名> 目录遍历检测: run scanner.provider.traversal -a <包名> Service组件 : 查看信息: run app.service.info -a <包名> 5. MobSF安全测试框架 MobSF是开源的自动化移动应用安全测试框架,支持静态、动态和恶意软件分析。 Kali Linux安装步骤 : 访问 http://localhost:8008/ 上传APK进行分析。 注意 :动态分析需在非Docker/虚拟机环境中部署,建议配合Genymotion模拟器使用。 6. Frida Hook框架 Frida是基于Python + JavaScript的Hook框架,支持多平台。 安装步骤 : 安装Frida: pip install frida 查看版本: frida --version 下载对应版本server: GitHub Releases 推送server到Android: adb push <frida-server> /data/local/tmp/frida-server 设置权限: chmod 777 /data/local/tmp/frida-server 端口转发: 启动server: ./frida-server 验证: frida-ps -U 应显示Android进程列表 7. Fiddler抓包工具 Fiddler是客户端和服务器之间的代理工具。 配置步骤 : 下载安装: Telerik 导出证书:Tools > Options > HTTPS > Actions > Export 在Android中安装证书:设置 > 安全 > 从SD卡安装证书 设置Android代理为PC IP和Fiddler监听端口(默认8888) 三、测试方法与思路 1. 本地存储数据检测 文件存储检测 : 检查 /data/data/<包名>/ 目录 重点关注XML、JSON等配置文件 SQLite数据库检测 : 检查 /data/data/<包名>/database/ 目录 使用SQLite工具分析.db文件内容 SharedPreferences检测 : 检查 /data/data/<包名>/shared_prefs/ 目录 分析XML格式的键值对数据 2. 组件安全测试 Activity组件 : 检测导出组件的权限控制 尝试未授权访问敏感Activity Broadcast Receiver : 检测广播接收器的导出状态 尝试发送伪造广播 ContentProvider : 检测URI访问控制 测试SQL注入和目录遍历漏洞 Service组件 : 检测服务导出状态 尝试未授权绑定/启动服务 3. 代码分析与Hook 静态分析 : 使用apktool反编译APK 使用dex2jar和jd-gui分析Java代码 搜索敏感关键词(password、token、key等) 动态分析 : 使用Frida Hook关键函数 分析加密/解密逻辑 修改运行时数据 4. 网络通信测试 抓包分析 : 使用Fiddler或Burp Suite拦截请求 分析HTTPS证书校验 测试接口参数篡改 协议安全 : 检测敏感信息明文传输 检查加密算法强度 测试重放攻击 四、总结 Android安全测试是一个系统性的工作,需要结合自动化工具和手动分析: 环境准备 :搭建完整的测试环境(SDK、反编译工具、Drozer、MobSF等) 静态分析 :APK反编译、代码审计、配置文件检查 动态分析 :组件测试、Hook调试、网络抓包 漏洞验证 :对发现的问题进行验证和利用 建议安全测试人员深入理解Android系统机制,熟练掌握ARM汇编和Java代码分析技能,并持续关注新的安全威胁和测试技术。