當前位置:
首頁 > 新聞 > Hidden Alternative Data Streams的進階利用技巧

Hidden Alternative Data Streams的進階利用技巧

0x00 前言


在滲透測試中,ADS(供選數據流/alternate data stream)通常用於在文件中隱藏payload,這種方式最大的優點是不影響文件大小,普通用戶很難察覺。


為此,微軟提供了"dir /r"操作,可用來查看文件的ADS,同時,Win XP以後的系統禁止用戶從ADS里直接執行程序,限制了ADS的利用。


然而,通過一些特殊用法和技巧,我們能夠更好的隱藏ADS,並且能夠從ADS里直接執行程序 :)


說明:

寫本文的初衷是偶然看到了一篇有趣的文章,作者:lex Inführ。該文章介紹了一些繞過ADS檢測工具的技巧,並給出了通過wmi執行ADS的方法。


本文將基於lex Inführ的文章,結合我的研究心得,對ADS的利用技巧作擴充,分享如何清除這些特殊的ADS,幫助大家提升對ADS的認識


0x01 簡介


本文將要介紹以下內容:


ADS常規利用方法


ADS常規檢測工具


特殊ADS對檢測工具的繞過


特殊ADS的清除


防禦建議


0x02 常規利用

ADS:


適用於NTFS文件系統,基礎知識可參考這篇文章。


創建ADS:


對文件,命令行:


echo test1 > test.txt:ThisIsAnADS


創建成功後,test.txt文件大小不變


對文件夾,命令行:


echo test1 > c: estads1:ThisIsAnADS


註:需要絕對路徑


查看文件中的ADS:

命令行:


dir /r


如圖

Hidden Alternative Data Streams的進階利用技巧



可獲得文件夾和文件中包含的ADS信息


查看ADS內容:


命令行:


more < test.txt:ThisIsAnADS


如下圖,獲得ADS的具體內容

刪除ADS:


命令行:


more < test.txt > testcopy.txt


使用more命令查看文件的主數據流並輸出,即可變相實現ADS的刪除


如下圖,testcopy.txt不包含多餘ADS

Hidden Alternative Data Streams的進階利用技巧



註:more命令在顯示較長數據時會截斷,逐屏顯示輸出,這裡面就存在一個bug,如果文件過大,導致more命令需要分屏顯示的時候,就會造成數據顯示不完整,導致文件生成失敗


0x03 ADS的執行


1、通過wmi

命令行:


type putty.exe > test.txt:putty.exewmic process call create c: est est.txt:putty.exe


如圖

Hidden Alternative Data Streams的進階利用技巧



程序執行後,進程名為test.txt:putty.exe


2、通過powershell


代碼如下:


$ps = new-object System.Diagnostics.Process$ps.StartInfo.Filename= "c: est est.txt:putty.exe"$ps.StartInfo.RedirectStandardOutput = $True$ps.StartInfo.UseShellExecute = $False$ps.start()


0x04 常規檢測工具

1、ADSCheck.exe


下載地址:https://sourceforge.net/projects/adscheck/


查看ADS:可查看指定文件夾下所有文件


命令:


ADSCheck.exe c: estads


如圖

Hidden Alternative Data Streams的進階利用技巧



刪除ADS:可刪除指定路徑下的所有ADS


命令:

ADSCheck.exe c: estads /d


如圖

Hidden Alternative Data Streams的進階利用技巧



2、Streams.exe


下載地址:


https://technet.microsoft.com/en-us/sysinternals/streams.aspx


查看ADS:查看單個文件


命令:


streams.exe c: estads est.txt

如圖

Hidden Alternative Data Streams的進階利用技巧



刪除ADS:刪除單個文件的ADS


命令:


streams.exe -d c: estads est.txt


如圖

Hidden Alternative Data Streams的進階利用技巧



實例測試:

瀏覽器下載的文件在打開時會彈框提示


如圖

Hidden Alternative Data Streams的進階利用技巧



原因:下載的文件默認添加adsZone.Identifier:$DATA


驗證:


查看ADS:


more < putty_download.exe:Zone.Identifier:$DATA


獲得內容如下:


[ZoneTransfer]ZoneId=3


去除ADS:


無法使用more命令,因為putty_download.exe過大,需要分屏顯示,導致文件生成失敗


可使用streams.exe


去除ADS後,打開文件不再彈框提示


0x05 特殊ADS


1、…文件


創建特殊文件…


命令如下:


type putty.exe > ...:putty.exewmic process call create c: estads...:putty.exe


putty.exe成功執行,進程名為...:putty.exe


特別的地方:


(1) ADS被隱藏


dir /r無法查詢


工具ADSCheck.exe和streams.exe顯示不存在ADS


如圖

Hidden Alternative Data Streams的進階利用技巧



(2) 該文件無法被刪除


嘗試各種方法,無法刪除,如圖

Hidden Alternative Data Streams的進階利用技巧



2、特殊COM文件


創建特殊名稱文件COM1


註:


經測試,系統目前支持的文件名稱為COM1至COM9


必須有前綴\.,否則提示系統找不到指定文件


命令如下:


type putty.exe > \.C: estadsCOM1:putty.exewmic process call create \.C: estadsCOM1:putty.exe


註:


執行wmic process call create c:testadsCOM1:putty.exe不會執行程序


putty.exe成功執行,進程名為COM1:putty.exe


特別的地方:


(1) ADS被隱藏


dir /r無法查詢


工具ADSCheck.exe和streams.exe顯示不存在ADS


(2) 無法直接刪除


3、磁碟根目錄


管理員許可權


type putty.exe >C::putty.exe wmic process call create C::putty.exe


putty.exe成功執行,進程名為:putty.exe


特別的地方:


(1) ADS被隱藏


dir /r 無法查到


使用streams.exe可以查看


(2) 無法直接刪除


0x06 特殊ADS的清除


1、…文件


方法1:


刪除該目錄下所有文件:


del *.*


但是不現實


方式2:


使用短文件名


dir /x


如圖

Hidden Alternative Data Streams的進階利用技巧



找到…文件對應的短文件名為A535~1


命令行:


del A535~1


成功刪除


2、特殊COM文件


命令行:


del \.C: estadsCOM1


3、磁碟根目錄


使用streams.exe


管理員許可權:


streams.exe -d C:


0x07 防禦建議


對於用戶來說,如果在系統中發現特殊名稱的文件並且無法刪除,需要提高警惕,也許其中會包含payload


對照本文,特殊文件及清除方法如下:


(1) …


藉助短文件名刪除


(2) COM1-COM9


del .C: estadsCOM1


(3) 磁碟根目錄


藉助streams.exe查看和刪除


0x08 小結


本文介紹了進一步隱藏ADS的利用技巧,結合攻擊方式分享了具體的清除方法和防禦建議,希望能夠幫助大家。


本文為 3gstudent 原創稿件,授權嘶吼獨家發布,未經許可禁止轉載


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

揭秘中國刷量「點擊農場」:兩人操縱上萬台手機暴利賺錢
2017唯品會第二屆電商安全峰會交通出行攻略
Empire實戰域滲透

TAG:嘶吼RoarTalk |

您可能感興趣

尚臻品質進階之路又一里程碑:Family-Friendly Residential Complex of the Year
Xcode 9—進階的 iOS Simulator
Zante,NB的進階,NB Fresh Foam Zante Pursuit跑鞋
Windows PowerShell進階 理解Module
買買買的進階版,便是收藏家了——Hillwood Estate Museum and Garden
Windows PowerShell進階比較2個csv的差異
菜雞進階路之 Debounce&LazyFunction
Vasyli Medical 進階足踝治療
Python的進階:copy與deepcopy區別
【進階篇】Recurrent Group教程
實例分割的進階三級跳:從 Mask R-CNN 到 Hybrid Task Cascade
Node.js進階:cluster模塊深入剖析
TensorFlow 入門進階
python進階 Python高級特性
macOS 效率進階,學習如何用 AppleScript 實現自動化
9 條進階命令,把 HomeBrew 打造成管理第三方應用的 App Store
Kaggle 大神 Eureka 的高手進階之路
這份歌單告訴你,為何 Lil Skies 的音樂是 Emo Rap 的新進階
Galaxy A9 Star——測評《進階篇》
spring mvc 中的數據綁定進階篇