文件寄生——寄生蟲自體繁衍的道路

Hi,又跟你們見面了,相信你們看了上一篇文章《文件寄生——尋找宿主的不歸路(NTFS文件流實際應用)》後,都有看到侷限性的一面。html

沒看過上一篇文章的建議先去看完,而後再來看這篇文章,這樣相對能夠更加的理解。
傳送門:https://bbs.ichunqiu.com/thre...
本文做者:i春秋簽約做家—gh0stkeywindows

首先來解答一下不少人問得問題:安全

這個NTFS數據流文件,也叫Alternate data streams,簡稱ADS,是NTFS文件系統的一個特性之一,容許單獨的數據流文件存在,同時也容許一個文件附着多個數據流,即除了主文件流以外還容許許多非主文件流寄生在主文件流之中,它使用資源派生的方式來維持與文件相關信息,而且這些寄生的數據流文件咱們使用資源管理器是看不到的。服務器

二、爲何NTFS有數據流這個特性?
原意是爲了和Macintosh的HFS文件系統兼容而設計的,使用這種技術能夠在一個文件資源裏寫入相關數據(並非寫入文件中),並且寫進去的數據可使用很簡單的方法把它提取出來做爲一個獨立文件讀取,甚至執行。 運維

三、爲何資源管理器裏面看不到文件所帶的數據流文件呢?
咱們之因此沒法在系統中看到NTFS數據流文件,是由於Windows中的不少工具對數據流文件的支持並非很好,就像「資源管理器」,咱們沒法在「資源管理器」中看到有關數據流文件的變化。 工具

不過這個緣由很奇怪,一樣是MS本身作的東西,"資源管理器都支持很差,還有啥工具能支持好呢?" ,後來再想,也多是這樣一個緣由:在當時寫有關NTFS文件系統的數據流存儲的時候不少WINDOWS工具沒有相應的更新,同時呢NTFS流的顯示與普通的文件不同,須要使用其餘的枚舉方式來完成,再有NTFS對廣大普通用戶桌面用戶來講沒有必要去看到,更多的是被專業軟件所使用,即便顯示出來也沒意義。測試

OK,進入正題,那麼咱們今天來分析下NTFS文件流這個寄生蟲的一些「缺點」:url

1.宿主需求,寄生蟲須要宿主才能夠繁衍:spa

圖片描述

2.共存狀態。宿主死亡,寄生蟲隨之死亡。設計

侷限點突破:
1.宿主需求
2.共存狀態

我們一次性把這兩個問題解決,首先咱們來測試下:

測試1:
一開始我是這樣測試的,輸入命令:echo mstsec>>hiurlife.txt
圖片描述
由於我的感受無後綴名的會被windows自動隱藏起來,因此就這樣了,而其實是本身想的有點多了~

測試2:
後來想了下,Windows資源管理器是能夠隱藏文件的,而默認的服務器隱藏文件是看不見的,也就是說,宿主是能夠隱藏的:

命令:attrib +s +h hi
解釋:attrib命令的意思,+s是爲文件添加系統文件屬性,+h是添加隱藏屬性的意思。
圖片描述
反之使用命令attrib -s -h hi 便可顯示文件:
圖片描述
這邊即便改變了也不會形成寄生蟲的死去:
圖片描述
此方法可行,在必定的程度上保護了我們的寄生蟲。

可是我這我的吧,有一個毛病,強迫症,就感受不舒服,因而就開始了更隱蔽的測試。

測試3:
我從新理了一下思路,既然是無宿主,那麼就順着這個路線開始慢慢的推動,那就試試無宿主自體繁衍:

正常宿主寄生命令:echo gh0stkey>>www:hiourlife.txt
www是宿主文件,無宿主就刪掉www唄~
修改後的命令:echo gh0stkey>>:hiourlife.txt
圖片描述
能夠看見,無宿主寄生,徹底是能夠的。測試3成功。

可是卻沒法應用到實際的操做中,因此這裏轉換了下思路,讓寄生蟲寄生到文件夾上便可:
echo gh0stkey>>/:hiourlife.txt

實際測試:
圖片描述

能夠應用於權限維持、BypassWAF等等(功能的靠大家本身的思惟分散了)。除非是專殺方面的工具,否則沒辦法檢測的出來文件流。並且據我瞭解通常的WindowsServer的運維是不怎麼了解這方面的,卻是取證那一塊有這一方面的介紹,因此相對是安全隱蔽的。

圖片描述

相關文章
相關標籤/搜索