NTFS Alternative Data Streams, ADS

2021-05-04

筆記 NTFS 檔案系統中的 Alternative Data Streams 在應用程式與資安上的應用。

logo

說明

在 NTFS 當中,目錄以及檔案是以資料串流的方式儲存,預設檔案內容就是儲存在 未命名資料串流 中,使用 CMD 的 type 就可以顯示 未命名資料串流 中的內容,也就是一般的使用情境。而在 NTFS 中,可以另訂其他的資料串流,稱為 Alternative Data Streams, ADS 使用以下的方式進行:

echo secret > C:\temp\test.txt:test

如果想要顯示 ADS 的內容可以使用 more 與 pipeline:

more < C:\temp\test.txt:test

Streams

除了使用 dir /r 的方式檢查 ADS,另外也可以 Sysinternals 中的 Streams 來檢查並對 ADS 做處理,例如藉由 streams 來移除檔案中的 ADS:

streams -d text.txt

使用 PowerShell

Get-Item C:\temp\test.txt -Stream *
Get-Content C:\temp\test.txt -Stream streamName

資安應用

ADS 可以被用於隱藏檔案及內容,可以做為將惡意程式寄宿於一般檔案上,或者是作為資料洩漏、資料竊取的工具

參考資料

介紹好用工具:Streams 讓你瞭解神秘的 NTFS 檔案系統

Alternate Data Streams (一)

Alternate Data Streams (二)