【问题标题】:Is it possible to use a script or a program to force-read a protected file off the disk?是否可以使用脚本或程序从磁盘强制读取受保护的文件?
【发布时间】:2012-03-21 08:25:32
【问题描述】:

某些文件只能由 root 用户读取。但是,我很想知道是否可以在这里应用数据恢复理论来强制从磁盘读取文件。是否可以扫描文件的字节,特别是因为我们知道该文件存在? (与可能覆盖位的恢复相反。)

我能想到的流程如下:

//Get the starting block location of the file

//Read it

// get the next block location

// read it

// iterate until done...

我有两个问题。如果有问题的文件只能由权限高于您自己的用户读取,这可能吗?即使是这样,我将如何在代码中实现它?

【问题讨论】:

  • 我不认为你可以在未经许可的情况下获取文件在磁盘上的起始块位置(操作系统不会告诉你它在哪里,即使你绕过所有读/写功能),而且文件可能不连续,所以我认为这个任务是不可能的。
  • ...另外,您首先需要有权访问磁盘中的原始数据,而在大多数情况下您没有(即仅限于管理员/root 用户)操作系统中数据的安全性取决于您无法做到这一点,一个允许您绕过权限的系统很容易在没有保护的情况下可能同样好。

标签: c++ recovery


【解决方案1】:

你想要的需要管理员权限。如果您尝试在 Linux 系统上读取或写入原始块设备文件 /dev/sd*/dev/hd*,或在其他 Unix 系统上对其等价物,或者使用原始 Windows API 调用来读取块设备,您总是会发现它们需要管理权限。 (CAP_SYS_RAWIO 在 Linux 上。)

此外,如果块设备当前已挂载,则您读取的描述文件系统布局的数据可能会从您下方发生变化——这使得这种方法对于已挂载的驱动器非常不可靠。

如果您想进一步了解这一点,我强烈建议您查看debugfs(8) ext2、ext3、ext4 调试工具。它完全在用户空间中实现 ext* 系列文件系统,并允许在原始级别使用块设备。

【讨论】:

    【解决方案2】:

    如果您可以获得硬盘驱动器,请将其安装为辅助硬盘驱动器。这样,用户文件级别的权限就不会成为问题,因为您将是 root/管理员,并且可以根据需要对文件进行 chmod。您还可以使用 dd(或其他一些工具)创建驱动器的取证图像以进行位复制,然后挂载该图像并读取/复制/检查文件。

    在实时操作系统上无法做到这一点。如果您可以在他不希望您阅读的情况下阅读 root 的文件,那么您将在操作系统中发现一个主要的安全漏洞。

    【讨论】:

      【解决方案3】:

      是的,例如,如果 Unix 系统管理员愚蠢地将块设备或原始设备留给不受信任的用户可读,这是可能的。但是操作系统的重点是在用户/应用程序和系统资源(如磁盘)之间进行调解,因此您不会发现很多系统设置为默认允许这种访问。对于 Unix 系统,如果 /dev 中的磁盘设备不可读,则您无法获得关键信息。例如,您无法知道文件的起始块位置。

      【讨论】:

        猜你喜欢
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        • 2018-01-14
        • 1970-01-01
        • 2021-12-29
        • 2021-06-19
        • 2011-01-04
        相关资源
        最近更新 更多