NTFSにはファイルに関する副次的な情報を記録するための「代替データストリーム (ADS : Alternate Data Stream)」と呼ばれる機能が存在する。
Webブラウザやメールの添付ファイルとして受け取ったファイルにはこのADSが付加されてストレージ上にファイル本体(メインデータストリーム)と並んで記録される。
ADSはファイル名の後ろに “Zone.Identifier” という名前が付く。
ただし、通常のツールやコマンド操作でADSを見ることはできない。
dirコマンドやPowerShellのオプションを使うことでADSを可視化できる。
またWSL (Windows Subsystem for Linux) のコマンドラインではADSが見える。
dirコマンドの "/r" オプションを使用した場合
1 2 3 4 5 6 7 8 9 10 |
>dir /r ドライブ C のボリューム ラベルは Windows です ボリューム シリアル番号は C28D-B175 です C:\Users\Jane.Doe\Downloads のディレクトリ 2018/05/29 11:54 5,986,657 jsp-1.4.4.1_full.zip 146 jsp-1.4.4.1_full.zip:Zone.Identifier:$DATA 1 個のファイル 5,986,657 バイト 0 個のディレクトリ 15,977,590,784 バイトの空き領域 |
get-itemコマンドの "-stream" オプションを使用した場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
> get-item * -stream * PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Jane.Doe\Downloads\jsp-1.4.4.1_full.zip::$DATA PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Jane.Doe\Downloads PSChildName : jsp-1.4.4.1_full.zip::$DATA PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False FileName : C:\Users\Jane.Doe\Downloads\jsp-1.4.4.1_full.zip Stream : :$DATA Length : 5986657 PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Jane.Doe\Downloads\jsp-1.4.4.1_full.zip:Zone.Ide ntifier PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Jane.Doe\Downloads PSChildName : jsp-1.4.4.1_full.zip:Zone.Identifier PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False FileName : C:\Users\Jane.Doe\Downloads\jsp-1.4.4.1_full.zip Stream : Zone.Identifier Length : 146 |
代替データストリーム(ADS)の中身の例
1 2 3 4 |
[ZoneTransfer] ZoneId=3 ReferrerUrl=https://www.toppers.jp/jsp-download.html HostUrl=https://www.toppers.jp/download.cgi/jsp-1.4.4.1_full.zip |