内容简介
第1章 实验环境搭建
1.1安装工具
1.2 Android Studio
1.3安装安卓虚拟机
1.3.1真实设备
1.3.2 Apktool
1.3.3 Dex2jar/JD-GUI
1.3.4 Burp Suite
1.4配置安卓虚拟机
1.4.1 Drozer
1.4.2 QARK(不支持Windows)
1.4.3 Chrome浏览器的Advanced REST Client扩展程序
1.4.4 Droid Explorer
1.4.5 Cydia Substrate和Introspy
1.4.6 SQLite browser
1.4.7 Frida
1.4.8易受攻击的应用
1.4.9 Kali Linux
1.5 adb入门
1.5.1检查已连接的设备
1.5.2启动shell
1.5.3列出软件包
1.5.4推送文件到设备
1.5.5从设备中拉取文件
1.5.6通过adb安装应用
1.5.7 adb连接故障排除
1.6小结
第2章 安卓ROOT
2.1什么是ROOT
2.1.1为什么要ROOT设备
2.1.2 ROOT的好处
2.1.3 ROOT的坏处
2.2锁定的和已解锁的boot loader
2.2.1确定索尼设备是否已解锁 boot loader
2.2.2按照供应商提供的方法解锁索尼设备的boot loader
2.2.3 ROOT已解锁bootloader的三星设备
2.3官方recovery和第三方recovery
2.4 ROOT流程和安装第三方ROM
2.5 ROOT三星Note 2手机
2.6向手机刷入第三方ROM
2.7小结
第3章 安卓应用的基本构造
3.1安卓应用的基础知识
3.1.1安卓应用的结构
3.1.2 APK文件的存储位置
3.2安卓应用的组件
3.2.1 activity
3.2.2服务
3.2.3广播接收器
3.2.4内容提供程序
3.2.5安卓应用的构建过程
3.3从命令行编译DEX文件
3.4应用运行时发生了什么
3.5理解应用沙盒
3.5.1一个应用对应一个UID
3.5.2应用沙盒
3.5.3是否有方法打破沙盒限制
3.6小结
第4章 安卓应用攻击概览
4.1安卓应用简介
4.1.1 Web应用
4.1.2原生应用
4.1.3混合应用
4.2理解应用攻击面
4.3客户端存在的威胁
4.4后端存在的威胁
4.5移动应用测试与安全指南
4.5.1 OWASP移动应用十大风险(2014)
4.5.2 M1:弱服务器端控制
4.5.3 M2:不安全的数据存储
4.5.4 M3:传输层保护不足
4.5.5 M4:意外的数据泄漏
4.5.6 M5:糟糕的授权和身份认证
4.5.7 M6:被破解的加密技术
4.5.8 M7:客户端注入
4.5.9 M8:通过不受信任的输入进行安全决策
4.5.10 M9:会话处理不当
4.5.11 M10:缺乏二进制文件保护
4.6自动化工具
4.6.1 Drozer
4.6.2使用Drozer进行安卓安全评估
4.7识别攻击面
4.8 QARK
4.8.1以交互模式运行QARK
4.8.2以无缝模式运行QARK
4.9小结
第5章 数据存储与数据安全
5.1什么是数据存储
5.2共享首选项
5.3 SQLite数据库
5.4内部存储
5.5外部存储
5.6用户字典缓存
5.7不安全的数据存储——NoSQL数据库
5.8备份技术
5.8.1使用adb backup命令备份应用数据
5.8.2使用Android Backup Extractor将.ab格式转换为.tar格式
5.8.3使用pax或star工具解压TAR文件
5.8.4分析解压内容并查找安全问题
5.9确保数据安全
5.10小结
第6章 服务器端攻击
6.1不同类型的移动应用及其威胁模型
6.2移动应用服务器端的攻击面
6.3移动后端测试方法
6.3.1设置用于测试的Burp Suite代理
6.3.2绕过证书锁定
6.3.3使用AndroidSSLTrustKiller绕过证书锁定
6.3.4后端威胁
6.4小结
第7章 客户端攻击——静态分析技术
7.1攻击应用组件
7.1.1针对activity的攻击
7.1.2针对服务的攻击
7.1.3针对广播接收器的攻击
7.1.4对内容提供程序的攻击
7.1.5注入测试
7.2使用QARK进行静态分析
7.3小结
第8章 客户端攻击——动态分析技术
8.1使用Drozer进行安卓应用自动化测试
8.1.1列出全部模块
8.1.2检索包信息
8.1.3查找目标应用的包名
8.1.4获取包信息
8.1.5转储AndroidManifes.xml文件
8.1.6查找攻击面
8.1.7针对activity的攻击
8.1.8针对服务的攻击
8.1.9广播接收器
8.1.10使用Drozer引起内容提供程序泄漏和进行SQL注入
8.1.11使用Drozer进行SQL注入攻击
8.1.12内容提供程序目录遍历攻击
8.1.13利用可调试的应用
8.2 Cydia Substrate简介
8.3使用Introspy进行运行时监控与分析
8.4使用Xposed框架进行hook
8.5使用Frida进行动态插桩
8.6基于日志的漏洞
8.7 WebView攻击
8.7.1通过file scheme访问本地敏感资源
8.7.2其他WebView问题
8.8小结
第9章 安卓恶意软件
9.1编写安卓恶意软件
9.2注册权限
9.3恶意应用分析
9.3.1静态分析
9.3.2动态分析
9.4自动化分析工具
9.5小结
第10章 针对安卓设备的攻击
10.1中间人攻击
10.2来自提供网络层访问的应用的威胁
10.3利用现有漏洞
10.4恶意软件
10.5绕过锁屏
10.5.1利用adb绕过图案锁
10.5.2使用adb绕过密码或PIN码
10.5.3利用CVE-2013-6271漏洞绕过锁屏
10.6从SD卡拉取数据
10.7小结