標籤:link streams 資料流 檔案寫入 int 映像 pre 收藏 machine
by Chesky##目錄
####一、NTFS交換資料流(ADS)簡介
####二、ADS應用
寫入隱藏檔案(文本\映像\可執行檔)
ADS在Windows平台下的利用——寫入後門
ADS在Web中的利用——Get shell(待完成)
####三、NTFS交換資料流在CTF中的應用——查看ADS內容
####四、清除ADS
##Content
####一、NTFS交換資料流(ADS)簡介
在NTFS檔案系統中存在著NTFS交換資料流(Alternate Data Streams,簡稱ADS),這是NTFS磁碟格式的特性之一。每一個檔案,都有著主檔案流和非主檔案流,主檔案流能夠直接看到;而非主檔案流寄宿於主檔案流中,無法直接讀取,這個非主檔案流就是NTFS交換資料流。
ADS的作用在於,它允許一個檔案攜帶著附加的資訊。例如,IE瀏覽器下載檔案時,會向檔案添加一個資料流,標記該檔案來源於外部,即帶有風險,那麼,在使用者開啟檔案時,就會彈出檔案警告提示。再如,在網址收藏中,也會附加一個favicon資料流以存放網站表徵圖。
ADS也被用於一些惡意檔案隱藏自身,作為後門。
####二、ADS應用
**最好在管理員模式下操作(需要檔案的寫入權限)
**格式為 宿主檔案:關聯的資料流檔案
1.向ADS中寫入文字檔
首先需要建立一個文字檔,這裡的測試檔案是001.txt
然後向這個檔案寫入ADS
echo "Baolimo" > 001.txt:hidden.txt/*echo "隱藏內容" >宿主檔案:關聯檔案*/
可以看到,檔案位元組沒有改變,但是時間改動了。
還可以使用type命令,將已經存在的檔案附加上去。
type "test002.txt" > "001.txt":"test002.txt"/*type "要隱藏的附加檔案">"宿主檔案":"要隱藏的附加檔案"最好使用引號括起來,否則會引起誤解*/
2、向ADS中寫入映像/音頻/可執行檔
類似於寫入文字檔,可以使用如下命令:
type "hidden.jpg" > "targe.jpg":"hidden.jpg"type "hidden.mp4" > "targe.jpg":"hidden.mp4"type "hidden.exe">>"targe.txt":"hidden.exe"type "hidden.exe">>"targe.exe":"hidden.exe"
3.在Windows平台下使用ADS構造後門
在Windows XP中,可執行檔可以隱藏並且被執行。但是,微軟已經發現了這個問題並進行了修複,目前在Windows Vista及後續系統中已經無法直接運行ADS中的可執行檔了。
我們可以使用mklink命令來建立一個連結,但必須要管理員權限才能完成。
mklink D:\moha.exe "hidden.txt":moha.exe
這裡有一個在普通使用者權限下也可操作的方法,使用Powershell的指令碼。
項目地址
這個指令碼只有兩個參數:
Arguments “BadFunction -Lhost 192.168.1.11 -LPort 3333 -Payload weeeeee”
-URL即payload,-Arguments是Payload所需要的參數。
這個後門被運行後,會在註冊表下
HKCU:\Software\Microsoft\Windows\CurrentVersion\Run中建立一個索引值為update的鍵,註冊表的索引值調用wscript.exe來執行隱藏的VBS。執行完畢後,VBS指令碼會解析執行在AppData目錄下的payload(當然,是隱藏的)。
具體內容參考作者的文章。
在Windows10下,這個方法已經意義不大了,WD會對該指令碼進行查殺。不過也可以考慮Winrar自解壓檔案,但是這個方法……呃……
從目前公開的資料來看,對ADS的利用主要集中於Web方面,但是我暫時不打算髮展這方向的,這一塊以後寫一寫。
4.Getshell(待完成)
####三、NTFS交換資料流在CTF中的應用——查看ADS內容
**如果檔案原本是在壓縮包內的,這時使用除WinRAR以外的軟體進行提取會造成資料流丟失。所以務必使用WinRar進行檔案解壓。
**最好不使用CMD命令(notepad)查看,這些命令對
1.使用工具查看
使用工具查看是最快捷方便的方法了,可以使用NTFS Streams Info這個軟體進行查看,但似乎是收費的。
地址:https://ntfs-streams-info.en.softonic.com/
在做CTF題時,我用的是Ntfs Streams Editor這個軟體。
網盤下載:http://pan.baidu.com/s/1c2zbNaC
2.使用labs
網盤下載:http://pan.baidu.com/s/1slTJwMp
將labs.exe放入需要檢測的檔案的所在目錄下。
lads.exe File /S/*這條命令會檢測File這個目錄下所有檔案的隱藏流檔案*/lads.exe /S/*檢測根目錄下的隱藏流檔案*/
可以清楚地看到001.txt有著一個ADS:test002.txt。
知道了Hidden的檔案,就可以進行查看了。
notepad.exe test.txt:hidden.txtmspaint.exe test.txt:hidden.jpg
####四、清除ADS
這裡可以採用之前的Ntfs Streams Editor這個軟體直接刪除ADS檔案。
也可以用streams.exe進行清除。
streams.exe -d <File>
若出現 Error deleting,說明這個進程還在運行,需要先結束該進程再進行刪除操作。
NTFS交換資料流隱寫的應用