今天我们在网络安全课程中遇到了挑战,在某个时间点(通过终端在 Windows 机器中)我发现了一个有趣的文件,dir名为root.txt
通过more root.txt我得到的输出Look deeper...,这促使我尝试dir /a查看是否隐藏了某些内容。然而,没有结果。
过了一会儿,教授给了我们一个使用提示,dir /r其输出如下:
..
05/24/2018 05:25 PM 14 root.txt
137 root.txt:confidential.txt:$DATA
..
Run Code Online (Sandbox Code Playgroud)
有人发现我们可以confidential.txt使用more < root.txt:confidential.txt
这里到底发生了什么?做什么呢/r?
NTFS 将文件存储为流的集合,也称为 NTFS“属性”。我更喜欢使用“流”这个名称,因为“属性”通常指文件$STANDARD_INFORMATION流中的文件属性标志,例如“隐藏”、“系统”和“只读”。Windows 程序通常直接使用的两种流类型是数据和索引(即 和$DATA)$INDEX_ALLOCATION。
NTFS 文件始终具有默认(匿名)数据流,例如“filename::$DATA”,或更简单地说,只是“filename”。它还可以具有备用(命名)数据流,例如“文件名:流名称:$DATA”。目录可以有命名数据流,但不能有默认数据流,因为它的匿名流是文件名索引。/rCMDdir命令的选项调用列表中的每个文件或目录上的FindFirstStreamW和FindNextStreamW来列出其$DATA流。
NTFS 目录有一个$FILE_NAME名为“$I30”的索引,例如“dirname:$I30:$INDEX_ALLOCATION”。该索引也可以匿名别名,例如“dirname::$INDEX_ALLOCATION”,或更简单地说,只是“dirname”。FindFirstFile它可以通过和列出FindNextFile。
其他流类型上的命名索引也是可能的。例如,NTFS 卷在其保留的“$Reparse”目录中具有重分析点索引,位置为“\$Extend\$Reparse:$R:$INDEX_ALLOCATION”。列出此索引需要特定的目录查询,因此FindFirstFile无法使用。FindFirstVolumeMountPoint并FindNextVolumeMountPoint列出此索引以便搜索卷上的安装点,即IO_REPARSE_TAG_MOUNT_POINT目标卷 GUID 路径的重新分析点。
| 归档时间: |
|
| 查看次数: |
5053 次 |
| 最近记录: |