forensics - make virtual machine with E01[ewf] files on OSX 2———— 电子取证 MAC OS平台仿真2
提示:和另一篇文章不同的思路,有新知识但是最重要的还是挂载方式的优化
挂载E01为raw文件
第一步安装 ewfmount,安装及环境要求可以参考上一篇文章
https://blog.csdn.net/your_olym/article/details/120856854?spm=1001.2014.3001.5501
# dsa @ '(^-^)' in ~ [19:11:26] C:130
$ sudo ewfmount -X volicon=/Library/Filesystems/osxfuse.fs/Contents/Resources/Volume.icns /Users/dsa/Downloads/检材1.E01 ~/tmp/11
sudo ewfmount -X volicon=/Library/Filesystems/osxfuse.fs/Contents/Resources/Volume.icns /Users/dsa/Downloads/检材1.E01 ~/tmp/11
将raw文件挂载到磁盘
# dsa @ '(^-^)' in ~ [18:40:27] C:1
$ sudo hdiutil attach -owners on -imagekey diskimage-class=CRawDiskImage -nomount ~/tmp/11/ewf1 -shadow sk
/dev/disk3 FDisk_partition_scheme
/dev/disk3s1 Linux
/dev/disk3s2 Linux_LVM
# dsa @ '(^-^)' in ~ [18:40:32]
$ cat sk
shdw��P%
sudo hdiutil attach -owners on -imagekey diskimage-class=CRawDiskImage -nomount ~/tmp/11/ewf1 -shadow sk
这一步是mac平台很重要的一步,主要就是实现了对E01挂载出来的只读模式的raw文件执行了一个扩展,通过建立shadow文件来使挂载出来的磁盘可读
因为mac下的FTK imager和win下的功能不一样,没有挂载的功能,而ewfmount挂载的raw文件也没有写的机会,就使在仿真系统时会出错,参考win下的FTK挂载时会产生cache文件,以此猜测FTK imager挂载时能够可写就是因为将E01作为backing file 然后在此基础上建立可写的文件,达到对挂载的磁盘可写的功能,从而能够对镜像进行一个仿真。
一点小改进
sudo qemu-system-x86_64 -drive file="/dev/disk3"
sudo qemu-system-x86_64 -machine accel=hvf -cpu host -machine type=q35 -smp 4 -m 4G -vga virtio -display default,show-cursor=on -usb -device usb-tablet -netdev user,id=net0 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27 -drive file="/dev/disk3"
偶然发现qemu模拟器可以对镜像进行模拟,然后vmware fusion对磁盘块的系统仿真过于困难,于是就经常使用qemu模拟启动,这样方便了很多,弊端是联网比较困难,需要认真研究研究。
题外拓展
在查看hdiutil相关资料之前,一直是在尝试将挂载后的文件进行一个可读的添加,试过两种方法,每种也尝试有个几天,第一种是qcow2文件,因为之前使用qemu的时候对,qemu-img的命令都详细的看了一遍,对于相关的操作都有了一定的了解,那么最先匹配到的解决方式就是qcow2的backing_file思路
# dsa @ '(^-^)' in ~ [19:33:38]
$ qemu-system-x86_64 -drive file="/Users/dsa/tmp/ssq2.qcow2"
qemu-system-x86_64: -drive file=/Users/dsa/tmp/ssq2.qcow2: Could not open '/Users/dsa/tmp/ssq2.qcow2': Permission denied
# dsa @ '(^-^)' in ~ [19:34:30] C:1
$ sudo qemu-system-x86_64 -drive file="/Users/dsa/tmp/ssq2.qcow2"
其中/dev/disk2是
hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount /Users/dsa/tmp/11/ewf1
命令挂载的
方便是挺方便的,问题就是UEFI启动应该怎么办于是通过逛git找到了一些引导方式
open https://github.com/cHolzberger/abuild-qemu-osxkvm#alpine-qemu-osxkvm
open https://github.com/foxlet/macOS-Simple-KVM
open https://github.com/Leoyzen/KVM-Opencore
open https://github.com/thenickdude/OSX-KVM
open https://gist.github.com/Manouchehri/2b1b523eed834f295915
open https://www.nicksherlock.com/2021/10/installing-macos-12-monterey-on-proxmox-7/
然后成功剽到了OVMF_CODE.fd文件 ,有了UEFI引导固件当然就能引导部分UEFI系统了,但是UEFI系统对主机的硬件匹配好像有要求,启动容易导致windows系统崩快,又不太会,于是……
话说谈到启动项,第一步想到的当然是OC啦于是就找了好几个qemu引导OC的项目
笑死,根本学不会
本着照着步骤慢慢学习的精神,尝试了一下原本的作用,qemu安装macos,结果安装到点击install安装就卡死,也不知道什么回事

别说,照着步骤还真明白了部分qemu启动时的参数,
-drive if=pflash,format=raw,readonly=on,file="$REPO_PATH/$OVMF_DIR/OVMF_CODE.fd"
-drive if=pflash,format=raw,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1024x768.fd"
-smbios type=2
# -device ich9-intel-hda -device hda-duplex
-device ich9-ahci,id=sata
# -drive id=OpenCoreBoot,if=virtio,file="ssq2.qcow2"
-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file="$REPO_PATH/OpenCore/OpenCore.qcow2"
-device ide-hd,bus=sata.2,drive=OpenCoreBoot
-device ide-hd,bus=sata.3,drive=InstallMedia
# -drive id=InstallMedia,if=none,file="/Users/dsa/tmp/ssq2.qcow2",format=qcow2
-drive id=InstallMedia,if=none,file="/Users/dsa/tmp/OSX-KVM/scripts/monterey/Monterey-full.img",format=raw
-drive id=MacHDD,if=none,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2
-device ide-hd,bus=sata.4,drive=MacHDD
# -device ide-hd,bus=sata.5,drive=BootCamp
# -drive id=BootCamp,if=none,file="/Users/dsa/tmp/ssq.qcow2",format=qcow2
-device ide-hd,bus=sata.5,drive=centos
-drive id=centos,if=none,file="/Users/dsa/tmp/ssq3.qcow2",format=qcow2
-device ich9-ahci,id=sata
-device ide-hd,bus=sata.5,drive=centos
-drive id=centos,if=none,file="/Users/dsa/tmp/ssq3.qcow2",format=qcow2
这样一套操作下来才能被OC识别,
然鹅
OC识别了没有启动项,
好吧OC我还没有好好学习,什么时候会了再说吧,有大佬指点一二也是极好的?
最后是尝试vmdk文件的编辑
# dsa @ '(^-^)' in ~/tmp/OSX-KVM on git:master x [19:54:05]
$ /Applications/VMware\ Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk2 fullDevice ~/Desktop/PVMDisk lsilogic
/Applications/VMware\ Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk2 fullDevice ~/Desktop/PVMDisk lsilogic
创建出PVMDisk.vmdk文件,然后添加虚拟机时不能直接用,好家伙,然后新建个能被用的再替换呗
# dsa @ '(^-^)' in ~/tmp/OSX-KVM on git:master x [19:55:56] C:130
$ qemu-img create -f vmdk ~/tmp/ss.vmdk 21G
Formatting '/Users/dsa/tmp/ss.vmdk', fmt=vmdk size=22548578304 compat6=off hwversion=undefined
# dsa @ '(^-^)' in ~/tmp/OSX-KVM on git:master x [19:57:36]
$ qemu-img create -f vmdk ~/tmp/ssadd.vmdk -b ~/tmp/ss.vmdk -F vmdk
Formatting '/Users/dsa/tmp/ssadd.vmdk', fmt=vmdk size=22548578304 backing_file=/Users/dsa/tmp/ss.vmdk backing_fmt=vmdk compat6=off hwversion=undefined
然后先创建虚拟机,选中已有的虚拟磁盘,选ssadd.vmdk
然后打开010 Editor进行更改参数,就能启动了
刚开始三个文件
修改后三个文件
选择“是”后,但三个文件的ID会被更改,并且进入系统
问题就是步骤比较复杂,而且打开两个虚拟机就会报错:是为了防止出错而自动锁死。