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
如圖
可獲得文件夾和文件中包含的ADS信息
查看ADS內容:
命令行:
more < test.txt:ThisIsAnADS
如下圖,獲得ADS的具體內容
刪除ADS:
命令行:
more < test.txt > testcopy.txt
使用more命令查看文件的主數據流並輸出,即可變相實現ADS的刪除
如下圖,testcopy.txt不包含多餘ADS
註:more命令在顯示較長數據時會截斷,逐屏顯示輸出,這裡面就存在一個bug,如果文件過大,導致more命令需要分屏顯示的時候,就會造成數據顯示不完整,導致文件生成失敗
0x03 ADS的執行
1、通過wmi
命令行:
type putty.exe > test.txt:putty.exewmic process call create c: est est.txt:putty.exe
如圖
程序執行後,進程名為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
如圖
刪除ADS:可刪除指定路徑下的所有ADS
命令:
ADSCheck.exe c: estads /d
如圖
2、Streams.exe
下載地址:
https://technet.microsoft.com/en-us/sysinternals/streams.aspx
查看ADS:查看單個文件
命令:
streams.exe c: estads est.txt
如圖
刪除ADS:刪除單個文件的ADS
命令:
streams.exe -d c: estads est.txt
如圖
實例測試:
瀏覽器下載的文件在打開時會彈框提示
如圖
原因:下載的文件默認添加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
如圖
(2) 該文件無法被刪除
嘗試各種方法,無法刪除,如圖
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
如圖
找到…文件對應的短文件名為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 原創稿件,授權嘶吼獨家發布,未經許可禁止轉載
※揭秘中國刷量「點擊農場」:兩人操縱上萬台手機暴利賺錢
※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 中的數據綁定進階篇