《电子数据取证技术》课件-第8章_第1页
《电子数据取证技术》课件-第8章_第2页
《电子数据取证技术》课件-第8章_第3页
《电子数据取证技术》课件-第8章_第4页
《电子数据取证技术》课件-第8章_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.Android(安卓)系统取证技术目录CONTENTS8.1Android智能手机取证概述8.1.1Android概况及发展历程8.1.2常见Android手机厂商及系统特点8.1.3Android功能特点8.1.4Android取证准备工作8.1.5Android系统逻辑数据提取8.2Android系统常见逻辑数据提取分析8.2.1短信息/彩信提取和分析8.2.2通话记录提取和分析8.2.3联系人信息提取和分析8.2.4浏览器历史记录提取和分析8.2.5邮件客户端信息的提取和分析8.2.6微信数据的提取和分析8.3Android密码绕过与物理取证8.3.1获取root权限8.3.2绕过Android设备密码8.3.3

Android物理镜像的提取8.3.4

获取Android外置存储设备镜像8.3.5Android物理镜像的分析8.3.6Android数据恢复8.1Android智能手机取证概述8.1Android智能手机取证概述8.1.1Android概况及发展历程

Android操作系统的历史最早可以追溯至2003年10月,AndyRubin等人创立了AndroidInc.公司,该公司在成立仅22个月后在2005年8月17日被Google公司收购;在2007年,Google联合其他软硬件制造商与电信运营商共同成立了“开放手持设备联盟(OpenHandsetAlliance)”,基于开源的LinuxKernel2.6发布了首个免费的移动终端操作系统Android;2008年,首个采用Android操作系统的智能手机“HTCDream”发布,在其后近十年间,Android操作系统发展速度惊人,截止2018年5月,Android操作系统已经发展到Android9.0版本,并陆续针对电视、智能可穿戴设备和汽车等发布了AndroidTV、WearOS以及AndroidAuto等衍生操作系统。

Android操作系统的基本架构如上图所示,主要有Linux内核、硬件抽象层、原生C/C++库、Android运行时库(ART)、JavaAPI框架以及系统应用组成,关于每部分的具体构成和组件,可以在Android官方平台介绍页面详细了解,由于篇幅所限,本章节不再赘述。经历了近十年的版本变迁,Android操作系统中一些功能与机制持续改进与完善;比如,在早期版本中,Android使用了Dalvik虚拟机机制,由于Android应用程序使用Java语言开发,Java源代码通过Dex转换后可以直接运行于Dalvik虚拟机(DVM)中,而在Android5.0版本之后,DVM机制被替换为Android运行时库(后文简称ART,AndroidRuntime),后者更为高效且省电。8.1.1Android概况及发展历程

与之类似的和取证相关的Android系统版本发展变化还包括安全方面的改进,Android6.0系统中增加了全盘加密(后文简称FDE,FullDiskEncryption),为Android设备的数据安全提供了更高的安全保障,其后的Android7.x版本更是将单密钥加密的FDE方式升级为了与iOS系统数据加密类似的“基于文件加密”(FBE,File-basedEncryption),允许数据根据需要进行解密,这使得多数基于离线芯片拆卸(Chip-off)方式的取证完全失效。8.1.1Android概况及发展历程

上述两个例子表明,作为目前占据市场份额最大的智能终端操作系统,Android的版本更新与完善直接影响到针对其的取证方式和取证效果,所以,取证调查人员应当熟悉和了解不同版本Android操作系统的主要差异、尤其是在安全功能方面的变化,并持续关注与了解Android系统的发展趋势和最新动态,以便及时适应和有针对性地更新取证方面的知识与方法。8.1.1Android概况及发展历程

8.1.2常见Android手机厂商及系统特点由于Android的开放性特点,众多设备厂商甚至业余爱好者都可以在官方Android版本基础上进行再次开发和定制,增加额外的功能、提高系统效率;这之中较为常见的厂商定制优化版本包括小米MIUI、华为EMUI、OPPOColorOS、vivoFuntouchOS、魅族Flyme等,较为著名的CyanogenMod(简称CM)也是第三方团队在官方Android版本基础上修改而来。8.1Android智能手机取证概述从手机用户角度看,不同厂商的定制系统通常会加入厂商自己的服务和应用,包括应用程序分发(应用商店)、云存储服务、个人信息管理以及多媒体管理工具等,这些定制和修改可以为用户带来更好更适合用户个性化需求的体验;而从取证角度来看,了解和熟悉不同厂商的Android定制版本,包括定制版本系统在数据提取与安全方面的限制,对于后续针对使用这些定制Android版本设备进行取证来说是至关重要的,因为同样是基于Android进行的修改与定制,不同厂商的系统在取证时采用的方法可能迥然不同。下面将选择国内常见的手机厂商所使用的定制Android系统,侧重系统安全功能与数据提取方式方面进行简要介绍。8.1.2常见Android手机厂商及系统特点

1.小米MIUIMIUI由小米公司开发,于2010年发布首个内测版本,早期的MIUI是基于国外第三方团队的CyanogenModROM进行定制,适配于HTCNexusOne机型,结合国内用户需求进行了功能定制与优化,受到了大量用户好评。截止2018年初已更新至MIUI9。主要适配机型:小米手机、红米手机接口协议与数据备份方式:除Android官方adb外,部分版本集成mdb协议可进行通讯;MIUI系统自带备份功能,可进行应用程序数据备份。8.1.2常见Android手机厂商及系统特点

2.华为EMUIEMUI(EmotionUI)由华为公司开发,于2012年发布首个版本EMUI1.0,基于当时的Android4.0进行开发,随着华为公司移动终端产品的不断丰富,EMUI更新速度也同步加快,截止2018年初,EMUI已更新至EMUI8版本。主要适配机型:华为手机(P系列、Mate系列等)、华为荣耀系列手机接口协议与数据备份方式:可使用Android官方adb进行连接;EMUI系统自带备份功能,可进行应用程序数据备份。8.1.2常见Android手机厂商及系统特点

3.OPPOColorOSColorOS是OPPO公司基于Android系统深度定制的手机ROM,近年来越来越多国内手机厂商从传统非智能机转型至Android智能手机,OPPO便是一个较为典型的例子,通过在手机行业近十年的发展,目前OPPO品牌智能手机在国内手机市场占据了相当的份额;截止2018年初,ColorOS最新版本为ColorOS5.0。主要适配机型:OPPO品牌手机接口协议与数据备份方式:使用Android官方adb进行连接。8.1.2常见Android手机厂商及系统特点

4.vivoFuntouchOSFuntouchOS是vivo公司定制开发的Android操作系统,最初发布于2013年10月,目前主要使用于vivo品牌手机中,最新版本为FuntouchOS4.主要适配机型:vivo品牌手机接口协议与数据备份方式:使用Android官方adb进行连接,部分新版本无法使用adbbackup进行备份。8.1.2常见Android手机厂商及系统特点

8.1.3Android功能特点在本章节的第一部分,我们就Android系统的基本架构进行了简要介绍,由于Android版本更新迭代较快,不同版本间的功能特点与取证相关联的特性也不尽相同,本节中,主要选择针对Android操作系统的一些安全机制方面的功能特点进行介绍。8.1Android智能手机取证概述10%20%30%40%1.应用程序权限机制2.应用程序沙盒机制4.文件级加密3.全盘加密8.1.3Android功能特点

1.应用程序权限机制Android操作系统中,应用程序对于具体系统功能的使用都需要进行对应授权,比如摄像头、拨号、短信、地理位置、应用程序列表和系统存储等,这种权限控制可以在应用程序安装过程中进行提示,也会在应用程序首次运行时进行授权提示。在Android6.0以后的版本中,用户可以针对应用程序的特定权限进行逐项限制,使得用户可以根据自己的实际需要,授予或拒绝应用程序的不同功能请求。8.1.3Android功能特点

应用程序权限控制体现在对于取证的影响方面,主要在于,多数手机取证软件通过推送apk的方式在手机上安装客户端,从而实现对未获得root权限手机的逻辑数据提取,这个过程中,手机取证客户端读取短信、通话记录、联系人和系统信息时,都会触发Android系统的权限控制,此时取证人员必须逐一点击允许客户端进行读取,否则将无法获得相应的数据。8.1.3Android功能特点

2.应用程序沙盒机制Android系统中使用了沙盒机制针对程序权限进行控制,Android为每个应用程序分配了一个独立的UID(UniqueUserID),从而确保每个应用程序仅能够访问自己所属的存储和指定的系统权限,在这一机制保护下,潜在的恶意程序与病毒程序无法读取其他应用程序存储的数据和系统数据,保护了用户数据的安全。8.1.3Android功能特点

3.全盘加密Android4.4版本引入了全盘加密(FDE,FullDiskEncryption)机制,在原生Android6.0版本设备中,默认启用全盘加密设置;全盘加密是使用密钥(密钥本身也经过加密)对Android设备上的所有用户数据进行编码的过程。设备经过加密后,所有由用户创建的数据在写入磁盘之前都会自动加密,并且所有读取操作都会在将数据返回给调用进程之前自动解密数据。全盘加密默认情况下采用AES-128算法,当用户设置了屏幕锁定密码(包括手势密码、数字密码或字母混合密码)后,用于加密的主密钥会被再次加密存储以保证安全。如果Android设备中开启了全盘加密,那么,取证时采用拆卸芯片等方式提取的物理镜像在进行解密之前都无法直接解析,全部数据均为密文形式。8.1.3Android功能特点

4.文件级加密在Android7.0及更高版本中,增加了文件级加密(FBE,File-basedEncryption)。与FDE全盘加密采用一个主密钥进行加密不同,文件级加密支持针对不同的文件采用不同的密钥进行加密,并按需进行解密。启用文件级加密的Android设备可以保证设备在刚开启但并未解锁前,部分系统应用数据可以提前解密(DE,设备机密),同时在用户解锁设备之前其他类型的个人数据始终处于加密状态(CE,凭据加密),举例来说,Android7.0设备开启FBE加密后,手机开启后停留在输入密码界面,此时系统允许将部分应用数据解密,即便不输入密码,系统的闹钟和通知消息等应用可以正常使用,而其他用户数据仍处于加密保护之中。8.1.3Android功能特点

8.1.4Android取证准备工作在了解Android系统的不同层次的取证方式前,首先需要了解有哪几种方式可以提取Android系统数据、这些方式分别基于什么原理、可以提取到的数据范围,本节还会介绍如何准备和配置针对Android进行取证的环境。8.1Android智能手机取证概述

1.AndroidSDK安装AndroidSDK(SoftwareDevelopmentKit开发包)主要用于Android应用程序的编写测试与调试,其中包括了一系列的文档和调试工具,包括Adroit手机取证中经常使用到的adb以及AndroidVirtualDevice等均包含在内。AndroidSDK安装包可以在GoogleAndroid项目页面下载:/studio/#downloads

8.1.4Android取证准备工作

下载完成后运行安装包,如下列图中步骤所示:在安装过程中,根据需要,可以勾选“AndroidVirtualDevice”工具,该工具可以创建基于任意版本的Android虚拟机,取证调查人员借助该工具可以研究和分析不同版本的Android系统而无需使用实际的手机终端。在全部安装完成后AndroidStudio将会自动下载完成所需的组件,包括对应的SDK工具包。8.1.4Android取证准备工作

2.AndroiddebugbridgeAndroiddebugbridge(简称“adb”)是Android系统用于进行数据传输的C/S客户端协议,对于Android取证来说,adb是非常重要的一个概念,在绝大多数情况下的数据提取、备份都是基于adb进行。使用adb进行通信,除了在计算机端安装AndroidSDK外,还需要在Android手机端开启“USB调试模式”,在不同版本的Android系统中,调试模式的开启方法也有所差异。8.1.4Android取证准备工作8.1.4Android取证准备工作图8-1 Android手机端连接调试模式授权主要注意的是,在一些厂商定制的Android系统中,开启USB调试模式的位置可能会与上表中所列的位置不同。8.1.4Android取证准备工作

另外,出于安全考虑,Android4.2.2之后的版本在连接USB调试模式时,需要在屏幕上点击确认,如上图所示,这意味着如果手机设置了屏幕锁定密码,需要首先解除手机密码锁定后才能够进行USB调试模式连接。3.通过adb连接Android手机当在计算机端安装AndroidSDK并在Android手机端打开调试模式后,便可以通过adb方式连接手机。将Android手机连接至计算机并允许进行调试连接后,可以使用adbdevices命令查看连接的设备情况。8.1.4Android取证准备工作图8-2使用adbdevices命令查看已连接的设备情况8.1.4Android取证准备工作

图8-3 adb手机端未授权连接如设备显示为“Unauthorized”,则需要先解除屏幕锁定后允许进行USB调试模式方可。此时,即可以使用adb方式进行数据提取和取证工作。8.1.4Android取证准备工作

8.1.5Android系统逻辑数据提取在上一小节中我们曾提到,在Android取证工作中,adb是非常重要的一个概念,因为多数针对Android的逻辑层面的取证都要依赖于adb的方式进行,在展开介绍之前,首先需要了解一下不同方式手机取证方法的差异。8.1Android智能手机取证概述

图8-4手机取证工具分级图(SamBrothers)下图所示是SamBrothers关于手机取证工具的分级图,其中,除了最基本的手工提取分析与较为复杂的芯片拆卸方式外,多数手机取证工具都具备的是逻辑数据提取和物理提取功能。8.1.5Android系统逻辑数据提取

逻辑数据提取一般是在手机开机状态下通过与操作系统进行交互提取存储中的现有数据,通常意义上Android手机的逻辑数据包括系统信息、短信、通话记录、联系人、应用程序数据以及现有的图片、音视频等多媒体文件。Android操作系统中的逻辑数据通常存储在两种文件中:8.1.5Android系统逻辑数据提取

1.SQLite数据库文件通常以“*.db”为扩展名,大部分数据存储于其中,多数SQLite数据库文件采用不加密明文存储,可以使用常用的数据库查看器进行查看和分析。2.XML配置文件XML文件用于保存应用程序参数配置信息,可以直接使用文本查看器进行查看。如下表所示,列出了Android中常用的逻辑数据的包名及数据包路径。8.1.5Android系统逻辑数据提取8.1.5Android系统逻辑数据提取通常情况下,如Android手机已解除屏幕锁定并开启USB调试模式,可以利用adb方式将文件从手机拷贝至计算机中,其命令格式为:Adbpull%源数据位置%%目标位置%比如需要将Android手机中“download”目录下的“info.xml”文件拷贝至计算机C盘根目录,可以在命令行中执行如下命令图85adbpull命令8.1.5Android系统逻辑数据提取需要注意的是,由于Android系统中权限限制,adbpull命令在访问包括应用程序数据、系统数据时,需要具备root权限,此时需要手机提前进行root操作,或者选择采用备份应用程序数据包的方式进行提取,关于root相关的介绍请参考本章8.3.1的介绍。从Android4.0开始,Android增加了通过adb方式进行备份的功能,通过该功能可以将Android系统中原本需要root权限才能访问的应用程序数据使用打包备份的方式进行提取,该命令的主要参数如下:adbbackup[-f备份文件名][-apk|-noapk][-shared|-noshared][-all][-system|nosystem][应用包名]8.1.5Android系统逻辑数据提取

其中,参数“-f”用于指定备份文件的存储位置,如不特殊指定,默认为adb目录;“-apk|-noapk”参数分别代表备份或不备份应用程序安装包apk;“-shared|-noshared”参数代表是否备份共享存储或存储卡存储;“-all”参数表示备份所有可备份的应用程序数据;“-system|-nosystem”参数代表备份是否包含系统应用程序,最后“应用包名”可以单独制定某个应用包名,实现对于单个应用的独立备份。8.1.5Android系统逻辑数据提取图8-6 adbbackup命令8.1.5Android系统逻辑数据提取

在计算机端执行adbbackup后,Android手机端会弹出备份窗口,此时需要点击界面右下方“备份我的数据”按钮执行备份。8.1.5Android系统逻辑数据提取图8-7手机端adbbackup响应8.1.5Android系统逻辑数据提取

备份完成后,在计算机端可以找到“backup.ab”文件(如adbbackup命令执行时未另行指定文件名),对该备份数据包的解析需要将其转换为可解压格式,AndroidBackupExtractor可以将“ab”格式的备份包转换为可解压的“tar”包。针对adbbackup备份包转换后所得到的tar包进行解压,即可获得所备份的应用程序数据。8.1.5Android系统逻辑数据提取8.2Android系统常见逻辑数据提取分析8.2Android操作系统常见逻辑数据提取分析8.2.1短信息/彩信的提取和分析Android系统中短信息和彩信采用SQLite数据库方式存储,默认的存储位置为:/data/data/viders.telephony/databases/mmssms.dbSQLite数据库的查看工具可选择的较多,如SQLiteExpert、SQLiteBrowser以及SQLiteStudio等,本章节后续使用SQLiteExpert作为数据库查看工具进行介绍和演示。图8-8 mmssms.db数据库随后,使用SQLiteExpert打开该目录下的“mmssms.db”数据库,可以看到该数据库中包含多个数据表。8.2.1短信息/彩信的提取和分析

其中,表“sms”用于存储短信息及彩信,主要字段如下表所示:8.2.1短信息/彩信的提取和分析

根据上述字段,可以对sms表中的短信记录进行逐项解释,这其中多数字段采用整型数与文本格式存储,其中,“person”字段编号与存储联系人信息的“contacts2.db”中的联系人编号对应(详见本章8.2.3),而“date”与“date_sent”字段的时间采用Unix毫秒计数,需要进行转换变为标准日历时间,转换时可以使用ClockSmith等工具进行,转换后所得时间为UTC世界协调时,还应根据所在时区调整时差。8.2.1短信息/彩信的提取和分析图8-9短信时间转换8.2.1短信息/彩信的提取和分析

8.2.2通话记录提取和分析Android系统中通话记录与联系人存储于同一SQLite数据库中,其路径为:/data/data/viders.contacts/databases/contacts2.db使用SQLiteExpert打开该数据库,其中“calls”数据表用于存储通话记录项目。8.2Android操作系统常见逻辑数据提取分析

需要注意的是,在部分品牌手机定制的Android系统中,“contacts2.db”数据库中并不直接使用“calls”数据表存储通话记录,而是将该数据单独存储为其他的数据库,比如华为EMUI的“calls.db”数据库用于存储通话记录,取证人员需要根据实际情况寻找对应的数据来源。8.2.2通话记录提取和分析

该数据表中记录了通话记录的相关信息,其主要字段如下表所示:8.2.2通话记录提取和分析8.2.2通话记录提取和分析在部分品牌手机定制的系统中,除了标准通话记录的字段,还会增加诸如黄页标记、来电识别归属地等个性化功能,这些数据也会一并存储在其对应的数据库中。图8-10通话记录的其他字段8.2.2通话记录提取和分析8.2.3联系人信息提取和分析联系人信息与通话记录信息一样,存储在“contacts2.db”数据库中,其中与联系人相关的几个主要数据表包括:1.groups表:联系人分组信息2.contacts表:联系人信息3.raw_contacts表:存储更多关于联系人的字段数据4.mimetypes表:定义联系人信息中的mime类型5.data表:按行存储的联系人详细信息图8-11 groups表下面逐一进行分析:1.groups表groups表存储了用户针对联系人进行的分组信息,“title”字段是群组名称,“note”字段是群组描述。8.2.3联系人信息提取和分析

2.contacts表contacts表保存了联系人的联系次数和信息更新时间等信息,其表结构如下:8.2.3联系人信息提取和分析

3.raw_contacts表与上面的contacts表类似,raw_contacts表储存了关于联系人的更多属性信息,比如联系人的显示名称、个性化手机铃声等。8.2.3联系人信息提取和分析

4.data表data表用于存储联系人详细的信息,随着Android手机版本不断更新,所支持的联系人字段较之以往非智能手机简单的电话号码、姓名、电子邮件等字段以外更为丰富,比如联系人的即时通讯账号、头像照片以及个人网站等信息,这些信息通过data表与mimetypes表的关联存储在数据库中:8.2.3联系人信息提取和分析图8-12 data表8.2.3联系人信息提取和分析8.2.3联系人信息提取和分析

通过上面的图表可以看到,data表中保存的数据看起来并不规律,既有电子邮件,还有姓名或者电话号码,其实这些信息与其他数据表均有关联——其中,raw_contact_id代表联系人唯一的id号码,同一个id号码的联系人后方的data1至data15存储的数据属于同一联系人,而mimetypes_id的数值决定了后续data1至data15为哪种数据提供存储,mimetypes_id的详细定义由mimetypes表存储,我们继续向下分析该表。8.2.3联系人信息提取和分析

5.mimetypes表mimetypes表中按照其id分别指定了该类型存储的数据项目,下图是一个典型的mimetypes表,可以看到,字段“_id”为“1”的数据项代表“vnd.android.cursor.item/email_v2”,从字面即可判断为电子邮件数据;而“_id”为“5”代表为电话号码,“7”为姓名。8.2.3联系人信息提取和分析图8-13 mimetypes表8.2.3联系人信息提取和分析

根据这样的定义,结合data表中的内容来分析便清晰很多,如下图中画框部分,相同的“raw_contact_id”值“25”表示这些信息属于同一联系人,分别是他的电话号码(mimetypes_id为5)、姓名(mimetypes_id为7)和他所属的联系人分组信息(mimetypes_id为12)。8.2.3联系人信息提取和分析图8-14同一联系人的多项mimetypes记录通过对上述数据表的分析,可以较为完整地提取Android系统中联系人的相关数据。8.2.3联系人信息提取和分析

8.2.4

浏览器历史记录提取和分析在针对Android手机的取证工作中,调查与浏览器相关的浏览记录是一项较为主要的工作,与计算机浏览器类似,Android平台也有多种不同类型的浏览器,常见的有GoogleChrome、FireFoxMobile、Opera以及国内的UC浏览器、QQ浏览器和360浏览器等。本节主要以Android系统自带浏览器为例,介绍如何分析浏览器的相关记录。8.2Android操作系统常见逻辑数据提取分析

Android自带浏览器的数据包路径位于:/data/data/com.android.browser/browser2.db通过adb方式或其他方式将该文件提取至分析计算机,使用SQLite数据库查看器打开该数据库,与浏览器用户痕迹相关的主要为该数据库的两个数据表。8.2.4浏览器历史记录提取和分析

图8-15 history表1.history表数据库中的history表保存了浏览器的所有浏览历史记录。8.2.4浏览器历史记录提取和分析

该表中,“title”字段为浏览网页的标题,“url”字段为网页完整URL地址,“created”字段存储的是防卫该网页的时间,需要注意的是,此处的时间与其他数据库中的时间格式相同,均为Unix毫秒计时间,默认为UTC时间,需要根据所在时区调整。8.2.4浏览器历史记录提取和分析

图8-16 bookmarks表2.

bookmarks表数据库的bookmarks表保存了浏览器中所有的书签记录。由于篇幅所限,其他第三方浏览器的数据分析本章不再赘述,读者可根据实际情况选择工具进行手工提取和分析。8.2.4浏览器历史记录提取和分析

8.2.5

邮件客户端信息的提取和分析Android系统中自带的电子邮件客户端允许用户直接配置帐户信息后进行邮件的收发,相对于iOS系统中邮件的高安全级别,分析Android平台的电子邮件数据则较为简单。Android系统自带电子邮件客户端数据包的路径位于:/data/data/com.google.android.email/databases/EmailProvider.db8.2Android操作系统常见逻辑数据提取分析

使用SQLite数据库查看器打开该数据库,发现其主要数据表结构如下:Account表:记录邮件账户信息Attachment表:记录邮件附件信息HostAuth表:记录电子邮件收发服务器地址及邮箱帐户密码信息Mailbox表:邮箱文件夹信息Message表:电子邮件摘要数据8.2.5邮件客户端信息的提取和分析

此外,完整的电子邮件则保存在以下数据库中:/data/data/com.google.android.email/databases/EmailProviderBody.db电子邮件客户端的分析工作与前几节中介绍的针对通话记录和联系人数据的分析类似,如需得到完整信息,需要将上述两个数据库中不同表的信息相互关联起来。如下表所示,我们选择一封邮件并节选其部分字段,用以解释电子邮件在上述两个数据库中的存储方式,展示其关联关系:8.2.5邮件客户端信息的提取和分析8.2.5邮件客户端信息的提取和分析图8-17EmailProviderBody数据库中的完整内容随后根据其邮件id“32”,在EmailProviderBody.db数据库中,可以找到该邮件的完整内容。8.2.5邮件客户端信息的提取和分析

由于采用SQLite数据库方式存储,Android系统的电子邮件数据除了可以采用上述方法进行手工分析外,还可以借助专业的手机取证软件对已删除的电子邮件数据进行恢复。8.2.5邮件客户端信息的提取和分析

8.2.6

微信数据的提取和分析如前文所述,Android智能手机的逻辑数据提取包括了短信、通话记录、联系人这些系统数据,还包括手机中安装的各类App数据,在当前的手机取证工作中,针对App的提取和分析已经成为手机取证的重要工作内容,与此同时,对于各类手机App的取证也为调查人员带来了更多的挑战,例如:面对日益增加的应用程序安全机制如何才能有效提取数据?手机App快速更新导致数据存储方式变化该如何进行分析?……8.2Android操作系统常见逻辑数据提取分析

作为在国内目前最为主流的手机即时通讯应用,微信拥有极为庞大的用户群体,对微信App的取证也显得更为重要,本节中,我们选择微信这一具有代表性的Android应用程序,来介绍一下如何提取和分析微信的数据。在Android系统中,微信官方版本的数据包存储路径为:/data/data/com.Tencent.mm/在该路径下的MicroMsg目录用于存储微信聊天记录。8.2.6微信数据的提取和分析

需要额外注意的是,由于Android微信App6.0以上版本不再允许采用用户使用adbbackup方式备份自身数据,提取微信数据一般需要在手机端取得root权限,或制作手机物理镜像后方可进行分析。8.2.6微信数据的提取和分析图8-18com.Tencent.mm目录8.2.6微信数据的提取和分析

在MicroMsg目录下,根据所使用微信账号数量的不同,存在一个或多个对应的以MD5值命名的目录,用于保存不同账号所对应的微信数据,该MD5值为来源于md5(mm,UIN),代表不同微信账号对应的数据。8.2.6微信数据的提取和分析图8-19多个微信账号对应的目录8.2.6微信数据的提取和分析图8-20 EnMicroMsg.db数据库8.2.6微信数据的提取和分析

对应微信账号下的EnMicroMsg.db数据库用于存储微信聊天记录,和前面介绍的多数系统信息采用SQLite数据库不加密明文存储不同,微信对于其数据库进行了加密,加密方式为SQLcipher,此时需要计算出对应的密码来进行解密。计算数据库密码需要掌握两个要素,首先,通过直接查看手机中的“关于”信息,或在拨号界面输入“*#06#”获取手机的IMEI/MEID信息;然后,在微信数据包路径“com.tencent.mm\shared_prefs\auth_info_key_prefs.xml”中找到明文存储的微信UIN值。8.2.6微信数据的提取和分析图8-21 微信UIN值8.2.6微信数据的提取和分析随后,将两者按照下方形式组合计算MD5散列,并取其散列值前7位,即为对应的“EnMicroMsg.db”的加密密码:8.2.6微信数据的提取和分析图8-22解密后的微信数据库使用支持SQLCipher的数据库查看器打开EnMicroMsg.db数据库,使用上述7位密码即可打开加密的微信数据库。8.2.6微信数据的提取和分析

EnMicroMsg.db数据库中主要包含以下数据表:8.2.6微信数据的提取和分析8.2.6微信数据的提取和分析对解密后的微信数据库进行分析,便可以较为完整的提取微信App中的各类数据。本节选择微信App为例介绍了针对Android系统中App程序的手工分析方法,目的在于使读者对于AndroidApp的数据存储方式和分析思路形成系统性的理解,而在实际取证工作中,多数App程序的数据库并未加密存储,且通过手机取证软件均可直接进行提取和分析。8.3Android密码绕过与物理取证8.3Android密码绕过与物理取证8.3.1获取root权限

在进行Android手机取证工作时,获取Android手机的root权限是很多数据提取的先决条件,在本章开头部分我们介绍到,Android是基于Linux内核开发的移动设备操作系统,而在类Unix操作系统中,root用户据有最高级别权限,所以,基于安全方面的考虑,几乎所有版本的Android手机在默认状态下都不提供root权限。因此,对于取证调查人员来说,熟悉和了解获取root权限的原理,掌握常用的获取手机root权限的方法,以及清楚理解root一部手机可能产生的影响与风险,便显得尤为重要。接下来的部分将概括介绍目前Android手机常用的获取root权限的方法及相关的概念及应用。

1.root的本质root是对于系统的修改,通常情况下是利用了厂商在软件或硬件上的安全缺陷或漏洞,将特定的程序(su)附加并执行来进行权限提升。由于这个过程是未经厂商许可进行的修改,所以存在导致手机软件与硬件故障且无法还原的风险,这将会直接导致电子证据的灭失!在任何情况下,取证人员都应清楚意识到这一风险,在具备条件的情况下首先进行测试验证,并在取证过程中详实记录全部操作。8.3.1获取root权限

2.通过第三方root工具获得root权限互联网上有许多第三方工具可以根据手机型号和系统版本,提供对应的开机root权限获取功能,常见的此类工具包括Kingroot、360一键root、root精灵等,一般情况下,Android系统版本较早的手机(一般为Android4.4及之前的版本)更容易获取root权限,而Android版本较高、安全更新日期较新的手机使用此类工具获取root权限成功率较低。3.通过刷入第三方Recovery获取root权限Android系统的Recovery分区用于对系统更新和系统恢复,在早期版本的Android中,常用的第三方Recovery程序包括CWM(ClockWorkMod)Recovery,而适用于较新版本Android的第三方Recovery主要包括TWRP(TeamWimRecoveryProject)等。8.3.1获取root权限图8-23 TWRPRecovery界面在Android手机中刷入修改后的第三方Recovery,重启进入Recovery模式,第三方Recovery将直接提供adb及root权限进行数据获取。8.3.1获取root权限

部分厂商定制系统提供获取root权限功能除了以上方式以外,一些品牌Android手机采用厂商定制ROM,提供或部分提供了临时性的root权限,比如部分魅族品牌手机,在登录用户账号后可以临时开启root权限。目前主流的Android操作系统取证工作中,使用最多且适用范围最广的是采用“刷入第三方Recovery”的方式,下面我们进一步介绍具体方法。8.3.1获取root权限8.3.1获取root权限

(1)解除Bootloader锁:为了防止用户通过刷写分区修改系统,近年来,Android手机厂商开始对刷机行为进行限制,主要方式是增加Bootloader锁定,Bootloader锁定后将会在开机时自动检查boot.img和recovery.img,如果签名验证发现刷入了第三方的boot包与Recovery包,将拒绝继续引导系统。所以,在刷入第三方Recovery之前,需要先解除这个锁定。目前多数Android手机厂商均提供了官方渠道,用户只需提交设备信息和账号,即可申请解除Bootloader锁,但官方解锁不适用于所有品牌手机,比如华为手机如通过官方渠道解除Bootloader锁将有可能自动清除所有数据。8.3.1获取root权限

(2)刷入第三方Recovery:解除Bootloader锁后,便可开始刷入第三方Recovery分区,针对不同品牌不同型号的手机,刷入方式也不尽相同,常用的方式包括在Fastboot模式下刷入和使用专用刷机工具刷入。(3)进入第三方Recovery:完成Recovery分区刷写后,使用快捷键组合进入Recovery模式,即可获取root权限。8.3.1获取root权限

8.3.2绕过Android设备密码在很多实际取证操作中,Android手机设置了密码或者由于调查对象特殊等原因,无法获知设备密码,在这种情况下,取证分析人员必须通过技术手段绕过或者恢复出手机密码才可以开展进一步的取证工作。8.3Android密码绕过与物理取证

1. Android操作系统的密码类型通常情况下,Android操作系统允许用户设置三种类型的屏幕锁定,分别是图案密码、数字密码、混合密码。随着手机功能的不断丰富,很多新款Android手机也提供了基于生物特征的密码功能,比如指纹密码、人脸识别密码、声纹密码以及虹膜密码等,但是在使用这些生物特征作为解密凭据时,必须依赖上述三种形式的密码作为基础密码。8.3.2绕过Android设备密码俗称“九宫格”密码,使用9点连线形成的组合图形作为密码。图案密码混合密码也称为文本密码,允许用户使用任意文本字符作为密码(包括数字、大小写字母和符号等)。数字密码采用纯数字形式的密码,一般要求至少由4位数字组成。Android操作系统的密码类型

2. 图案密码的加密原理(Android2.2至Android5.x)图案密码的加密方式主要分为“图案输入”、“明文转换”、“计算散列”三个步骤,举例来说:(1)用户设置图案密码“Z”字母图形,如8-24图所示。(2)系统按照点位排列将上述图案依序转换为00-01-02-04-06-07-08;(3)对这个顺序字符串00010204060708进行SHA-1散列计算,得到散列值6a062b9b3452e366407181a1bf92ea73e9ed4c48;(4)将该散列值存储为gesture.key文件。8.3.2绕过Android设备密码

图8-24设置图案密码8.3.2绕过Android设备密码

3.数字密码与混合密码加密原理(Android2.2至Android5.x)(1)用户输入文字密码“hello123”;(2)系统在字符串中混入Salt值;(3)将整合后的字符串分别计算SHA-1和MD5散列,并将散列值合并;(4)合并后的散列值存储为password.key文件。8.3.2绕过Android设备密码

在Android6.0以及之后的版本中,针对设备屏幕锁密码的安全机制做了进一步加强,在原有基础上引入了Gatekeeper机制,用于校验和加密原来的设备密码,用于存储密码的文件名称也做了变更。8.3.2绕过Android设备密码

4.清除key文件实现密码绕过了解了三种密码的加密原理,便可以通过删除对应加密方式的密码文件,实现对于系统密码的绕过操作,如果该设备已经通过不同方式获取了root权限,则可以直接使用adb命令对“gesture.key”、“password.key”等文件进行重命名或删除来实现清除设备锁密码。例如,使用如下命令删除图案密码的key文件。adbshellcd/data/systemrmgesture.key删除后可以直接绕过图案密码进入系统。8.3.2绕过Android设备密码

5.Android4.4.2版本adb密码绕过据安全研究机构的报告,Android4.4.2版本在屏幕密码锁定的情况下,可以通过重启adb指令来实现无密码授权adb连接,具体操作方式是:(1)将密码锁定的Android4.4.2手机连接计算机;(2)将屏幕滑动至“紧急拨号”或“相机”界面;(3)执行如下命令:adbkill-serveradbshell8.3.2绕过Android设备密码

(4)此时,授权USB调试连接的对话框将直接跳出,无需输入密码即可点击允许USB调试连接。对Android手机的密码进行绕过,目的主要是为了进入用户界面,从而可以与系统交互进行多数逻辑取证工作,而如果Android手机版本较高、无有效获取root权限的方式,则需要考虑选择对设备制作物理镜像的方式来提取所需数据。8.3.2绕过Android设备密码

8.3.3Android物理镜像的提取针对Android手机进行物理提取通常可以采用以下几种方法,下面分别进行介绍与演示。1. 已root设备制作镜像在以获取root权限的情况下,可以直接使用dd命令对Android手机指定分区进行物理镜像。8.3Android密码绕过与物理取证图8-25 shell下枚举分区连接手机并开启调试模式,在命令行中输入adbshell,su,使用“mount”枚举手机中所有分区信息:8.3.3Android物理镜像的提取

从输出结果中可以看到,该手机对应的分区挂载信息,包括system系统分区,userdata用户分区以及cache缓存分区等,其中用户数据分区挂载点为:/dev/block/platform/msm_sdcc.1/by-name/userdata,使用dd命令,可以将userdata分区数据进行物理镜像操作。ddif=/dev/block/platform/msm_sdcc.1/by-name/userdataof=/sdcard/data.img通过执行上述命令,userdata分区将会被转出为镜像文件,保存至手机SD存储卡中。8.3.3Android物理镜像的提取

2.联发科MTK处理器手机提取物理镜像联发科技(MediaTek,简称MTK)是台湾地区的芯片制造商,其芯片产品主要面向无线通信以及数字多媒体产品。在Android智能手机普及前,其中低端手机芯片解决方案占据了国内市场份额的大半。目前,联发科解决方案覆盖了从高端到中低端Android手机;通过联发科的底层刷机工具“SPFlashTool”,可以针对采用指定联发科处理器方案手机进行分区镜像下载。8.3.3Android物理镜像的提取

我们以采用联发科MT6797的某款国内品牌手机为例,在取证计算机端安装“SPFlashTool”工具并运行,随后,在其中选择对应的处理器型号,指定对应的分散加载文件(scatterfile),分散加载文件用于描述该型号处理器的存储中各个block的范围,取证人员可以在其他同样使用MT6797处理器的手机中导出。8.3.3Android物理镜像的提取图8-26使用MTKSPFlashTool下载MTK手机分区镜像8.3.3Android物理镜像的提取8.3.3Android物理镜像的提取加载完毕后,下方列表展示了该手机存储中对应的分区信息,选择用于保存用户数据的“userdata”分区,随后点击“Download”按钮,将需要制作镜像的手机关机后使用数据线连接,即可开始镜像下载。

3. 高通处理器手机提取物理镜像高通(Qualcomm)公司是全球移动通信行业的领军企业,其面向移动终端的“骁龙(SnapDragon)”系列处理器被广泛用于中高端Android智能手机;与联发科类似,针对部分型号的高通手机,也可以使用厂商的底层刷机工具提取手机的物理镜像。高通面向手机维修与售后人员提供了QualcommProductSupportTool(QPST)支持工具包,其中所包含的QualcommFlashImageLoader(QFIL)工具可以直接下载采用高通处理器手机的物理镜像。8.3.3Android物理镜像的提取

使用高通镜像下载工具下载镜像,需要手机进入高通9008模式,根据手机的不同,可分别采用“adbrebootedl”方式、Fastboot方式或使用专门的“9008数据线”进入该模式。手机进入9008模式后,可以在设备管理器中识别到该设备名称“QualcommHS-USBQDLoader9008”。8.3.3Android物理镜像的提取图8-27高通9008模式设备识别8.3.3Android物理镜像的提取图8-28

高通QPST中的QFIL工具8.3.3Android物理镜像的提取随后打开QFIL镜像下载工具,使用该工具下载镜像还需要选择手机对应的“*.mbn”文件和,通过下载该手机官方提供的线刷刷机包,可以直接提取出对应的文件。图8‑29QFIL工具查看手机分区8.3.3Android物理镜像的提取如提供的“*.mbn”无误,接下来直接使用QFIL中的分区查看器浏览手机存储中的分区情况。图8-30 QFIL下载userdata分区向下拖动,找到主要用于保存用户数据的userdata分区,选择读取该分区数据。待下载结束后,即可获取完整的userdata分区物理镜像。8.3.3Android物理镜像的提取

8.3.4获取Android外置存储设备镜像在部分Android手机上,除了使用内置的存储外,还允许用户插入额外的扩展存储卡来存储数据,目前较为常用的是MicroSD存储卡(也称TF存储卡),用户不仅可以将Android手机拍摄的图片视频等多媒体文件存储在扩展存储卡中,App也可以将自身数据存储在扩展存储卡中;在进行Android手机取证时,如手机使用了外置扩展存储卡,也应对存储卡制作物理镜像,便于后续进行删除恢复和数据分析工作,同时避免遗漏数据。Android系统中的外置扩展存储卡一般采用FAT32/exFAT文件系统,这样有助于数据在手机与计算机之间进行数据传输共享,所以,对外置存储卡制作镜像的方法可以使用Winhex/FTKimage等进行镜像。8.3Android密码绕过与物理取证

8.3.5Android物理镜像的分析通过前面两节中演示的方式,当完成了Android手机物理镜像的提取后,取证人员可以不受限制地对镜像文件进行分析,以主要保存用户数据的userdata分区为例,该分区使用了Linux系统中常见的ext4文件系统,这就意味着,使用绝大多数计算机取证软件、手机取证软件甚至使用普通磁盘工具都可以对其进行分析。本节中,我们分别使用磁盘编辑工具、开源取证工具、计算机取证软件、手机取证软件介绍如何解析Android物理镜像文件。8.3Android密码绕过与物理取证

1.使用磁盘编辑工具Winhex分析Android物理镜像Winhex是电子数据取证与数据恢复工作中常用的一款磁盘编辑工具,支持多种常见的文件系统解析,利用Winhex的镜像文件转换功能,取证人员可以在转换后的文件结构中提取需要分析的文件。8.3.5Android物理镜像的分析图8-31使用WinHex将镜像文件转换为磁盘8.3.5Android物理镜像的分析

在Winhex中打开Android手机物理镜像,此处我们使用上一节中通过高通9008模式下载的userdata镜像为例,打开后,使用Winhex菜单中“Specialist”→“InterpretImageFileAsDisk”功能将镜像文件转换为磁盘。8.3.5Android物理镜像的分析图8-32 WinHex解析后的磁盘结构8.3.5Android物理镜像的分析

解析完成后即可根据需要在相应的路径进行数据导出操作,提取文件进行进一步分析,如应用程序数据包、系统逻辑数据等。2.使用开源取证工具Autopsy解析Android物理镜像Autopsy是一款开源的免费图形界面取证工具,其具备了案例管理、证据解析和分析等一系列完整的取证功能,该软件最新版本可以从/

下载。完成Autopsy后打开,并建立案例,8.3.5Android物理镜像的分析图8-33在Autopsy中新建案例8.3.5Android物理镜像的分析图8-34添加镜像文件随后,添加提取过的Android物理镜像文件。8.3.5Android物理镜像的分析图8-35选择分析模块8.3.5Android物理镜像的分析

Autopsy处理完成后,展开软件左侧树形视图可以展示出该Android物理镜像的存储结构,可以进一步选择导出文件进行分析,也可以利用Autopsy自带的搜索功能,搜索指定的关键词或手机号码、邮箱地址等信息。8.3.5Android物理镜像的分析图8-36 Autopsy解析结果8.3.5Android物理镜像的分析

3. 使用计算机取证软件分析Android物理镜像无论是Android操作系统还是iOS操作系统,移动终端操作系统与桌面操作系统具有诸多相似之处,尤其在于文件系统方面,Android操作系统所使用的文件系统主要包括Linux文件系统ext以及Windows文件系统格式FAT32,这就意味着即便是并非来源于计算机硬盘,Android物理镜像也一样可以使用计算机取证软件进行解析和分析。值得一提的是,近年来随着移动终端的普及,主流的计算机取证软件也逐渐增加了对于手机等智能移动终端的数据分析功能;本节我们选用EnCase为例,演示使用计算机取证软件分析Android物理镜像。首先在EnCase中新建案例,在添加Android物理镜像时需要注意,EnCase7及以后的版本中,添加包括DD、Bin、Img等扩展名在内的各类非E01证据镜像,需要使用“AddRawImage(添加原始镜像)”功能加载。8.3.5Android物理镜像的分析图8-37 在EnCase中加载Android物理镜像加载完毕后,便可利用EnCase进行文件分析、关键词搜索、数据恢复、全文索引等分析工作。8.3.5Android物理镜像的分析

4.使用手机取证软件分析Android物理镜像工欲善其事必先利其器,除了使用通用型的工具辅助对Android物理镜像进行解析和分析之外,我们还可以直接使用专用的手机取证软件对Android物理镜像进行分析。目前市面上主流的商业版手机取证产品几乎都具备从逻辑提取到物理提取、镜像分析在内的所有功能,并可以直接进行手机App应用解析及删除恢复。本例我们选择使用美亚柏科“DC-4501手机取证系统”演示如何使用专业的手机取证工具解析提取的物理镜像。8.3.5Android物理镜像的分析图8-38 DC-4501手机取证系统添加Android物理镜像8.3.5Android物理镜像的分析图8-38 DC-4501手机取证系统添加Android物理镜像8.3.5Android物理镜像的分析打开DC-4501手机取证系统(后文简称“手机取证系统”),新建案例,并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论