从本文开始我将为大家带来一系列与数字取证相关的文章,并将重点关注移动设备方面的取证技术。在这篇文章中,我将为大家分享一些关于我对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

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

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

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

Android提取分区镜像命令,Android取证:使用ADB和DD对文件系统做镜像相关推荐

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

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

  2. android动态分区AB升级,Android A/B 系统升级简介

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 来源:https://pengzhangdev.github.io/Android-AB-system-update/ ...

  3. android动态分区AB升级,Android A/B System OTA分析(四)系统的启动和升级

    Android从7.0开始引入新的OTA升级方式,A/B System Updates,这里将其叫做A/B系统,涉及的内容较多,分多篇对A/B系统的各个方面进行分析.本文为第四篇,系统的启动和升级. ...

  4. Android 动态分区详解(七) overlayfs 与 adb remount 操作

    0. 导读 最开始学习 Android 动态分区源码的时候,比较代码发现 system/core/fs_mgr 目录下多了一个名为 fs_mgr_overlayfs.cpp 的文件,一直不知道什么时候 ...

  5. android 8.0 ps 命令,全网最全adb命令 - osc_8exjk9uk的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.查看adb版本 adb version C:\Users\Administrator>adb version Android Debug Bridge version 1.0.41 Vers ...

  6. android sd卡挂载命令,android - 从android中的adb shell手动挂载SD卡 - 堆栈内存溢出

    我有一个Android 4.1手机(联想820). 经过一些旨在对内部SD ram进行分区的更改(更改后,手机将不再安装外部 SD卡.我很擅长Linux,但我从未见过Android shell. 我很 ...

  7. android提取图片颜色代码,Android 中动态提取图片中颜色作为主题色

    功能需求 一个页面中顶部显示一张图片(图片从网络加载),此时需要根据图片的颜色来动态调整顶部标题栏的背景色. 技术要求 Android 调色板支持库 实现过程 1.添加调色板支持库 dependenc ...

  8. android 提取aac音频,使用Android流式传输AAC音频

    此解决方法允许您从网络播放M4A文件(以及其他容器(如MP4和3GP)中的AAC文件).它只需从缓存下载文件并播放. private File mediaFile; private void play ...

  9. Android 格式化分区命令

    mkfs.vfat  /dev/block/mmcblk0pxxxx           格式化某分区为vfat格式 busybox mkfs.vfat  /dev/block/mmcblk0pxxx ...

  10. adb(Android debug bridge)命令

    From:https://www.cnblogs.com/huanyou/p/5133737.html ADB 用法大全: github 地址:https://github.com/mzlogin/a ...

最新文章

  1. 环形动画加载视图AnimatedCircleLoadingView​​​​​​​
  2. 《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”
  3. MariaDB CEO 痛斥云厂商对开源的无尽掠夺,从不回馈社区
  4. 024_JavaScript数组
  5. 组会PPT20200522《Summary of Study and Research from May 8 to May 21》
  6. 让电脑开机时直接登录
  7. 小白学数据分析------日活跃人数分析
  8. msbuild构建步骤_如何按照以下步骤构建最终的AI聊天机器人
  9. 阿里云 超级码力在线编程大赛初赛 第2场 题目1. 三角魔法
  10. 搭建自己的Unity Package
  11. rose-scanning reading
  12. C#调用C++编写的dll库
  13. php实现观看记录,PHP实现浏览历史记录
  14. 充分统计量(Sufficient Statistics)
  15. iso12233测试方法_ISO12233分辨率图像测试卡使用时拍摄方法
  16. PHP高并发高负载下的3种实战场景解决方法
  17. vivado之FFT ip核的入门学习
  18. 中国微观企业实证研究常用指标集合(2000-2020)
  19. Thinkpad T430 Win8 换 Win7
  20. css让四个div并排显示,css如何让两个div并排显示?

热门文章

  1. 变电所、分区所、AT所
  2. c语言 标准正态分布表,标准正态分布表
  3. 卡尔曼滤波算法-Kalman filter
  4. 利息基础理论 - 寿险精算(2)
  5. 《暗时间》经典(一)
  6. ETL(SSIS)组件使用
  7. 这个开源好用的数据库建模工具,让我眼前一亮
  8. t-SNE可视化-Python实现
  9. ec6108v9a精简刷机包_新版华为悦盒EC6108V9E、V9I第三方精简流畅无安装限制固件
  10. 雷蛇键盘灯光配置文件_三模连接一步到位,游戏宅女必备的雷蛇电竞外设套装...