Android取证:使用ADB和DD对文件系统做镜像

标签: 终端安全 adb Android取证 | 发表时间:2019-01-10 15:00 | 作者:secist
出处:https://www.freebuf.com

AndroidForensic.jpg

从本文开始我将为大家带来一系列与数字取证相关的文章,并将重点关注移动设备方面的取证技术。在这篇文章中,我将为大家分享一些关于我对Android设备镜像采集的想法。在Android设备上,有两种我们可以执行的镜像采集类型:

实时采集:在正在运行的设备上执行。通常,分析人员会使用各种工具获取root权限,并使用DD提取镜像;

死采集:在设备上执行启动到另一个状态。例如,如果设备安装了ClockwordMod,则分析人员可以重启设备恢复并获取root shell。

在本文中我将为大家展示如何执行Android data分区的实时采集。

注意:为了执行过程的顺利,设备必须已获取root权限。

Root Android

如今,root Android设备已成为一种非常普遍的现象,在我的取证工作中我经常会碰到已root的手机设备。此外,在某些情况下为了提取某些数据,取证人员必须要自己root设备。Root的过程特定于每个手机型号,Android版本以及内部版本号,因此想要成功root必须根据你的手机型号找到合适的工具。

大多数现代Android手机都可以使用一款名为KingoRoot的工具获取root权限,如果你的手机并不适用(bootloader锁定,Knox等),你可以在 XDA Developers上寻求帮助。

Android root软件有时会使用恶意软件重新打包一些可能不需要的程序,这可能会改变文件系统,必须在分析过程中进行过滤。因此,为了安全起见我建议大家,只在官方方法不起作用时再使用这些软件。

镜像 /data 分区

我们将使用“dd”工具来完成我们的工作。默认情况下,“dd”在Android的“/system/bin”目录下。

为了限制设备文件系统的更改,镜像将使用NetCat创建的隧道传输到工作站。

因此,root后的第一步必须先安装Busybox( 在这里下载),这是一个集成了三百多个最常用Linux命令和工具的软件。

下载busybox Apk后,使用adb命令在设备上进行安装:

  adb -d install BusyBox.apk

然后,连接到手机并检查root访问权限:

  adb -d shell
ls /data
su
ls /data

我们使用 ls /data来测试我们是否可以访问受保护的目录。

第一次运行它时,应该会出现失败的情况。我们使用 su命令将用户切换到root。然后,再次使用 ls /data命令进行测试看现在我们是否可以访问受保护的目录。

接下来,我们需要检查设备上已安装的分区:

  root@VF-895N:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,size=450904k,nr_inodes=112726,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,size=450904k,nr_inodes=112726,mode=750,gid=1000 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,size=450904k,nr_inodes=112726,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,seclabel,relatime,size=450904k,nr_inodes=112726,mode=755,gid=1000 0 0
/dev/block/bootdevice/by-name/system /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0
/dev/block/bootdevice/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,relatime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/bootdevice/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/bootdevice/by-name/persist /persist ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/bootdevice/by-name/tctpersist /tctpersist ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/bootdevice/by-name/modem /firmware vfat ro,context=u:object_r:firmware_file:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/dev/fuse /storage/uicc1 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /storage/uicc0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /storage/usbotg fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:65 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/fuse /storage/sdcard1 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

我们重点来关注data分区,在本例中为“ /dev/block/bootdevice/by-name/userdata”。

接下来,我们需要设置工作站和移动设备之间的连接路由,转发端口为8888。

在工作站上运行:

  adb forward tcp:8888 tcp:8888

现在让我们使用“dd”启动镜像过程并使用netcat管道传输数据。

在手机设备的root shell下运行:

  root@VF-895N:/ #dd if=/dev/block/bootdevice/by-name/userdata | busybox nc -l -p 8888

并在取证工作站上运行:

  nc 127.0.0.1 8888 > android_data.dd

镜像过程完成后,将如下图所示:

image-1.png

然后,我们可以使用sleuthkit或Autopsy对镜像进行分析。

image-2.png

*参考来源: andreafortuna,FB小编secist编译,转载请注明来自FreeBuf.COM

相关 [android adb dd] 推荐:

Android取证:使用ADB和DD对文件系统做镜像

- - FreeBuf互联网安全新媒体平台
从本文开始我将为大家带来一系列与数字取证相关的文章,并将重点关注移动设备方面的取证技术. 在这篇文章中,我将为大家分享一些关于我对Android设备镜像采集的想法. 在Android设备上,有两种我们可以执行的镜像采集类型:. 实时采集:在正在运行的设备上执行. 通常,分析人员会使用各种工具获取root权限,并使用DD提取镜像;.

Linux下安装android手机ADB驱动

- - CSDN博客移动开发推荐文章
本文是自己学习所做笔记,欢迎转载,但请注明出处: http://blog.csdn.net/jesson20121020. 在Linux下开发安卓,少不了要用到真机进行调试,测试,所以首先要保证Linux能驱动你的手机,驱动安装步骤如下:. 检测你的Linux是否能驱动你的手机.               如果你已经下载sdk,但未加入环境变量,那么你可以进入sdk目录下的platform-tools文件夹下找到adb,比如我的adb目录为/home/jesson/develop/adt-bundle-linux-x86-20131030/sdk/platform-tools/,这时在终端输入:    .

Windows下ADB使用相关问题

- - CSDN博客移动开发推荐文章
Windows下ADB使用相关问题. 在Windows XP,WIN7下均可按本文操作进行;WIN8下没有进行实验,但操作设置大致相同,除了第4步,adb_usb.ini的位置可能有所不同以外,其他各部分可按文中所述进行操作. Windows下正常使用ADB要注意以下问题:. 1.      手机端要打开调试模式.

自制 DD-WRT 固件笔记 (1)

- Leo Pay - fcicq's blog-beta
这实在不属于 Wireless Series, 显然是个技术活…. 去年年初有篇 说说 OpenWRT,. 但好像不到二月份这只 wr841n v5 就变砖了, 也没好意思去再修.. (刷回原厂固件时, 误刷了带 u-boot 的版本, 不断重启). 最近买了 usb-ttl 线, 于是就救回来了.

linux用dd测试磁盘速度

- -
linux用dd测试磁盘速度. 首先要了解两个特殊的设备:. /dev/null:回收站、无底洞. /dev/zero:产生字符. 因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力. 因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力.

正确的使用dd进行磁盘读写速度测试

- - 操作系统 - ITeye博客
正确的使用dd进行磁盘读写速度测试. dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,所以可以用来测试硬盘的顺序读写能力. 功能说明:读取,转换并输出数据. 语  法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][--help][--version].

Android 遥控车

- CasparZ - LinuxTOY
您确定您真的会用 Android 手机玩赛车. 16 岁的法国学生 Jonathan Rico 使用 Android 手机通过蓝牙实现了对改装玩具汽车的遥控. 操控的方式和那些标榜的智能手机游戏一样,使用重力感应,差别是这次控制的是现实世界中的遥控汽车. 收藏到 del.icio.us |.

Android免费?毛

- Ruby - FeedzShare
来自: 36氪 - FeedzShare  . 发布时间:2011年08月17日,  已有 2 人推荐. 微软CEO Steve Ballmer在预测竞争对手产品时通常口无遮拦. 比如他去年抨击Google的Android战略时,很多人都不屑一顾. 接着Android蚕食了微软的地盘,后来又开始侵犯苹果的地盘.

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.