UNCTF雜項題Hidden secret 之NTFS交換資料流隱寫
---恢復內容開始---
做這道題目的經歷比較坎坷,題目中用於隱藏flag的jpg檔案出了問題,導致不能被交換資料流隱寫所以出題人換了一次題目,最後做法也換了,不過出題人一開始的考察點還是基於NTFS交換資料流隱寫。
0x1.什麼是NTFS資料交換流(ADS)
NTFS交換資料流(Alternate Data Streams,簡稱ADS)是NTFS磁碟格式的一個特性。在NTFS檔案系統下,每個檔案都可以存在多個數據流,意思是除了主檔案流之外還可以有許多非主檔案流寄宿在主檔案流中,這些利用NTFS資料流寄宿並隱藏在系統中的非主檔案流我們稱之為ADS流檔案。雖然我們無法看到ADS流檔案,但它們卻是真實存在。下面通過一個例項來具體展現ADS流檔案的建立、關聯及隱藏過程。這一段是百科上面的內容。
2) 建立資料流檔案並關聯宿主檔案,在DOS視窗中輸入“echo This is an ADS > 1.txt:ads.txt”後回車。該命令的含義為:建立一個名為ads.txt內容為“This is an ADS”的資料流檔案與宿主檔案1.txt進行關聯。此時回到C盤根目錄下檢視,只有1.txt並無ads.txt,開啟1.txt檢視起內容仍為“This is a test file”也未做任何改變,那麼資料流檔案ads.txt到底到哪去了呢?“dir”命令也無法檢視到。這時,在DOS視窗中輸入“notepad 1.txt:ads.txt”,在彈出的記事本中就可以看到ads.txt中的內容。
type命令是將已經存在的一個檔案,用交換資料流的方式寄生到另外一個資料夾上.
/*寄生到1.jpg上*/ E:\113>type 1.txt >>1.jpg:1.txt /*寄生到113資料夾上*/ E:\113>type 1.jpg >>113:1.jpg /*寄生到a.exe這個可執行檔案上上*/ E:\113>type 1.jpg >>a.exe:1.jpg /*寄生到E盤根目錄*/ E:\113>type 1.jpg>>E:\:1.jpg
0x2.利用NTFS交換資料流隱藏可執行檔案
winXP中可以直接執行寄生的可執行程式,Win7之後的版本需要手動建立一個連線檔案,通過這個連結檔案才能執行這個寄生的可執行交換資料流檔案
winXP例項
type
a.exe>>1.txt:a.exe
XP中可以直接通過
start
命令使用絕對路徑來呼叫這個寄生的可執行檔案
start 絕對路徑 1.txt:a.exe
0x3.檢測和清楚NTFS交換資料流隱藏檔案
1.之前使用cmd命令notepad可以檢視隱藏的txt檔案,也可已使用Ntfs Streams Editor這個軟體檢視 https://files.cnblogs.com/files/rainbow7/ntfsstreamseditor.zip
做CTF時使用這個軟體很方便
2.使用lads,將lads放在需要檢查的目錄下工具地址: https://files.cnblogs.com/files/rainbow7/lads.zip
lads.exe /S /*檢測根目錄下的隱藏流檔案*/
3.清除ADS 使用streams.exe這個軟體清除 https://files.cnblogs.com/files/rainbow7/streams.zip
streams.exe -d <File>stream.exe -s -d可以新增-s引數來一次性遞迴清除E盤下所有寄生的交換資料流檔案(慎用,尤其是對系統盤一定不要隨便使用遞迴清除,系統本身的一些資料流也會被一起清除掉)*/
E:\
0x4.做題步驟:
題目給了三個十六進位制內容的檔案開啟如下圖,三個檔案開頭分別是03 04, 01 02, 05 06,這讓我馬上想起了zip壓縮包的三個組成部分,壓縮原始檔資料區,壓縮原始檔目錄區。壓縮原始檔目錄結束標誌,只不過每個檔案都缺少一個50 4B的標記。手工給加上就行了。
使用010Editor把三個十進位制檔案拼起來,然後儲存為.zip檔案。
將檔案解壓出來有一個2.txt和一個1.jpg檔案2.txt內容為:1.txt behind 1.jpg 1.txt隱藏在在1.jpg後面,使用binwalk跑不出來提示就是一張單純的圖片,檢視十六進位制也是一個
jpg檔案尾部結束沒有問題,之後根據提示NTFS我才找到NTFS交換資料流隱寫的方法。
特別注意:如果檔案原本是在壓縮包內的,這時使用除WinRAR以外的軟體進行提取會造成資料流丟失。所以務必使用WinRar進行檔案解壓
當我重新將zip檔案使用win解壓,然後用Ntfs Streams Editor這個軟體檢視但是沒有找到我要的結果,後來找到出題人問了一下才知道題目壞了,我去
但是最後題目沒改成功,然後換了一個題,換了一種做法變得更簡單。下面我自己將資料流新增進去 type 1.txt>>2.jpg:1.txt,然後當作一切都沒發生。
兩種不同做法:
這篇文章主要寫我解題的學習過程,關於NTFS交換資料流的知識還請去百度搜索學習,如內容存在錯誤還請斧正。
---恢復內容結