目录
1.1、简介:
从Ubuntu、 Mac OS到Android, 很多Linux发行版都支持扩展文件系统(ext2、ext3 和ext4)。
此外, 这些扩展文件系统中还有索引节点(inode), 其他Linux和Unix的文件系统也是如此。
1.2、原理:
每个文件或目录都由一个索引节点代表, 索引节点中包含的信息有: 文件类型、 访问权限、文件所有者、时间戳、文件大小和数据块指针
在扩展文件系统中, 删除文件时, 文件系统只是取消了文件名与索引节点间的关联,并不会删除文件的数据, 除非文件系统需要为新文件分配空间而把被删除的文件数据覆写。索引节点记录了文件被删除的时间, 它会维护除文件名之外关于文件的所有信息。 很多情况下我们可以恢复被删除的文件, 除非文件数据被覆写了, 但是文件的恢复在很大程度上都取决于文件系统的活跃程度 。比如, 在一个运行中的服务器上恢复文件的成功几率要低于在一个非活动状态的文件系统(比如U盘)中恢复文件
1.3、工具:
GParted(磁盘管理)
GParted -- Download
https://gparted.org/download.php
数据恢复工具:
e2undel(未找到)
foremost
ext3grep
extundelete
……
1.4、隐藏:
可以利用来隐藏文件, 并恢复隐藏到索引节点中的数据 。Linux系统中的恢复工具可以通过索引节点来恢复这些 "无名"文件(被删除, 但未被覆写)。
“debugfs"这个恢复工具支待很多Linux发行版, 但对于不熟悉Linux的用户来说, 使用起来很麻烦。
Oliver Diedrich开发了一个更加简单易用的Linux恢复工具名为e2undel
第一步:准备软件、U盘
插入U盘作为扩展系统, 然后开始进行数据隐藏。Linux的分区工具有很多, 本例中使用Gparted, 在命名行中直接行"gparted"就可以打开Gparted的图形界面了
在右侧的下拉列表中选择我们要格式化的U盘驱动器名称。开始格式化前请确认选择了正确的驱动器, 以免因误操作将系统磁盘格式化了。
第二步:格式化
U盘巳经挂载, 请右键单击盘符, 在快捷菜单中选择 “unmount", 然后选择 “ext2"开始格式化
系统弹出格式化进度条
格式化完成后, 新分区的系统类型就被标记为 ext2"
既然我们已经有了ext2文件系统, 就可以开始隐藏数据了。
第三步:隐藏数据
数据隐藏的方法:复制文件到 U 盘中或者直接创建新的文件, 然后删除文件(或者隐藏该文件)。
第四步:恢复文件
想恢复已删除或隐藏的文件, 可以使用 e2undel 工具。 具体命令如下:
e2undel -d device -s path [-a] [-t]
with
-d device:在哪里查找已删除文件的文件系统 (like /dev/hdal)
-s path: 目录在哪里保存恢复的文件
-a: 处理所有文件。不仅在UNDEL日志文件中列出的(如果您不使用UNDEL库或要恢复一个,则需要此在安装Libundel之前已删除的文件)
-t: 尝试确定无名称的删除文件类型仅起作用,with '-a'
将使用 e2undel 恢复之前删除的两个文件。 我们用设备名 (-d) 和目标路径来定义已恢复文件 (-s) 的存储位置。
sudo e2undel -d /dev/sdcl -s /home/spihuntr/sandbox -a -t
首先,根据工具提示,输入用户名。如前文所述,索引节点记录了文件的删除时间,
e2undel就利用这点提供了一个按时间段划分的删除文件列表。然后,根据工具提示,输入一个小于12小时的时间段,此处以1小时为例。Select user name from table or press enter to exit: spihuntr
Select time interval (1 to 6) or press enter to exit: 1inode size deleted at name
12 15 May 31 14:31 2022 * ASCII text
13 27 May 31 14:32 2022 * data
此时,界面显示可以每个可恢复的文件详情。选择我们要恢复的那两个文件的索引节点12和13,然后根据工具提示按Enter键退出。
Select an inode listed above or press enter to go back: 12
15 bytes written to /home/spihuntr/sandbox/inode-12-ASCil_textSelect an inode listed above or press enter to go back: 13
27 bytes written to /home/spihuntr/sandbox/inode-13-dataSelect an inode listed above or press enter to go back:
user name I 1 <12 h I 2 <48 h I 3 <7 d I 4 <30 d I 5 <l y I 6 older
spihuntr I 2 I o I o I o I o I 。
Select user name from table or press enter to exit:
现在恢复出来的文件应该已经保存到目标路径中了。切换到目标路径,我们可以看到通过索引节点恢复并保存的文件。由千删除文件时丢失了文件名,所以e2undel将自动给恢复后的文件命名。
ls -al
开始时, 我们在扩展文件系统中通过删除文件将其隐藏掉, 然后再用e2undel工具恢复被删除的文件。 查看恢复后的文件时, 我们可以看到其内容和原始文件完全一样。
more inode-12-ASCII_text
这个数据隐藏策略是成功的。 而且这个技术并不仅局限于ext2文件系统。 例如, "debugfs"也可以恢复ext3和ext4文件系统中的文件。 此外, 虽然实例中我们是在Ubuntu 系统上演示的, 但这个技术同样适用千Mac OS、 Red Hat、 Android和其他使用扩展文件系统的Linux 发行版。 但是, 需要特别注意的是, 这个技术并不完全是傻瓜式的。 在非常活跃的扩展文件系统中, 巳删除的文件被覆写的频率会很高, 这样就极大地缩小了文件的生存时间(从被删除到被覆写的时间)。 但是, 对千个人电脑用户而言, 这个技术在备用分区 和U盘中隐藏数据还是很有效的。