bugfix> windows > 投稿

今日、私たちのCyber​​secクラスで課題があり、ある時点で(ターミナル経由の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
..

誰かが confidential.txt を読むことができることを知りました more < root.txt:confidential.txt を使用する 

ここで何が起きているのでしょうか?そして、 /r は何をしますか行う?

回答 1 件
  • NTFSは、NTFS「属性」とも呼ばれるストリームのコレクションとしてファイルを保存します。 「属性」は一般的にファイルの $STANDARD_INFORMATION のファイル属性フラグを指すため、「ストリーム」という名前を使用することを好みます。  「非表示」、「システム」、「読み取り専用」などのストリーム。 Windowsプログラムで直接よく使用される2つのストリームタイプは、データとインデックス(つまり、 $DATA  および $INDEX_ALLOCATION )。

    NTFSファイルには常にデフォルト(匿名)データストリームがあります。 「filename :: $DATA」、または単に「filename」。また、「filename:streamname:$DATA」などの代替(名前付き)データストリームを持つこともできます。ディレクトリは名前付きデータストリームを持つことができますが、匿名ストリームはファイル名インデックスであるため、デフォルトではありません。ザ・ /r  CMDの dir のオプション  コマンド呼び出し FindFirstStreamW  および FindNextStreamW  リスト内の各ファイルまたはディレクトリで、その $DATA をリストする  ストリーム。

    NTFSディレクトリには $FILE_NAME があります  「$I30」という名前のインデックス、たとえば「dirname:$I30:$INDEX_ALLOCATION」。このインデックスも匿名でエイリアスされます。 「dirname :: $INDEX_ALLOCATION」、またはもっと簡単に言うと「dirname」。 FindFirstFile でリストできます  および FindNextFile

    他のストリームタイプに対する名前付きインデックスも可能です。たとえば、NTFSボリュームには、「\ $Extend \ $Reparse:$R:$INDEX_ALLOCATION」の予約済みの「$Reparse」ディレクトリに再解析ポイントインデックスがあります。このインデックスをリストするには、特定のディレクトリクエリが必要なので、 FindFirstFile  使用できません。 FindFirstVolumeMountPoint  および FindNextVolumeMountPoint  ボリューム上のマウントポイント、つまり IO_REPARSE_TAG_MOUNT_POINT を検索するために、このインデックスをリストします  ボリュームGUIDパスをターゲットとする再解析ポイント。

あなたの答え