NTFS交換數據流隱寫的應用


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)查看,這些命令對ADS的支持不是很好。

 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.txt
mspaint.exe test.txt:hidden.jpg

 

####四、清除ADS

 這里可以采用之前的Ntfs Streams Editor這個軟件直接刪除ADS文件。

 也可以用streams.exe進行清除。

streams.exe -d <File>

若出現 Error deleting,說明這個進程還在運行,需要先結束該進程再進行刪除操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM