重新解析点不是有很大的安全风险吗?

重新解析点不是有很大的安全风险吗?

据我了解,重新解析点可以添加到任何文件(不是指符号链接,而是添加到现有文件的 ADS 中)

那么,是否可能创建一个image.jpg具有重解析点的cmd.exe?还是我搞错了重解析点是什么?

答案1

我是否误解了重新解析点的含义?

好的,让我们先来概述一下重解析点。当应用程序打开NTFS 流包含一个重新解析点,与重解析点标记关联的文件系统过滤驱动程序会解释重解析点数据并提供内容供应用程序读取。例如,如果重解析点是符号链接,则重解析点数据包含目标文件的路径,文件系统过滤驱动程序将从目标文件读取内容并将其提供给应用程序。应用程序不需要了解符号链接或如何处理它们;这些都由文件系统处理。(这也许是符号链接和快捷方式之间最重要的区别。)

请注意,文件作为重解析点通常不会改变应用程序解释所提供数据的方式。如果 test.jpg 是指向 cmd.exe 的符号链接,并且您使用照片查看器打开 test.jpg,它只会读取 cmd.exe 的内容并尝试将其解释为 jpg;这与您复制 cmd.exe 并将其重命名为 test.jpg 时发生的情况没有什么不同。(应用程序也可以写入重解析点,同样,这由关联的文件系统过滤器驱动程序处理。)

将重解析点放在替代数据流中实际上不会改变任何事情。通常,照片查看器等应用程序会完全忽略替代数据流。

我理解这一点,但是如果您创建一个带有符号链接标记的重新解析点,然后将其添加到 jpg 文件并将其指向 cmd.exe,会发生什么情况? 那么 Windows 是否会将 jpg 文件视为符号链接,而不是打开 jpg,而是打开 cmd.exe?

如果您忘记使用备用数据流,而只是创建一个 test.jpg 作为 cmd.exe 的快捷方式,那么答案是肯定的。这是因为 Windows 资源管理器违反了规则:它明确检查文件是否是符号链接,如果是,它会将其视为快捷方式。您可以自己做这个实验;打开提升的 cmd.exe 窗口并输入

cd \
mklink test.jpg c:\windows\system32\cmd.exe
start .

这将在 C 盘根目录打开一个资源管理器窗口,显示测试文件;如果双击它,将打开一个命令窗口。

这是一个严重的安全漏洞吗?可能不会;攻击者仍然必须放置文件(对于重解析点来说,这比普通文件更难,因为它不能直接下载)并诱使受害者打开它,然后 Explorer 会显示带有快捷方式图标和文件类型的文件.symlink。总的来说,我认为这并不比传统的快捷方式技术更危险,或者只是给受害者一个带有自定义图标的可执行文件,使其看起来像一个无害的文件。

据我所知,Explorer 仅以这种方式处理符号链接和连接点。对于任何其他类型的重新解析点,Explorer 都会使用文件的名称来确定如何操作,因此如果文件名为 test.jpg,则双击它只会打开照片查看器。

我不确定如何测试将符号链接作为备用数据流添加到现有文件的情况。我最好的猜测是 Explorer 会忽略备用数据流;因此,再次双击该文件只会打开照片查看器,不会执行任何操作。

答案2

我是否误解了重新解析点的含义?

重解析点只能由应用程序使用。重解析点中包含的数据需要应用程序解释数据并处理文件。在创建重解析点的过程中,还必须定义重解析标记,以标识其存储的数据。

文件或目录可以包含重解析点,即用户定义的数据的集合。存储数据的应用程序和文件系统过滤器可以理解这些数据的格式,您可以安装文件系统过滤器来解释数据并处理文件。

那么是否有可能创建一个具有指向 cmd.exe 的重新解析点的 image.jpg?

任何旧的照片应用程序都无法访问重新解析点。我还非常怀疑,由于可执行文件的大小,Windows 是否允许您设置重新解析点。

重新解析点

据我了解,重新解析点可以添加到任何文件(不是谈论符号链接,而是将它们添加到现有文件的 ADS)

您应该谈论它们,因为重解析点首先用于创建 NTFS 符号链接。它们还用于创建挂载目录。

重新解析点用于实现 NTFS 文件系统链接,它们还用于实现挂载文件夹

SysInternals 的 junction.exe

相关内容