Android取证:adb push

adb 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 application。

 

push

install

目录

System/app

Data/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 Pro

MyBackup Pro是一款简单却强大的备份工具,能够备份你的软件、通讯录、呼叫历史、书签、信息、设置、桌面快捷方式、闹钟音乐播放列表等等到SD卡或云端,备份和还原都很方便。

很有趣的是,这一款应用软件不但可以在Android上运行,而且还可以在windows mobile、黑莓上运行。用户可以将数据备份在一个平台上,然后在另外一个完全不同的平台上进行恢复。如果将终端设备的备份保存在本地,RerWare会在SD卡上保存一个SQLlite文件。

不论是否有备份应用软件,取证分析师都必须确定是否安装了任何备份应用软件,而如果有的话,备份数据保存在哪里,与其他的终端设备如个人计算机或笔记本电脑一样。很明显,保存在备份中的数据对于取证检查来说具有巨大的价值。

adb backup

Android 从 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.tar

8、现在,由于我们获得了.tar文件,我们可以使用tar xvf简单解压它。

9、一旦它解压完成,我们可以访问apps/[h..]下的db文件夹,来获取数据库。 这里,程序包名称为com.h..。

让我们快速使用ls -l来查看db文件夹中的所有可用文件。

Android取证:android手机falsh物理镜像获取概述

这里引用在一篇博客上看到的一个利用adb连接漏洞提取镜像的思路:内容来源:https://blog.csdn.net/cl079074282/article/details/8942985

ADB连接漏洞:当Android手机和PC或其他设备通过USB连接,选择USB调试模式时,即使用户设置了开机密码和解锁图案,PC或设备仍可以通过ADB连接到手机,也即android系统没有对adb连接设置密码保护验证。

1、打开USB端口,用于设备和手机通过ADB协议通信,设备驱动层使用libusb等usb协议库实现了usb协议的细节,使得应用程序上层像操作串口和文件一样操作usb口。

2、通过端口向手机发送指令,打开ADB连接。

3、发送指令,打开ADB shell。

4、对手机进行root,获得操作手机的最高权限。

5、三种Root方法:ZergRush,Psneuter,fourrunnerStatic。

6、下载/proc/mtd MTD flash分区信息。

7、上传读取flash的apk,之后连接apk,和apk交互获得整个flash物理镜像。

8、过程中使用到adb工具,以及usb分析仪等抓包工具。

Android取证:供应商支持

Android现在已经得到很多商业的移动取证软件商家的支持。到目前为止,取证软件只能支持对Android终端设备进行逻辑检查,使用的是与AFLogical相同的内容提供商技术。对取证检查师来说,理解每一个取证软件商家如何实现对Android的支持,这对工作的开展很有帮助。

简单列举几个取证软件包(按照字母排列先后顺序)

Cellebrite公司的UFED

Compelson公司的MOBILedit

EnCase公司的Neutrino

Micro Systemation公司的XRT

美亚柏科的Forensics取证大师

云帆赢通的IEDF

UFED 手机取证设备支持约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.html

Android取证:使用logcat记录

Android logcat有时在取证调查期间很有用。它包括在电话以及收音机上执行的所有活动的日志。虽然不完整,它可以帮助调查员了解设备中发生了什么。

为了捕获和保存logcat转储文件,我们可以简单地使用adb logcat并将输出保存到一个文件,稍后我们可以分析它。

adb logcat
adb 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.txt

adb shell getprop

它将打印设备的属性

adb shell getprop > E:\ad\get.txt

以上对Android 取证技术的讲解,思路取材部分来源于网络以及《Android 取证实战》一书。

https://www.jb51.net/softs/555195.html

https://blog.csdn.net/y505772146/article/details/51291609

https://blog.csdn.net/wizardforcel/article/details/53576157

https://blog.csdn.net/cl079074282/article/details/8942985

Tags: .db文件、adb后台、Android、Android取证、APK、logcat记录、NANDroid备份、ROM、root访问、SD卡、SIM卡、sqlite工具、usb协议、供应商、存储、存储卡、工具、技术参数、数据、数据备份、数据库、数据拉取、文件扩展名、监控、移动网络运营商、解压、镜像获取

Android-APP 安全(六)之android取证相关推荐

  1. android app连接打印机程序,Android App新增打印机支持 手机打印就是爽

    初次看到这个东西,可能会误人为是移动硬盘或某人的午餐盒,但实际上,这是一台PoGo3*4打印机,既然是打印机那就是用来打印的喽,可是连接线在什么地方?这玩意到底怎么用,谁来教教我? 其实很简单,一台P ...

  2. android app自动锁屏,Android开机自动启动app 不锁屏

    Android开机自动启动app 不锁屏 发布时间:2020-07-17 03:22:20 来源:51CTO 阅读:2086 作者:清水禅石 主要参考:http://life173.blog.51ct ...

  3. android app英文 英文模式,Android APP 中英文切换

    实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...

  4. android app报错log,Android studio 解决logcat无过滤工具栏的操作

    在logcat标题栏右键先windows mode,这时多数能恢复过滤工具栏,要恢复之前的停靠样式再同样点右键去掉windows mode的勾即可 补充知识:Android studio底部Logca ...

  5. android app 重启消失了,android平板重启apk消失不见

    重启平板,FactoryTest软件消失不见,查看log: 03-14 19:15:30.020: I/PackageManager(360): /system/app/FactoryTest.apk ...

  6. android app 图片资源,巧用Android图片资源,打造更精致的APP

    前言 由于android系统的开放性,以及IOS的相对封闭.第三方设备想要使用苹果的OS,目前来说是不可能.所以,各厂商纷纷的投入了android的怀抱, android阵营也越来越强大,如今移动操作 ...

  7. android app根目录下cache,Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法...

    一.基础知识 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的. 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中. 这样当该应用被 ...

  8. android app数据存储,基于Android开发的APP数据存储研究

    谢原武+龙文 摘要: 作为一个完整的应用程序,数据存储操作是必不可少的.Android系统一共提供了四种数据存储方式分别为File文件存储.Shared Preferences存储.ContentPr ...

  9. android app启动流程分析,Android应用开发之Android 7.0 Launcher3的启动和加载流程分析...

    本文将带你了解Android应用开发Android 7.0 Launcher3的启动和加载流程分析,希望本文对大家学Android有所帮助. Android 7.0 Launcher3的启动和加载流程 ...

  10. android app的安装和android app的卸载

    背景Android应用安装涉及到如下几个目录 1.system/app 系统自带的应用程序,无法删除. 2.data/app 用户程序安装的目录,有删除权限.安装时把apk文件复制到此目录. data ...

最新文章

  1. 中科院王斌教授加入小米,任自然语言处理首席科学家
  2. centos ***二
  3. U盘中的autorun.inf
  4. 测试php程序运行时间
  5. 第四百一十四节,python常用算法学习
  6. 【转载】IIS网站配置不带www域名直接跳转带www的域名
  7. Linux内核spin_lock与spin_lock_irq分析
  8. velocity模板引擎 -- java.io.FileNotFoundException: velocity.log (Permission denied)
  9. LIGHTOJ 1044(动态规划)
  10. python内置作用域_python内置金融数据Python 五点搞定作用域
  11. swfobject.js视频播放插件
  12. c#给定编码中的字符无效_C#程序检查给定的字符串是否等于(==)运算符
  13. 手把手教你搭建开发环境之Java开发
  14. JavaScript学习笔记:数组
  15. 为什么eolinker发送老是等待_eolinker之初体验
  16. 【汇编基础】SIMD除法的实现
  17. 叶俊——“新零售·新未来”米友圈第九届全国精英总裁班授课圆满落幕
  18. 基于高德地图JsAPI进行浏览器精确定位,实现手机端考勤打卡功能
  19. JDK和JRE区别 --学而不思则罔
  20. 美国麦当劳“四川辣酱”将再次回归;“澳大利亚制造”巧克力要崛起;中国食品行业首个“零碳工厂”诞生 | 食品饮料新品...

热门文章

  1. GridView 对列进行排序
  2. SPSS典型相关分析案例
  3. android 4.4新功能介绍(Kitkat)
  4. 红米note5系统Android11,红米Note5 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...
  5. VMware系列序列号
  6. 室内环境空气质量监测系统
  7. axis调用webservice
  8. 计算机组装配置兼容,菜鸟DIY装机必须注意的五大硬件兼容性问题
  9. 【事件相机整理】信号处理、噪声与滤波
  10. 手机锁屏密码忘了怎么办 锁屏密码破解法