logo资料库

Android渗透测试入门教程.pdf

第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
资料共44页,剩余部分请下载后查看
Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 Android 渗透测试入门教程 (内部资料) 大学霸 www.daxueba.net
Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 前 言 Kali Linux 是业内最知名的安全渗透测试专用操作系统。它的前身就是业界知名的 BackTrack 操作 系统。BackTrack 在 2013 年停止更新,转为 Kali Linux。Kali Linux 集成了海量渗透测试、网络扫描、 攻击等专用工具。通过系统更新,用户可以快速获取最新的各类工具。所以,Kali Linux 是专业人员的 不二选择。 目前,Android 系统应用非常广泛,主要应用在一些可移动设备上,如智能手机、平板、电视、数 码相机、游戏机等。这些设备被广泛地应用在人们工作和生活中。在这些设备中,往往保存大量的、敏 感的个人信息和商业信息。由于 Android 设备具备一些严重的安全隐患,如基于无线网络通信,更容易 被物理接触,安全措施滞后等。所以,很多黑客选择对该类设备实施攻击。 为了满足用户的需要,本教程针对 Android 设备存在的各种问题,介绍了相应的实施渗透测试方法。 如 Android 设备传输的数据、使用的数据库(SQLite)、程序包的源代码、系统或应用程序中的数据等 问题。通过对 Android 设备实施渗透,可以评估该系统的安全。 1.学习所需的系统和软件  安装 Kali Linux 操作系统  Android SDK 管理器 2.学习建议 大家学习之前,可以致信到 xxxxxxx,获取相关的资料和软件。如果大家在学习过程遇到问题,也 可以将问题发送到该邮箱。我们尽可能给大家解决。
Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 目 录 第 1 章 Android 渗透测试 ......................................................................................................................... 1 1.1 Android 系统概述 ........................................................................................................................ 1 1.2 什么是渗透测试 .......................................................................................................................... 1 1.2.1 渗透测试工作流程 ........................................................................................................... 1 1.2.2 渗透测试类型 ................................................................................................................... 2 1.2.3 法律边界 ........................................................................................................................... 3 1.3 安装 Kali Linux ............................................................................................................................ 3 1.3.1 在硬盘上安装 Kali Linux ................................................................................................. 4 1.3.2 在虚拟机上安装 Kali Linux ........................................................................................... 14 1.3.3 安装 VMware Tools ........................................................................................................ 20 1.4 Kali Linux 安装后简单设置 ...................................................................................................... 21 1.4.1 配置软件源 ..................................................................................................................... 21 1.4.2 安装中文输入法 ............................................................................................................. 22 1.4.3 设置 VPN 代理 ............................................................................................................... 23 1.5 ADB 工具的安装及配置 ........................................................................................................... 25 1.5.1 安装 ADB 工具 ............................................................................................................... 26 1.5.2 修改用户的环境变量 ..................................................................................................... 31 1.6 ADB 工具的使用 ....................................................................................................................... 33 1.6.1 启动和停止 ADB 服务 ................................................................................................... 33 1.6.2 查看 Android 设备 .......................................................................................................... 33 1.6.3 安装应用程序 ................................................................................................................. 34 1.6.4 卸载应用 ......................................................................................................................... 35 1.6.5 进入设备或者模拟器的 Shell ........................................................................................ 36 1.6.6 上传文件到设备 ............................................................................................................. 37 1.6.7 从设备上下载文件 ......................................................................................................... 38 第 2 章 反编译和审计 Android 应用程序 .............................................................................................. 39 2.1 反编译一个 Android 应用程序 ................................................................................................. 39 2.1.1 查看 Android 应用程序包内容 ...................................................................................... 39 2.2.2 使用 Dex2jar 工具 .......................................................................................................... 41 2.2.3 使用 Apktool 工具 .......................................................................................................... 42 2.2.4 使用 JD-GUI 工具 .......................................................................................................... 44 2.2 审计 Android 应用程序 ............................................................................................................. 46 2.2.1 安装 Drozer 工具 ............................................................................................................ 47 2.2.2 启动 Drozer 工具 ............................................................................................................ 48 2.2.3 Drozer 命令 ..................................................................................................................... 50 2.2.4 Content provider 组件泄露 ............................................................................................. 50
·II· Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 2.2.5 遍历文件漏洞 ................................................................................................................. 56 第 3 章 流量分析 ..................................................................................................................................... 58 3.1 外部式被动分析 ........................................................................................................................ 58 3.1.1 配置捕获的环境 ............................................................................................................. 58 3.1.2 启动 Wireshark 工具 ....................................................................................................... 59 3.1.3 设置无线设备的监听模式 ............................................................................................. 62 3.1.4 解密 WEP 加密的包 ....................................................................................................... 65 3.1.5 解密 WPA-PSK/WPA2-PSK 加密的包 ......................................................................... 67 3.2 内部式被动分析 ........................................................................................................................ 70 3.2.1 Tcpdump 工具 ................................................................................................................. 70 3.2.2 配置捕获环境 ................................................................................................................. 72 3.2.3 使用 ADB 工具抓包 ....................................................................................................... 72 3.2.4 使用 ADB 工具抓包方式二 ........................................................................................... 77 3.2.5 捕获 AVD 数据包 ........................................................................................................... 77 3.2.6 使用终端模拟器抓包 ..................................................................................................... 83 3.3 主动分析 .................................................................................................................................... 89 3.3.1 什么是主动分析 ............................................................................................................. 89 3.3.2 主动分析的软件环境 Burp Suite ................................................................................... 89 3.3.3 在模拟器上使用代理 ..................................................................................................... 93 3.3.4 在 Android 设备上使用代理 .......................................................................................... 94 3.3.5 设置 Burp Suite 代理 ...................................................................................................... 95 3.3.6 抓取 HTTPS 数据包 ....................................................................................................... 97 3.5 提取敏感文件 .......................................................................................................................... 105 第 4 章 Android 取证 ............................................................................................................................. 108 4.1 取证的概述 .............................................................................................................................. 108 4.1.1 什么是取证 ................................................................................................................... 108 4.1.2 取证的类型 ................................................................................................................... 108 4.2 实施逻辑取证 .......................................................................................................................... 108 4.2.1 使用 Andriller 提取应用程序的数据 ........................................................................... 109 4.2.2 使用 AFLogical 提取联系人、通话记录和短信 ........................................................ 112 4.2.3 使用 ADB backup 提取应用程序的数据 .................................................................... 124 4.2.4 手动备份应用程序数据库 ........................................................................................... 128 4.3 实施物理取证 .......................................................................................................................... 132 4.3.1 Android 设备文件系统概述 ......................................................................................... 132 4.3.2 Android 文件系统分区 ................................................................................................. 132 4.3.3 使用 dd 命令提取数据 ................................................................................................. 134 4.3.4 获取日志 ....................................................................................................................... 135 第 5 章 SQLite 数据库 ........................................................................................................................... 139 5.1 SQLite 数据库概述 .................................................................................................................. 139 5.1.1 SQLite 数据库工作原理 ............................................................................................... 139 5.1.2 SQLite 的特点 ............................................................................................................... 139
Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 ·III· 5.1.3 SQLite 工具内置命令 ................................................................................................... 140 5.2 使用 SQLite 工具分析应用程序 ............................................................................................. 141 5.2.1 安装和配置 sqlite 应用程序 ......................................................................................... 141 5.2.2 使用 sqlite3 分析数据库 ............................................................................................... 143 5.3 安全评估 .................................................................................................................................. 145 5.3.1 安装和配置 VulnSqlite ................................................................................................. 145 5.3.2 实施渗透测试 ............................................................................................................... 147 5.3.3 实施 SQL 注入 .............................................................................................................. 148 第 6 章 Android 系统攻击 ..................................................................................................................... 153 6.1 WebView 概述 ......................................................................................................................... 153 6.1.1 WebView 组件的使用 .................................................................................................. 153 6.1.2 利用 WebView 漏洞实施渗透测试的方式 ................................................................. 154 6.1.3 什么是 DNS 欺骗 ......................................................................................................... 155 6.1.4 DNS 欺骗环境配置 ...................................................................................................... 156 6.1.5 中间人攻击前配置 ....................................................................................................... 158 6.1.6 实施中间人攻击(DNS 欺骗) .................................................................................. 161 6.1.7 停止攻击 ....................................................................................................................... 168 6.2 感染合法的 APK 包 ................................................................................................................ 168 6.3 AD 库漏洞 ............................................................................................................................... 169 6.4 跨应用程序 .............................................................................................................................. 170
·4· Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 第 1 章 Android 渗透测试 Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要用于移动设备,如智 能手机、平板等。目前,大部分用户都使用的是 Android 系统的手机。所以,学习 Android 渗透测试是非常重要的。用户通过对自己的 Android 设备进行渗透测试,可以评估自己的系 统是否安全,或者是否存在有漏洞等。本章将介绍 Android 渗透测试的基础知识。 1.1 Android 系统概述 Android(安卓)是一种基于 Linux 的自由及开发源代码的操作系统,主要用于移动设 备,如智能手机和平板电脑。它是由 Google 成立的 Open Handset Alliance(OHA,开放手 持设备联盟)领导及开发。Android 操作系统最初由 Andy Rubin 开发,主要支持手机。2005 年 8 月由 Google 收购注资。2007 年 11 月,Google 与 84 家硬件制造商、软件开发商及电信 营运商组建开发手机联盟共同研发改良 Android。随后 Google 以及 Apache 开源许可证的授 权方式,发布了 Android 的源代码。第一部 Android 智能手机发布于 2008 年 10 月。Android 逐渐扩展到平板电脑及其他领域,如电视、数码相机、游戏机等。 Android 系统的发展也比较迅速,到目前已经到 Android 5(Lollipop)。每个版本的发 布时间及使用,如表 1-1 所示。 版本 5.0(Lollipop) 4.4 4.3 4.2.X 4.1.X 4.0.3-4.0.4 2.3.3-2.3.7 2.2 表 1-1 Android版本 代码名称 KitKat Jelly Bean Ice Cream Sandwich Gingerbread Froyo 发布时间 2014年6月26日 2013年10月31日 2013年7月24日 2012年11月13日 2012年7月9日 2011年12月16日 2011年1月9日 2010年5月20 API级别 21 19 18 17 16 15 10 8 1.2 什么是渗透测试 渗透测试并没有一个标准的定义。国外一些安全组织达成共识的通用说法是,渗透测试 是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。渗透测试的 过程并非简单地运行一些扫描器和自动化工具,该过程中包括对系统的任何弱点、技术缺陷 或漏洞的主动分析。这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有 条件主动利用安全漏洞。
Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 ·5· 1.2.1 渗透测试工作流程 渗透测试与其它评估方法不同。通常的评估方法是根据已知信息资源或其它被评估对象, 去发现所有相关的安全问题。渗透测试是根据已知可利用的安全漏洞,去发现是否存在相应 的信息资源。相比较而言,通常评估方法对评估结果更具有全面性,而渗透测试更注重安全 漏洞的严重性。渗透测试通常有七个阶段,如下所示:  前期交互阶段:该阶段通常是用来确定渗透测试的范围和目标的。  信息收集阶段:在该阶段需要采用各种方法来收集目标主机的信息,包括使用社交 媒体网络、Google Hacking 技术、目标系统踩点等。  威胁建模阶段:该阶段主要是使用信息收集阶段所获取到的信息,来标识出目标系 统上可能存在的安全漏洞与弱点。  漏洞分析阶段:在该阶段将综合从前面几个环节中获取到的信息,从中分析和理解 那些攻击途径是可行的。特别是需要重点分析端口和漏洞扫描结果,截取到服务的 重要信息,以及在信息收集环节中得到的其它关键信息。  渗透攻击阶段:该阶段可能是在渗透测试过程中最吸引人的过程。然而在这种情况 下,往往没有用户所预想的那么一帆风顺,而往往是曲径通幽。在攻击目标主机时, 一定要清晰地了解在目标系统上存在这个漏洞。否则,根本无法攻击成功。  后渗透攻击阶段:该阶段在任何一次渗透过程中都是一个关键环节。该阶段将以特 定的业务系统作为目标,识别出关键的基础设施,并寻找客户组织最具价值和尝试 进行安全保护的信息和资产。  报告阶段:报告是渗透测试过程中最重要的因素,使用该报告文档可以交流渗透测 试过程中做了什么、如何做的以及最为重要的安全漏洞与弱点。 1.2.2 渗透测试类型 到现在为止,大家已经对渗透测试的基本技术流程与环节有了一个初步的了解。接下来 介绍一下渗透测试的两种基本类型,分别是黑盒测试和白盒测试。白盒测试有时也被称为“白 帽子”,是指渗透测试者在拥有客户组织所有知识的情况下进行的测试;而黑盒测试是指对 攻击主机一无所知的攻击者所进行的渗透测试。两种测试方法都拥有它们自己的优点和弱点。 下面分别介绍详细介绍这两种类型。 1.白盒测试 使用白盒测试,需要和客户组织一起工作,来识别出潜在的安全风险,客户组织将会向 用户展示它们的系统与网络环境。白盒测试最大的好处就是攻击者将拥有所有的内部信息, 并可以在不需要害怕被阻断的情况下任意地实施攻击。而白盒测试的最大问题在于无法有效 地测试客户组织的应急响应程序,也无法判断出它们的安全防护计划对检测特定攻击的效率。 如果时间有限,或是特定的渗透测试环节如信息收集并不在范围之内的话,那么白盒测试是 最好的渗透测试方法。 2.黑盒测试 黑盒测试与白盒测试不同的是,经过授权的黑盒测试是设计成为模拟攻击者的入侵行为, 并在不了解客户组织大部分信息和知识的情况下实施的。黑盒测试可以用来测试内部安全团 队检测和应对一次攻击的能力。
·6· Android 渗透测试入门教程(内部资料)——daxueba.net 版权所有 黑盒测试是比较费时费力的,同时需要渗透测试者具备更强的技术能力。它依靠攻击者 的能力通过探测获取目标系统的系统。因此,作为一次黑盒测试的渗透测试者,通常并不需 要找出目标系统的所有安全漏洞,而只需要尝试找出并利用可用获取目标系统访问权代价最 小的攻击路径,并保证不被检测到。 不论测试方法是否相同,渗透测试通常具有两个显著特点。  渗透测试是一个渐进的并且逐步深入的过程。  渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。 1.2.3 法律边界 当实施渗透测试时,获取准确的书面授权是非常重要的事情。如果不清楚的话,可能导 致用户面临法律诉讼的问题,更有可能为此锒铛入狱。所以,这里简单介绍一些需注意的法 律边界问题。如下所示:  谁有权利授予这次渗透测试任务?  测试的目的是什么?  测试预计的时间范围是多少?测试中有什么限制,如什么时候可以进行测试?  你的客户指定漏洞评估和渗透测试的区别吗?  你在此次扫描测试过程中会和 IT 安全团队合作吗?你需要测试它们的能力吗?  可以在渗透过程中使用社会工程学攻击吗?可以使用拒绝服务攻击吗?  你能够使用一些物理安全测试方法来测试那些安全服务器、敏感数据存储、或其他 能够物理接触的设备吗?例如,撬锁、仿冒一些员工获得进入大楼的权限、或是进 入那些普通人员通常不能单独访问的区域。  你是否被允许查看网络文件,或者在测试之前告知网络架构来加速测试过程?如果 不明白这一点,可能会影响你得到测试结果的价值。但是在绝大多数业务中,这类 企业信息不会像用户想象的那么容易得到。  允许用户检查的 IP 范围是什么?没有经过正式允许的扫描和测试是法律所不允许 的。用户必须尽力弄清属于客户的网络范围和设备,否则可能会陷于法律指控的危 险之中。  公司的物理位置在哪里?如果允许使用社会工程学攻击,那么这个信息对测试人员 非常重要。因为这能够保证用户身处被测试的建筑物当中。如果时间允许,你应该 让客户指定。尽管他们认为自己的位置信息是保密或者难以发现的,但是你却能够 轻松地从公开渠道获取上诉的信息。  如果测试时遇到一个问题,或测试的最初目标已经达到,你应该做什么?你是否会 继续检查,以发现更多入口或结束测试?这个问题非常重要,它关系到客户为什么 要进行一次渗透测试这一首要问题。  用户需要注意不同国家对信息系统制定的法律不同。在针对渗透测试的法律上,不 是所有国家的法律都是相同的。  一旦通过漏洞攻击了系统,进一步拓展是否需要获得其他许可?这在对分段的网络 进行测试时非常重要。客户可能不会想到,你能够通过内网一台主机作为支点来进 一步渗透内网。  怎样处理数据库?是否允许你添加记录、用户等信息? 在渗透测试时,用户需要做一个列表,列出根据客户要求需要测试的内容。大部分数据 可以从客户那里直接收集,但是还有一些数据需要你们团队进行处理。如果担心法律问题,
分享到:
收藏