題 為什麼NTFS允許隱形可執行文件?


您只需鍵入以下內容即可隱藏其他文件中的任何文件:

type sol.exe > container.txt:sol.exe

並運行文件隱藏文件只需使用:

start c:\hide\container.txt:sol.exe

但關於這一點的瘋狂部分是它不會增加文件的大小(所以它完全隱藏)。

如果你刪除裡面隱藏的東西的文件,隱藏的東西不會被刪除。只需使用:

more <  container.txt:sol.exe > sol.exe

為什麼NTFS允許這樣做?這似乎是隱藏病毒的最佳方式。


103
2017-07-23 23:44


起源


很好,看起來像mac資源分叉。 - Stefano Borini
更糟糕的是,當你啟動這樣的sol.exe時,任務管理器會將進程名稱顯示為container.txt - hasen
我們應該轟炸谷歌,以便“可怕”導致這個問題 - hasen
只要有這種情況,偶爾會遇到AV開發人員/其他人,他們仍在使用STILL不了解的文件系統,這仍然令人震驚。我不希望普通的應用程序開發人員知道它,因為沒有必要,但如果你沉重的文件系統的東西... :-) - Brian Knoblauch
據說您也可以將ADS附加到文件夾。您可以通過刪除文件夾來刪除ADS,但是當文件夾是驅動器的根目錄時,您無法刪除C:驅動器,例如,無需重新格式化驅動器。似乎是一種向我創建隱藏的rootkit病毒的機制(?)。 - HighTechGeek


答案:


這個問題有兩個方面。第一個是為什麼存在這個功能,第二個是為什麼GUI(或命令提示符)不能讓它更容易查看和管理功能。

它的存在是因為它很有用。其他幾個平台支持每個文件的多個數據流。在Mac上,他們被稱為 叉子, 例如。我有理由相信大型機世界中存在類似的事情,但今天不能指出任何明確的例子。

在現代Windows上,它用於保存文件的額外屬性。您可能會注意到Windows資源管理器中提供的“屬性”框有一個“摘要”選項卡,在“簡單”視圖中(我在Windows XP上,您的里程數會因其他風格而有所不同)包括一系列有用的字段,如標題,主題,作者和等等。該數據存儲在備用流中,而不是創建某種側車數據庫來保存所有與文件分離得太容易的數據庫。

備用流還用於保存標記,該標記表示文件來自不受信任的網絡源,Internet Explorer和Firefox在下載時應用該網絡源。

困難的問題是為什麼沒有更好的用戶界面來注意流存在,以及為什麼可以將可執行內容放入其中,更糟糕的是,稍後執行它。如果這裡存在錯誤和安全風險,就是這樣。

編輯: 

受到對另一個答案的評論的啟發,這裡有一種方法可以確定您的防病毒和/或反惡意軟件保護是否了解備用流。

得到一份 EICAR測試文件。它是68字節的ASCII文本,恰好也是一個有效的x86可執行文件。儘管完全無害,反病毒行業已經同意將其視為真正的病毒。發起人認為用真實病毒測試AV軟件有點太像測試火災警報器點燃垃圾桶了...

EICAR文件是:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

用擴展名保存 .COM 並且它將執行(除非你的AV正在註意)並打印問候語。

將它保存在備用數據流中並運行掃描可以提供信息......


97
2017-07-23 23:59



根據設計,顯示的文件大小僅顯示主$ DATA流的大小。這也是你通常想要的。您也不要將文件名(也就是一種元數據)的長度包含在文件大小中。至於是一種安全風險。 ADS不再是任何單個文件的風險。我沒有聽說任何成功傳播/隱藏這些機制的惡意軟件。 - Joey
您不能意外地運行存儲在文本文件的ADS中的可執行文件。它隱藏得很好,對於普通用戶來說,它是非常隱蔽的。你需要先妥協。 - R. Martinho Fernandes
@ashh:Martinho指出它 - 在這樣的流上很難找到可執行文件的默默無聞也使得很難在沒有主動嘗試的情況下執行它。相比之下,例如,整個“隱藏文件擴展名”慘敗,其中可執行文件可能看起來像是GUI中的文本文件......並且仍然可以非常輕鬆地執行。 - Shog9♦
假設您的AV至少實時關注.COM文件,您將無法將其作為ADS附加,因為AV會阻止您訪問.COM文件(附加為ADS需要訪問.COM文件)文件)。但是,您應該能夠附加帶有EICAR字符串的文本文件,並在ADS中將其命名為.COM擴展名。即鍵入EICAR.txt> test.txt:EICAR.COM - KTC
關於EICAR.COM文件的一個很酷的事實:它不會在任何64位版本的Windows上運行,所以我猜這個技巧將不再適用於每個人都在64位機器上(這將 仍然 可能會有一段時間)。 - Kredns


Windows Server的跨平台功能需要此功能:mac服務。

這允許在NTFS上運行的Windows服務器通過AFP共享到mac。要使此功能正常工作,NTFS文件系統必須支持分叉,並且從第一天開始。

在你問之前,這個功能還在使用嗎?是的,我每天都在我支持的客戶端的服務器上運行和使用它。

當人們和應用程序忘記或沒有意識到它存在時,主要的安全問題就出現了。

可能應該有一個選項,但要在總文件大小中包含分叉或在Windows資源管理器中顯示它們。


15
2017-07-24 00:05



如果您要投票,請留下評論原因。 - Bruce McLeod
這聽起來像是一個完全合理的理由,因為這個特徵首先存在。 - RBerteig
添加此功能只是為了允許macs的文件共享聽起來不是一個合理的理由。通過網絡共享不需要將文件完整地存儲在服務器端。我見過幾個* nix apple共享服務器,它們將文件分成數據和資源信息。這對客戶來說是透明的。改變實際的驅動器格式只是為了允許AFP似乎不太現實。可能是一個很好的好處,但不是這個功能的原因。 - Simurr
是的,如果你打算斷言SfM是那個,那我正在考慮[引證需要] 主要原因 MS在NTFS中實現了ADS。 - afrazier
引文發現:...... ADS能力所在 最初設想允許與Macintosh Hierarchical File System,HFS兼容;其中文件信息有時分叉為單獨的資源。備用數據流已被各種程序合法使用,包括本機Windows操作系統,用於存儲屬性和臨時存儲等文件信息。資源: windowsecurity.com/articles/Alternate_Data_Streams.html - JamesBarnett


我認為其中一個主要用途(甚至可能是預期用途)是透明地允許向文件添加任何類型的元數據。文件大小不變的原因是在這種情況下,您不希望文件的外觀或行為有任何不同,以免原始應用程序依賴於文件外觀的某些方面。

我可以想像在IDE中的有趣用途,例如,有時涉及多個文件來形成單個單元(代碼文件/表單文件等),這可以通過這種方式附加到原始文件,以便它們不會意外地分離。

我也相信有一個命令可以在給定的目錄樹中找到所有這些“附件”,因此它們實際上並不是完全隱藏的。如果更好的病毒掃描程序不知道這一點並檢查這些“隱藏”區域,也會讓我感到驚訝,但您可以通過故意將受感染的可執行文件附加到文本文件並查看它是否被拾取來檢查它。


5
2017-07-23 23:53



你能發一個這樣的可執行文件的鏈接,我可以試試嗎? ;) - R. Martinho Fernandes
我建議你在你的機器上運行AVG,然後從隔離文件夾中抓取一個可執行文件來嘗試;) - jerryjvl
@martinho,你想要EICAR測試文件:X5O!P%@AP [4 \ PZX54(P ^)7CC)7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$ H + H *只需粘貼該文本(確切地說68字節的ASCII文本,請參閱 eicar.org/anti_virus_test_file.htm 對於整個故事)進入一個名為擴展名為.COM的文件。它將運行並打印一條消息。當然,除非你的AV工作正常。將其放入備用數據流並在那裡檢查。 - RBerteig
@RBerteig:嘿酷......不知道有這樣的事情。 - jerryjvl
@jerryjvl,正如他們所說的那樣,通過點燃廢紙簍來點燃火災報警器...... - RBerteig


這是一篇關於潛力的好文章 安全漏洞 由...構成 備用數據流


5
2017-07-23 23:52



<nitpick>這是一個漏洞,而不是威脅</ nitpick>。而且它並沒有聽起來那麼大。您需要已有憑據才能使用它。 - romandas
固定,謝謝! :) - JP Alioto
沒問題。順便說一句,檢查你的拼寫。永遠記住:威脅利用漏洞。威脅通常是人,但自然和製造的災難也很重要。 - romandas
@romandas,您需要擁有哪些憑據?在家里大多數Windows用戶(特別是XP)都使用管理員權限運行,那麼為什麼這聽起來不是什麼大不了的事呢? - Ash
@ashh,“用隱藏系統隱藏......的方法”。系統必須首先被洩露以隱藏任何東西,並且類似地執行任何隱藏的東西。 - KTC


好問題,直到去年我都沒有正確地了解ADS,而且我多年來一直是Windows開發人員。我可以保證我並不孤單。

關於能夠檢查文件的備用數據,我發現了一個有用的小工具 小伙子 可從Frank Heyne軟件獲得。它可以列出給定目錄中所有文件的ADS,甚至可以列在加密文件(以及子目錄中)。


5
2017-07-24 02:44