上一篇Android-APP 安全(五),通过对android系统文件系统与数据结构的认识(应用程序运行时产生的数据、数据的存储方式、存储路径、内存中可能包含的应用程序用户数据、android使用的文件系统以及查看方式等)可以尝试手工对android系统进行检查取证,手工取证虽然繁琐以及耗费时间,但是却能更好的了解android系统下面是针对android系统的两种取证方式:逻辑采集以及物理采集的快速取证的介绍我在Android-APP 安全(四)中对逻辑采集以及物理采集的概念有过提到:Android取证:adb pushadb push用于将文件系统的不同部分复制到工作站中进行进一步分析除非对android终端设备具有root访问权限,或者运行的是一个定制的只读内存(ROM),否则,运行在终端设备上的adb后台进行只能在拥有shell访问权限的状态下运行,因此,它无法访问某些与取证更加相关的文件但还是可以访问到一定数量的文件如果需要对某些shell用户没有访问权限的文件进行访问,很简单,这些文件不会被复制出来但是,如果拥有足够的访问权限,这个方法就非常简单,也非常有效由于大多数的手机都没有root权限(至少默认情况下),此技术显得没有什么价值然而,这是一个非常强大的、需要很好理解的工具,也有一些场景非常适合应用此技术这些场景包括:对于没有root访问的终端设备,adb pull仍然可以用来访问非常有用的文件(如未加密的应用程序)、大多数可能包含诸如浏览器记录一类用户数据的tmpfs文件系统以及存在于/proc、/sys及其他可读目录下的系统信息对于具有root访问权限的终端设备,获取几乎所有的目录非常简单,某些存在于/data下的文件和目录将是有用的当使用物理技术时,挂在诸如YAFFS2之类用于取证的文件系统不一定总是可行的如果adb运行在root访问权限下,则可以使用adb pull快速地抽取文件系统的一个逻辑副本由于adb不但在Android软件开发套件(SDK)中是一款免费的应用程序,而且它的用途非常广泛,因此,adb应该作为使用的终端设备上的主要逻辑工具之一注:某些使用adb的递归拉取可能在数据传输过程中失败,可能由于访问权限问题或者其他问题因此,对于执行命令的结果要进行密切监控,以确定是否遇到任何问题将对一个大目录的递归拉取分解为若干个小的数据拉取也许会产生更好的结果在之前文章Andorid-APP 安全测试(二)中进程注入保护部分就需要用到adb push以及adb pull,但是并未提及太多输入命令adb remount ,意思是将设备改为可读可写;显示remount succeeded就代表命令执行成功;这里做一个引申:Android中adb push和adb install的使用区别在Android实际开发中,经常会使用adb命令,安装应用程序可以使用adb push 或者adb install下面就来讲讲这两种安装方式的区别1、adb push 能够指定安装目录比如执行”adb push xxx.apk system/app” 后,xxx.apk被安装到了system/app目录下,此目录下的软件为system application(注意,system/app是只读的,所以只有有root权限才能push apk进去,而且在push进去的apk会把原本的apk覆盖掉)adb push本身的意思是将文件复制到系统中的某个文件夹下,但是将apk push到system/app下并且重启手机以后会注册应用程序2、adb install 用此命令安装的软件位于 data/app 目录,带有参数 -r才能强制安装,为user applicationpushinstall目录System/appData/app权限系统级(权限全开)用户级(没全开)卸载root后删除可卸载大小无限制,自定义有限制安装pm重新注册不会重新注册Android取证:手动转储应用的数据库上面已经介绍到,使用adb pull帮助我们进行数据转储我们还可以使用adb 和我们的手动技能从设备中提取一些信息前面学到,应用程序文件存储在/data/data/[应用程序的报名]/位置大多数应用程序都使用数据库来存储数据,我们在做渗透测试时分析本地敏感文件的存储时都会注意到/data/data/[应用程序的报名]/databases的文件夹然后将.db文件格式的文件导出到本地用sqlite工具打开手动提取步骤:(我在我前面文章Andorid-APP 安全测试(二)中有详细介绍:https://www.secpulse.com/archives/76102.html注:这里我们可以使用一个简单的命令行绝技来查找和复制/data/data中的所有.db文件首先使用find命令查找所有.db文件:find . –name “.db” –type f如图:(打码很专业~)然后可以简单的时候cp和find复制:find . -name \".db\" -type f -exec cp {} E:\ad \;Android取证:数据备份在Android第一次被推出时,Android没有提供任何备份个人数据的机制后果就是,很多人开发出备份应用软件,并在Android市场上进行发布对于使用定制的只读内存(ROM)的用户,甚至开发出了一款更加强大的叫做nandriod的备份应用介绍下nandriod:NANDroid,如何加载NANDroid备份?什么是Nandroid备份?基本上,它是您的Android设备的镜像Nandroid备份将绝对保存您设备上的所有内容,包括图片,音乐,铃声,系统设置,存储的密码等你将有一个完整的复制品你手机上的一切这还包括您的自定义ROM的副本,您的游戏和您的进度一个完整的体统镜像可以被重新刷回手机其不仅仅是简单备份,因为他包含了当前在你手机内存里的所有内容:Boot、Recovery、系统、数据、缓存,等他是你手机整个ROM的快照执行NANDroid备份的方法:进入clockwork recovery,进到“Backup and Restore”选项中执行NANDroid备份将会被保存在sd卡ClockworkMod文件夹内如何加载NANDroid备份?如果你可以进入clockwork recovery的话,只需简单的从他的菜单里加载NANDroid如果你的手机变砖从而无法进入clockwork recovery的话,也有最后一个方法:单独下载clockwork recovery至PC里,然后打开cmd控制台,进入存有clockwork recovery的目录,使用以下ADB命令刷写:“fastboot flash recovery recovery-clockwork-2.5.1.2-vision.img”(前提是你的PC上有ADB环境,不过好像这招对白卡解锁的机器无用)如何创建Nandroid Backup:1.通过按音量调低和电源按钮(可以使用大多数设备)启动引导加载程序2.启动进入恢复模式3.打开备份和还原4.选择备份,如果有足够的空间备份进程将开始一旦备份过程结束,您将被带到CWM主屏幕很多这些备份软件都有一个“Sava to SD Card”的选项,还有几个保存在“the cloud“的选项无论采用何种方式,用户需要亲自对他们的终端设备进行备份,在需要时又将备份的数据进行修复这不但是一个用户保护数据不受损害的方法,而且还是一个取证分析师可以获取大量数据的来源其中一个很流行的备份应用程序是RerWare公司的My Backup Pro,用于将终端设备上的数据在内容服务提供商处进行备份,如果具有root访问权限,还可以将整个/data/data中的文件进行备份用户可以选择是将数据保存在SD卡上,还是保存在RerWare的服务器上My Backup ProMyBackup Pro是一款简单却强大的备份工具,能够备份你的软件、通讯录、呼叫历史、书签、信息、设置、桌面快捷方式、闹钟音乐播放列表等等到SD卡或云端,备份和还原都很方便很有趣的是,这一款应用软件不但可以在Android上运行,而且还可以在windows mobile、黑莓上运行用户可以将数据备份在一个平台上,然后在另外一个完全不同的平台上进行恢复如果将终端设备的备份保存在本地,RerWare会在SD卡上保存一个SQLlite文件不论是否有备份应用软件,取证分析师都必须确定是否安装了任何备份应用软件,而如果有的话,备份数据保存在哪里,与其他的终端设备如个人计算机或笔记本电脑一样很明显,保存在备份中的数据对于取证检查来说具有巨大的价值adb backupAndroid 从 4.0 起引入了使用adb的备份功能 此功能可用于创建应用程序的备份及其整个数据 这在取证上非常有用,因为取证员可以捕获应用程序及其整个数据 请参阅以下步骤:1、这可以通过在终端中执行adb backup命令,后面附带应用程序的包名来完成 如果我们不知道应用程序的准确包名称,我们可以使用pm列出所有包,然后过滤应用程序名称2、执行此操作的另一种方法是使用pm list package命令,其中-f标志指定要在包名称中查找的字符串3、接下来,我们可以简单地使用应用程序的包名称,来备份任何我们需要的应用程序4、目标文件将以文件扩展名.ab(Android 备份)存储 在这里,我们采集了 h..应用程序的备份5、一旦我们运行命令,它将暂停,并要求我们在设备上确认,如下面的截图所示:6、在这里,我们需要选择Back up my data(备份我的数据)选项,并且还可以为备份指定加密密码 一旦备份过程完成,我们将获得22.ab文件7、接下来,我们需要解压此备份,以便从.ab文件获取数据库 为此,我们将使用dd和openssl创建一个.tar文件,然后我们可以解压它dd if=22.ab bs=24 skip-1 | opensssh zlib –d > 22.tar8、现在,由于我们获得了.tar文件,我们可以使用tar xvf简单解压它9、一旦它解压完成,我们可以访问apps/[h..]下的db文件夹,来获取数据库 这里,程序包名称为com.h..让我们快速使用ls -l来查看db文件夹中的所有可用文件Android取证:android手机falsh物理镜像获取概述这里引用在一篇博客上看到的一个利用adb连接漏洞提取镜像的思路:内容来源:https://blog.csdn.net/cl079074282/article/details/8942985ADB连接漏洞:当Android手机和PC或其他设备通过USB连接,选择USB调试模式时,即使用户设置了开机密码和解锁图案,PC或设备仍可以通过ADB连接到手机,也即android系统没有对adb连接设置密码保护验证1、打开USB端口,用于设备和手机通过ADB协议通信,设备驱动层使用libusb等usb协议库实现了usb协议的细节,使得应用程序上层像操作串口和文件一样操作usb口2、通过端口向手机发送指令,打开ADB连接3、发送指令,打开ADB shell4、对手机进行root,获得操作手机的最高权限5、三种Root方法:ZergRush,Psneuter,fourrunnerStatic6、下载/proc/mtd MTD flash分区信息7、上传读取flash的apk,之后连接apk,和apk交互获得整个flash物理镜像8、过程中使用到adb工具,以及usb分析仪等抓包工具Android取证:供应商支持Android现在已经得到很多商业的移动取证软件商家的支持到目前为止,取证软件只能支持对Android终端设备进行逻辑检查,使用的是与AFLogical相同的内容提供商技术对取证检查师来说,理解每一个取证软件商家如何实现对Android的支持,这对工作的开展很有帮助简单列举几个取证软件包(按照字母排列先后顺序)Cellebrite公司的UFEDCompelson公司的MOBILeditEnCase公司的NeutrinoMicro Systemation公司的XRT美亚柏科的Forensics取证大师云帆赢通的IEDFUFED 手机取证设备支持约1600 款的手机,其中包括使用 Palm、微软、黑莓和 Symbian 操作系统的型号,获取的重要数据,如电话本、照片、视频、音频、短信、通话记录、ESI 与 IMEI 信息等此设别便携式设计,可独立操作,无论在现场或实验室均能使用数据可以复制到任何标准的 SD 卡、USB 闪存,并能制成清晰的报告MOBILedit支持几千种不同的手机,包括如三星,HTC,诺基亚,索尼,LG 以及摩托罗拉等生产的普通手机它还支持所有的智能手机操作系统,包括 Android, iPhone, Blackberry, Symbian, Windows Mobile, Windows Phone, Bada, Meego, 中国手机和 CDMA 手机从 iPhones 和 Androids 中提取数据MOBILedit 能够检索已安装的应用程序的列表,并为您提供访问所有应用程序数据,例如 Dropbox, Evernote, Skype, WhatsApp 等如果可能的话,它甚至能够从移动应用程序检索已删除的数据IEDF电子数据镜像ROOT、取证分析系统技术参数:https://blog.csdn.net/xCnhYKoHj3eK/article/details/80416124其余工具的了解请自行百度~Android取证:取证大师接上一个供应商取证:取证大师(Forensics Master),是厦门市美亚柏科信息股份有限公司自主研发的计算机取证拳头产品,国内第一个自主知识产权的计算机犯罪取证调查的综合软件提供电子证据固定、分析、报告生成等取证功能;提出了自动取证技术概念,并形成专业取证产品;多项全球领先技术创新(反取证软件检测、即时通讯软件综合调查等)在手机取证的过程中,第一步的工作是从手机各个相关证据源中获取有线索价值的电子证据手机的SIM卡、内存、外置存储卡和移动网络运营商的业务数据库一同构成了手机取证中的重要证据源取证大师手机取证源:1.SIM卡在移动通信网络中,手机与SIM卡共同构成移动通信终端设备SIM(SubscribeIdentityModule)卡即为客户识别模块,它也被称为用户身份识别卡移动通信网络通过此卡来对用户身份进行鉴别,并且同时对用户通话时的语音信息进行加密目前,常见SIM卡的存储容量有8kB、16kB、32kB和64kB这几种从内容上看,SIM卡中所存储的数据信息大致可分为五类:(1)SIM卡生产厂商存储的产品原始数据(2)手机存储的固有信息,主要包括各种鉴权和加密信息、GSIM的IMSI码、CDMA的MIN码、IMSI认证算法、加密密匙生成算法(3)在手机使用过程中存储的个人数据,如短消息、电话薄、行程表和通话记录信息(4)移动网络方面的数据中包括用户在使用SIM卡过程中自动存入和更新的网络服务和用户信息数据,如设置的周期性位置更新间隔时间和最近一次位置登记时手机所在位置识别号(5)其它的相关手机参数,其中包括个人身份识别号(PIN),以及解开锁定用的个人解锁号(PUK)等信息2.手机内/外置存储卡随着手机功能的增强,手机内置的存储芯片容量呈现不断扩充的趋势手机内存根据存储数据的差异可分为动态存储区和静态存储区两部分动态存储区中主要存储执行操作系统指令和用户应用程序时产生的临时数据,而静态存储区保存着操作系统、各种配置数据以及一些用户个人数据从手机调查取证的角度来看,静态存储区中的数据往往具有更大的证据价值GSIM手机识别号IMEI、CDMA手机识别号ESN、电话薄资料、收发与编辑的短信息,主/被叫通话记录、手机的铃声、日期时间以及网络设置等数据都可在此存储区中获取但是在不同的手机和移动网络中,这些数据在读取方式和内容格式上会有差异另外,为了满足人们对于手机功能的个性化需求,许多品牌型号的手机都提供了外置存储卡来扩充存储容量当前市面上常见的外置存储卡有SD、MiniSD和MemoryStick外置存储卡在处理涉及版权或著作权的案件时是一个重要的证据来源3.移动网络运营商移动网络运营商的通话数据记录数据库与用户注册信息数据库存储着大量的潜在证据通话数据记录数据库中的一条记录信息包括有主/被叫用户的手机号码、主/被叫手机的IMEI号、通话时长、服务类型和通话过程中起始端与终止端网络服务基站信息另外,在用户注册信息数据库中还可获取包括用户姓名、证件号码、住址、手机号码、SIM卡号及其PIN和PUK、IMSI号和所开通的服务类型信息在我国即将实行手机实名制的大环境下,这些信息可在日后案件调查取证过程中发挥巨大的实质性作用取证大师专业版取证流程,参考链接:https://www.jb51.net/softs/555195.htmlAndroid取证:使用logcat记录Android logcat有时在取证调查期间很有用它包括在电话以及收音机上执行的所有活动的日志虽然不完整,它可以帮助调查员了解设备中发生了什么为了捕获和保存logcat转储文件,我们可以简单地使用adb logcat并将输出保存到一个文件,稍后我们可以分析它adb logcatadb logcat > E:\ad\logcat.log看E:\ad路径下已经有logcat.log文件我们还可以使用logcat以更加详细和有用的方式获取日志,我们可以通过指定-p参数和radio来获取收音机日志-b标志用于显示缓冲区(如收音机或事件)的logcat-v标志用于控制输出格式,它代表verbose(详细),也可以是time,boref,process,tag,raw,threadtime或long除了-v,我们还可以使用-d(调试),-i(信息),-w(警告)或-e(错误)adb logcat –v time –b radio –d我们还可以使用其他工具,如dmesg,它将打印内核消息,以及getprop,它将打印设备的属性:adb shell dmesg它将打印内核消息adb shell dmesg > E:\ad\dmesg.txtadb shell getprop它将打印设备的属性adb shell getprop > E:\ad\get.txt以上对Android 取证技术的讲解,思路取材部分来源于网络以及《Android 取证实战》一书https://www.jb51.net/softs/555195.htmlhttps://blog.csdn.net/y505772146/article/details/51291609https://blog.csdn.net/wizardforcel/article/details/53576157https://blog.csdn.net/cl079074282/article/details/8942985作者:Lemon欢迎来安全脉搏查看更多的干货文章和我们一起交流互动哦
脉搏地址:安全脉搏 | 分享技术,悦享品质微博地址:Sina Visitor System
0 评论