創建一個數據交換流文件的方法其實并不復雜,其命令行格式為“宿主文件:準備和宿主文件關聯的數據流文件”,和NTFS數據流相關的命令,包括Echo、Type、Start等。
例如對于Echo命令來說,可以在CMD窗口中輸入命令“echo XXXXXXX>> 1.txt:2.txt”,其 中 的“XXXXXXX”代表機密信息,回車后即可在指定的NTFS分區根目錄下生成“1.txt”文件,但奇怪的是該文件的長度為0,而且雙擊該文件,打開后發現文件的內容為空。實際上,這是利用了NTFS文件流技術實現了重要數據的隱藏。
本 例 中 的“1.txt:2.txt”就是流文件,其中的“1.txt”可以存在,也可以不存在,可以是文本文件,也可以其他任何類型的文件(例如 bmp、exe、doc等),最重要的是其中的“2.txt”,它是虛擬文件名,當然其后綴也可以是其他文件類型。在NTFS分區中是看不到完整的文件名的。也就是說,“2.txt”文件是寄存在“1.txt”文件中。注意,在“1.txt”中可以寄存多個文件。例如執行“echo 別的重要信息 >>1.txt:3.txt”命令,可以讓“3.txt”文件寄存到“1.txt”中,寄存的內容為“別的重要信息”。
如果需要查看隱藏的數據時,需要在CMD窗口中執行命令“notepad 1.txt:2.txt”,即可在記事本中看到隱藏的數據了。
注意,這里看到的是寄存的“2.txt”文件,可以直接在記事本中編輯其寄存的內容,之后可以正常保存該文件。
例如在CMD窗口中執行命令“echo 具體的機密數 據 >> a.pdf:b.doc”,這里 的“a.pdf”已 經 存 在,“b.doc”為虛擬文件名,雙擊“a.pdf”文件,就直接打開閱讀器瀏覽該文件內容,根本發現不了在“a.pdf:b.doc”文件,以及隱藏的機密數據內容。只有執行“Notepad a.pdf:b.doc”才可以看到隱藏的數據。
當然,使用Echo命令只能編輯少量的文本數據。對應的使用Type命令,可以使用NTFS文件流技術來隱藏文件。其格式為“type 文件名+后綴 >> 任意文件:任意文件名+源文件后綴”,注意其中的“后綴”和“源文件后綴”應該相同,否則可能出現無法打開的故障。
例如執行命令“type jimi.doc >> office.pdf:new.doc”,這樣,就可以將重要文件“jimi.doc”寫入“office.pdf:new.doc”流文件中了。其他人在NTFS分區中只能看到“office.pdf”文件,是無法看到上述流文件的。當打開該流文件時,應該使用對應的工具,例如DOC文件使用Word來打開等。
如果處理程序位于系統目錄,則可以輸入程序名即可,否則應該輸入完整的路徑。例如執行命令“type mypic.bmp >>hello.def:xinhua.bmp”,這 樣 就 將“mypic.bmp”圖片隱藏到了hello.def:ly.bmp中,當需要查看時,只要 執 行“mspaint hello.def:xinhua.bmp”即可,對于上述“office.pdf:new.doc”流文件,則需要執行“"C:Program FilesMicrosoft OfficeOFFICE11winword.exe" I:office.pdf:new.doc”(其中的程序路徑要帶引號,假設I盤為NTFS分區),就可以打開機密文件“jimi.doc”了。
對于exe文件來說,也可以將其寄存到某文件中。例如執行“type nc.exe>>1.txt:2.exe”命 令,可以將“nc.exe”文件寄存到“1.txt”中。 執 行“start e:1.txt:2.exe”,就可以啟動寄存的exe文件,這里假設其保存在E盤。
注意使用Start命令啟動寄存程序,必須使用絕對路徑。當打開任務管理器后,可以看到名為“1.txt:2.exe”的特殊進程。實際上,宿主可以是文件或者文件夾,例如執行“type nc.exe>>folder:2.exe”命令,可以將其寄存到名為“folder”的目錄中。打開該目錄,里面沒有任何內容。
NTFS數據流有一個特點,一旦宿主文件被刪除,與之關聯的流數據就會消失。為了防止這種情況,可以將系統中一些無法刪除的文件作為宿主,例如執行“type c:jimi.doc > C:WINDOWSsystem32configSAM:new.doc”命令,將“jimi.doc”附加到“SAM:new.doc”流文件中。因為別人無法刪除“SAM”文件,所以就保護了附加文件的安全。而您可以在CMD窗口中進入“c:windowssystem32”文件夾,之后執行“start ./SAM:new.doc”,來查看隱藏在該流文件中的Word文檔。
正是因為使用NTFS數據流,可以毫不費力的隱藏數據,所以自然會引起病毒木馬等惡意程序的“關注”,一旦被其非法利用,無疑會對系統安全構成威脅。病毒木馬一般會使用NTFS數據流,將自身嵌入到正常的文件或者目錄中,來實現隱藏及啟動的目的。
例如病毒木馬將自身文件寄存到E盤下名為“folder”的目錄中,其名稱其實是“folder:virus.exe”,之 后 其 會 創 建 一個VBS腳本文件,內容很簡單,只有一行語句“CreateObject("Wscript.Shell").Run "cmd /c start e:folder:virus",0”,并將該VBS文件添加到注冊表中的啟動項中。這樣,當開機后,病毒木馬就會利用NTFS數據流悄然啟動。
當然,病毒木馬也可以借助自解壓包來非法啟動。例如,在上述包含病毒文件的“folder”目錄上點擊右鍵,在彈出菜單中選擇“添加到壓縮文件”項,打開WinRAR壓縮界面,在其中的“高級”面板中選擇“保存文件流數據”項,點擊“自解壓選項”按鈕,在高級自解壓選項窗口中的“常規”面板中的“解壓后運行”欄中輸入“folder:virus.exe”。在“模式”面板中選擇“全部隱藏”和“覆蓋所有文件”項,將其變成自解壓文件。如果病毒制作者再為其更換一個具有迷惑性的圖標,其危害就會變的更大。為了逃避安全軟件的監控,病毒往往會使用免殺技術加以應對。實際上,病毒木馬完全可以非法利用NTFS數據流來實現一定程度上的免殺功能。如果某些安全軟件對于NTFS數據流檢測功能支持不足的話,就很容易被病毒木馬鉆空子。
雖然說使用NTFS數據流技術,可以巧妙的隱藏數據。但是,想發現其中的“貓膩”也并非難事。
例如在懷疑寄存了可疑內容的文件或者文件夾上點擊右鍵,在彈出菜單中選擇“添加到壓縮文件”項,打開WinRAR壓縮界面,在其中的“高級”面板中選擇“保存文件流數據”項,之后將其打包為RAR壓縮文件。雙擊該壓縮包,在WinRAR中可以顯示其內容(例如“1.txt”文件),當雙擊該文件試圖對其操作時,WinRAR就會彈出錯誤警告信息,可以讓用戶直觀的看到其中寄存的所有信息。
也可以先使用PEiD這款小工具,現將可疑的EXE文件打開,如果顯示“Nothing found [RAR SFX]”內容,就說明其是自解壓文件。之后使用WinRAR直接打開,查看其注釋等信息,如果發現其中包含有諸如“Setup=xxx:xxx.exe”之類的內容和,就可以肯定其包含了非法的NTFS數據流信息。因為無法直接查看到NTFS數據樓信息,而且狡猾的病毒很可能對相關信息進行特殊偽裝,所以當使用WinRAR查看可疑包體積明顯大于其中包含的數據容量時,就要引起警覺了。例如明明壓縮包內空空如也,卻顯示其擁有不小的容量等。當然,因為NTFS數據流只能潛伏在NTFS分區,如果將其保存到非NTFS分區(例如采用FAT32分區的U盤)中,系統就會彈出警告信息,其中寄存的所有內容就會暴露無遺。
此外,使用一些專門的工具,同樣可以讓寄存在NTFS數據流的不法分子現行。例如在CMD中運行“lads.exe”這款安全工具,就可自動搜索當前路徑下所有的NTFS數據流文件,執行“lads.exe/S”命令,可以搜索所有子目錄中的NTFS數據流信息。
但是該工具無法刪除NTFS數據流中嵌入的文件。使用微軟提供的“streams.exe”程序,可以解決該問題。在CMD中執行“streams-d xxx命令,其中的“xxx”為目標目錄,可以檢測該目錄中存在的NTFS數據流文件,對于找到的文件可以進行刪除。例如,在“folder”文件夾綁定了NTFS數據流文件,執行“streams -d e:folder”命令,就可以將其中嵌入所有的NTFS數據流數據清除,但是該目錄依然存在。實際上,將這兩個工具配合起來使用,查找和處理的效果更好。當然為更好的提高安全性,安裝支持NTFS數據流檢測功能的功能強悍的殺軟是比較完美的選擇。