熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

NTFS不利的一面

2013-11-11 21:46:55  來源: Windows系統管理 

  簡介:微軟的平台不斷在增加公司用的服務器和桌面操作系統運行的一般是winNT和win而家庭用戶和學生用的系統一般是winXP這些平台是很受歡迎的並且被大范圍的使用可是使用這些操作系統的用戶和管理員卻對NTFS文件系統的某個特性知道的很少那就是交換數據流(alternate data streams)
  
  NTFS因為它的穩定性 強大的功能 以及它所提供的安全性而成為一種更優越的文件系統NTFS交換數據流(ADSs)是為了和Macintosh的HFS文件系統兼容而設計的它使用資源派生(resource forks)來維持與文件相關的信息比如說圖標及其他的東西而微軟提供了一種方法通過Windows explorer來創建特殊的ADSs檢測這種特殊的ADSs的必要工具和功能相當缺乏說來也奇怪系統一直以來都有允許用戶創建ADSs以及在這種流文件中執行隱藏代碼的功能和工具Microsoft KnowledgeBase 中Q號文章承認了基於API的win不能很好的支持ADSs
  
  這篇文章的目的是詳細的介紹ADSs是怎麼被創建和利用的以及隱藏在ADSs中的代碼是怎麼被執行的基於不同的系統(NT K XP)處理ADSs也是很不同的
  
  創建ADSs
  
  創建ADSs的語法相對比較簡單和直接比如說創建和文件myfiletxt相關聯的ADSs只需簡單的用冒號把文件名和ADSs名分開即可
  
  D:\ads>echo This is an ADS > myfiletxt:hidden
  
  此外ADSs還可用另外一個文件的內容來創建
  
  D:\ads>echo This is a test file > testtxt
  
  D:\ads>type testtxt > myfiletxt:hidden
  
  然後你可以用記事本去檢驗一下看看命令如下:
  
  d:\ads>notepad myfiletxt:hidden
  
  可是用dir命令去看不出任何變化Windows Explorer也沒有任何可用的轉換和設置來檢測這種新建的ADSs的存在
  
  此外ADSs可以被創建以及與目錄列表相關聯而不是與一個文件關聯這種特性在文章的後面將會顯示出他的重要性但現在我們介紹怎麼創建ADSs以及足夠了
  
  D:\ads>echo This ADS is tied to the directory listing > :hidden
  
  這種類型的ADSs也可以通過type和notepad命令來創建
  
  ADSs文件的內容並不只限於text(文本)數據任何二進制信息的流都可以組成一個文件而且ADS也就是一個文件而已可執行的東西也能夠相當容易的隱藏在ADSs中看下面的例子:
  
  D:\ads>type c:\winnt\notepadexe > myfiletxt:npexe
  
  D:\ads>type c:\winnt\system\solexe > myfiletxt:solexe
  
  同樣像圖片文件聲音文件或任何其他的數據流都可以隱藏在ADSs中
  
  最後Windows Explorer提供了一種方法來創建特殊的ADSs(RUSS)
  
  看下圖:我們在值那一欄可以填入很多東西
  
   educitycn/img_///gif >
  圖一
  如果某個用戶沒有寫文件的權限那麼他就不能在該文件上添加ADS
  
  此外windows 文件保護功能可以防止系統文件被替換但是他不能阻止有適當權限的用戶在這些系統文件上添加ADSs有個工具System File Checker(sfcexe)可以檢查受保護系統文件是否被覆蓋可是它不能檢測ADSs
  
  檢測查看利用ADSs
  
  如前所述微軟並沒有提供工具來檢測ADSs的存在現在檢測ADSs最好的工具是由Frank Heyne寫了Ladsexe這個工具現在的版本是它是一個命令行工具
  
  看下圖:
   educitycn/img_///jpg >
  圖二
  從上圖我們可以看出ladexe多有用了不僅可以顯示ADSs的存在還可以顯示ADSs的路徑和大小我們仔細注意和myfiletxt相關聯的四個文件其中三個是以很像撲克裡黑桃形狀的ASCII開頭的另外一個就是在花括號中有一大串數字和字母的那個文件這四個文件就是我們用圖一所示方法創建的
  
  既然找到了這些文件我們應該怎麼看文件的內容那?其實notepad就是一個很好的工具但是這中間還有個陷阱
  
  比如以下命令就出現我們不希望的結果
  
  d:\ads>notepad myfiletxt:hidden
  
  執行這個命令時notepad就會問是否創建一個新文件這個就很奇怪了因為myfletxt:hidden我們早就創建了為了執行的結果是我們所希望的應該輸入下面的命令:
  
  d:\ads>echo This is another ADS > myfiletxt:hiddentxt
  
  d:\ads>notepad myfiletxt:hiddentxt
  
  這樣就出現了我們所希望的結果文件名後增加的擴展名允許用notepad打開ADSs這種方法也同樣適用於其他的ADSs比如:
  
  d:\ads>notepad myfiletxt:npexe
  
  ADSs是NTFS文件系統的特征所以帶有ADS的文件如果被移動到其他的文件系統比如FATFAT或者extADS就會被刪掉因為這些文件系統都不支持ADS如果是在NTFS分區之間移動ADSs就會被保留下來
  
  刪除ADSs相對簡單用下面的命令即可
  
  d:\ads>type myfiletxt > myfilebat
  
  d:\ads>del myfiletxt
  
  d:\ads>ren myfilebat myfiletxt
  
  現在用ladsexe看一下可以看到所有的ADSs都不見了
  
  執行ADSs
  
  前面的例子中我們已經把可執行的代碼藏在ADSs中這個看起來好像沒什麼用處除非代碼可以自動執行其實start命令就可以用來執行這些代碼現在我們再來創建ADSs
  
  d:\ads>type d:\winnt\notepadexe > myfiletxt:npexe
  
  但是在上執行時會出現錯誤這時因為我們提供的路徑信息不夠
  
  所以我們應該指明路徑不管時絕對路徑還是相對路徑比如下面的任何一個命令都可以:
  
  d:\ads>start d:\ads\myfiletxt:npexe
  
  d:\ads>start \myfiletxt:npexe
  
  是不是出現了記事本??
  
  當命令執行時進程會出現比較有意思的現象例如運行pslistexe會出現下圖情況
   educitycn/img_///jpg >
  圖三
  出現的進程名是myfiletxt:
  
  看看任務管理器中的情況:
   educitycn/img_///jpg >
  圖四
  
  再看看下圖:
   educitycn/img_///jpg >
  圖五
  
  
  我們來看看在xp的管理器中進程的情況:
  
  educitycn/img_///jpg >
  圖六
  
  還有一種比較簡便的方法是直接在注冊表中的run鍵下添加數據流文件的完整路徑:
  
  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下次系統啟動時就會自動運行該隱藏文件
  
  在開始的運行框中也可以執行ADSs比如: file:///d:/ads/myfiletxt:solexe
  
  對於使用perl的管理員可用下面的代碼執行ADSs
  
  my $file = d:\ads\myfiletxt:solexe;
  
  `$file`;
  
  把文件存為adspl用下面的命令即可執行
  
  d:\perl>adspl
  
  其實用windows的WSH也可以執行ADSs:
  
  d:\ads>echo MsgBox VBS file to test ADSs > adsvbs
  
  d:\ads>wScript adsvbs
  
  d:\ads>type adsvbs > myfiletxt:adsvbs
  
  d:\ads>wScript myfiletxt:adsvbs
  
  或者:
  
  D:\ads>start \myfiletxt:adsvbs
  
  
  
  總結:
  
  ADSs是NTFS的一個特征它是為了和HFS兼容而設計的可是由於比較難於被發覺所以對於管理員來說是一種危險現在A這個組織的Bennie和Ratter已經發布了一種叫做WKStream病毒這個病毒就是利用ADSs的
  
  我們並不能以不使用NTFS來作為解決這個問題的辦法因為NTFS在安全性和可靠性方面是有很大作用的其實管理員應該對文件和目錄正確的使用DACLs(discretionary access control lists)並且經常使用工具比如說ladsexe來掃描他們自己的系統

From:http://tw.wingwit.com/Article/os/xtgl/201311/9219.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.