技术的东西就是比较纯粹,很早以前涉及的一个img文件,用了各种办法,包括镜像加载,虚拟光驱加载,虚拟机加载,qemu文件转换,以及美亚的取证大师,后面都没有解决。时至今日,一个战友请求协助,需要查看img文件中的具体内容。img文件不同的厂家打包的文件不一样,有raw文件,有img文件,一般来说通过winrar或者7zip都能直接解压,但一些特殊压缩导出的是没有办法直接解开。
1.1 img文件简介
.img 文件是一种通用的磁盘映像文件格式,通常用于存储整个磁盘或分区的数据。这种文件格式广泛应用于各种场景,包括备份、恢复、虚拟化和操作系统安装等。.img 文件是一种二进制文件,包含了一个磁盘或分区的所有数据,包括引导扇区、文件系统、文件和目录结构等。这种文件格式可以用于多种目的,例如:
-
备份和恢复:将整个磁盘或分区备份到一个 .img 文件中,以便在需要时恢复。
-
虚拟化:在虚拟机中使用 .img 文件作为虚拟磁盘。
-
操作系统安装:某些操作系统安装介质(如 Linux 发行版的 ISO 文件)可以转换为 .img 文件,用于刻录到 USB 驱动器或其他存储设备。
-
数据传输:在网络或不同设备之间传输磁盘或分区的数据。
1.img 文件的特点
-
原始数据:.img 文件包含磁盘或分区的原始数据,包括所有扇区的内容。
-
通用性:.img 文件格式通用性强,可以在多种操作系统和工具中使用。
-
灵活性:可以用于各种类型的磁盘和分区,包括 FAT、NTFS、ext4、XFS 等。
2.如何创建 .img 文件
(1)使用 dd 命令(Linux)
sudo dd if=/dev/sda of=/path/to/output.img bs=4M
if:输入文件,通常是磁盘设备(如 /dev/sda)。
of:输出文件,即 .img 文件的路径。
bs:块大小,通常设置为 4M 以提高效率。
(2)使用 Win32 Disk Imager(Windows)
-
下载并安装 Win32 Disk Imager。
-
选择源设备和目标文件路径,点击“Read”按钮创建 .img 文件。
1.2 img文件打开
1.2.1Windows 下打开
1.Alcohol 120%打开
虽然 .img 文件通常是磁盘映像,但有些虚拟光驱软件(如 Daemon Tools, Alcohol 120%)支持加载 .img 文件。安装这类软件后,可以将 .img 文件挂载为虚拟驱动器,从而访问其内容。通过绿色版本Alcohol 120%直接拖放img文件,打开失败。
2.Win32 Disk Imager
网上说可以通过Win32 Disk Imager,来读取和写入 .img 文件。下载地址:https://sourceforge.net/projects/win32diskimager/files/latest/download,实际测试,该软件仅仅用来写入设备文件,而不能读取。
3.WinImage
WinImage 是一个功能强大的磁盘映像和文件系统管理工具,主要用于创建、编辑和管理各种磁盘映像文件,如 .img、.ima、.vhd、.vmdk 等。它广泛应用于备份、恢复、虚拟化和操作系统安装等场景。通过WinImage对镜像文件进行加载,报错,个人推测可能对于Windows磁盘镜像支持。
1.2.2在 Linux 上进行镜像文件查看
Linux 用户可以通过命令行使用 mount 命令来挂载 .img 文件。首先,你需要创建一个挂载点,然后使用 mount -o loop /path/to/yourfile.img /path/to/mountpoint 命令来挂载文件。
1.挂载 .img 文件(Linux)
(1)创建挂载点
sudo mkdir /mnt/img_mount
(2)挂载 .img 文件:
sudo mount -o loop /path/to/output.img /mnt/img_mount
(3)访问文件:
ls /mnt/img_mount
2.卸载文件系统:
sudo umount /mnt/img_mount
1.3.img图像的识别
1.3.1通过文本编辑器查看文件头信息
对于文件个头比较小的文件可以通过winhex、ultraedit等进行打开,本例中使用Emeditor进行打开。打开时选择二进制文件打开,可以看到头部又XFSB标识。
通过百度查询XFS格式,发现磁盘采用XFS格式。难怪很多软件无法支持。下面科普下XFS。
1.XFS文件系统简介
XFS最早针对IRIX操作系统开发,是一个高性能的日志型文件系统,能够在断电以及操作系统崩溃的情况下保证文件系统数据的一致性。它是一个64位的文件系统,后来进行开源并且移植到了Linux操作系统中,目前CentOS 7将XFS+LVM作为默认的文件系统。据官方所称,XFS对于大文件的读写性能较好。性能问题对于大多数文件系统而言,都是一个头疼的事情,特别是在高并发大量小文件这种场景下,而XFS采用了一些好的思想比如引入分配组、B+树、extent等方法来提高性能。
2.XFS文件系统的基本特性
XFS是一个高性能的日志文件系统,最初由Silicon Graphics, Inc.为IRIX操作系统创建,后来移植到了Linux。XFS是一个64位文件系统,最大支持8exbibytes减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32位Linux系统,文件和文件系统的大小会被限制在6tebibytes。
3.XFS文件系统的日志特性
XFS对文件系统元数据提供了日志支持。当文件系统更新时,元数据会在实际的磁盘块被更新之前顺序写入日志。XFS的日志大小上限是64k个块和128MB中的较大值,下限取决于已存在的文件系统和目录的块的大小。日志可以保存在磁盘块的循环缓冲区上,或者一个额外的设备上以减少磁盘操作。
有关XFS的更多介绍可以访问https://blog.csdn.net/xyz/article/details/116891215获取。
1.3.2通过linux的file命令来识别
1.file命令识别文件类型
最早想通过虚拟机的共享文件来查看这个img文件,后面怎么测试都没有成功,只好通过ssh客户端直接上传到tools目录。使用file 0.img获取是SGI XFS文件系统数据,跟前面查看的文件头信息匹配。
2.Linux下查看SGI XFS文件
知道文件格式就好办了,通过mount进行挂载即可。
(1)创建一个文件目录用来挂载
sudo mkdir /mnt/xfs_img
(2)执行挂载命令
sudo mount -o loop 0.img /mnt/xfs_img
1.4取证
1.4.1查看登录日志
1.查看secure文件
(1)查看secure记录
sudo cat secure
(2)查看登录成功的
sudo sed -n '/Accepted/p' secure
2.查看wtmp文件
(1)sudo last -f wtmp
执行后提示wtmp不是一个数据库,猜测可能不是本机加载的缘故。
(2)utmpdump读取
utmpdump 是一个用于读取和显示 utmp 和 wtmp 文件内容的工具,其命令为:
utmpdump wtmp
3.查看root目录下的文件
sudo -i
cat /mnt/xfs_img/root/.bash_history
1.4.2查看数据库及代码文件
可以通过sudo -i模拟root用户,进入加载的镜像文件目录进行查看。可以根据实际需要来进行取证和数据恢复。
1.查看mysql数据库文件
/var/lib/mysql
/mnt/xfs_img/www/server/data/mysql
2.查看宝塔安装目录
BT Panel(宝塔面板)通常安装在 /www/server/panel 目录下。具体路径如下:
主目录:/www/server/panel
配置文件:/www/server/panel/data
日志文件:/www/server/panel/logs
插件目录:/www/server/panel/plugin
重要配置文件www/server/panel/data/userInfo.json、www/server/panel/data/config.json
(1)获取宝塔安装手机号码
cat /mnt/xfs_img/www/server/panel/data/userInfo.json
原文始发于微信公众号(小兵搞安全):img 镜像文件还原及取证技术研究
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论