「隱藏虛擬目錄」再分析

2021-04-07 08:45:03 字數 3194 閱讀 2001

看了一下冰狐的"隱藏虛擬目錄**記",覺得還不錯,就順手向下分析了一下,全當狗尾續貂了。

一、重述一下隱藏的步驟:

1、在指定**http://127.0.0.1

的實際目錄(如"f:/web/")下建立乙個目錄,如"coolersky";

2、開啟iis管理器,在coolersky目錄下建立虛擬目錄,如"cool",指向位置為f:/cool/;

3、刪除建立的coolersky目錄;

這樣,在iis管理器中無法看到虛擬目錄cool,卻可以通過http://127.0.0.1/coolersky/cool/

來訪問虛擬目錄,從而達到隱藏**的目的。這應該算是ms的乙個bug吧。

二、win2k下的分析

對於這個問題,冰狐給出的解決辦法是使用pws工具來檢視,但是個人認為並沒有實際的意義。

為什麼這麼說呢?我們知道:pws可以在win95/98下搭建web服務,在win2k-pro版中,延續了pws的部分內容,所以在c:/winnt/system32/inetsrv/下有pws.exe檔案,可以比較方便的管理虛擬站點,當然我們隱藏在預設站下的虛擬目錄也逃不過pws的管理。

但是有幾個人用win2k-pro版做自己的web伺服器呢?!因為pro版沒有辦法建立新站點,而只能建立虛擬目錄。而在win2k-ser,win2k-adv下,可以建立新站點,系統在c:/winnt/system32/inetsrv/下也沒有自帶pws.exe,即使從pro下拷貝乙份,也只能管理預設站點的虛擬目錄,對其他新建站點還是無能為力。

為了方便分析,寫乙個監控目錄和檔案的程式,用來監控c:/winnt/system32/inetsrv/目錄,一番操作後,監控視窗居然沒有任何顯示,而目錄中也僅僅是metabase.bin乙個檔案被修改。但在重起iis或者使用pws編輯的時候,視窗會顯示:

added    - metabase.bin.tmp

modified - metabase.bin.tmp

modified - metabase.bin.tmp

rename   - metabase.bin metabase.bin.bak

modified - metabase.bin.bak

rename   - metabase.bin.tmp metabase.bin

added    - metabase.bin.tmp

modified - metabase.bin.tmp

rename   - metabase.bin metabase.bin.bak

modified - metabase.bin.bak

removed  - metabase.bin.bak

基本能說明操作的過程,而用ue開啟metabase.bin檔案,發現是用二進位制寫入的,搜尋"c o o l e r s k y",倒是能看到

/ w 3 s v c / 3 / r o o t / c o o l e r s k y / c o o l /  

但是這畢竟是我知道的情況下操作的,而管理員也不可能去這樣去做。

三、win2003下的分析

在win2003下也存在這個問題,也沒有了pws.exe,使用監控目錄的程式,只監控c:/windows/system32/inetsrv/。多次監控後發現會出現如下內容(可能跟操作有關,不是每一次都有所有內容):

added    - metabase.xml.tmp

modified - metabase.xml.tmp

added    - history/metabase_0000000036_0000000000.xml

modified - history/metabase_0000000036_0000000000.xml

added    - history/mbschema_0000000036_0000000000.xml

modified - history/mbschema_0000000036_0000000000.xml

removed  - history/metabase_0000000026_0000000000.xml

removed  - metabase.xml.tmp

modified - history

根據監控情況會發現,每開啟一次iis,在c:/windows/system32/inetsrv/history下都會建立兩個新檔案mbschema_0000000036_0000000000.xml與metabase_0000000036_0000000000.xml,其內容分別是c:/windows/system32/inetsrv/mbschema.xml和c:/windows/system32/inetsrv/metabase.xml每開啟一次數值增一;當超過10個時,會自動刪除最早的。

個人分析:在開啟iis管理器的時候,建立metabase.xml.tmp,我們修改的部分會臨時存放在這個檔案中,接著系統建立metabase_0000000036_0000000000.xml檔案,內容原始文件metabase.xml的內容;接著用metabase.xml.tmp檔案的內容修改或覆蓋metabase_0000000036_0000000000.xml,當然這個過程中系統還會重新生成changenumber、historymajorversionnumber、sessionkey、adminacl等值用以證實檔案的合法性。其中changenumber為遞增,historymajorversionnumber為當前的36,sessionkey為320位元組,adminacl為496位元組。在關閉iis管理器後,使用metabase_0000000036_0000000000.xml檔案覆蓋原始文件metabase.xml。

開啟metabase.xml檔案:

我們可以看到我剛才建立的虛擬目錄,儘管在iis管理器中看不到,但是在這裡是可以看到的,而通過history目錄下的檔案及metabase.xml的修改時間、historymajorversionnumber等可以很快判斷出iis是否被別人改動過。

四、總結

根據分析,個人認為:在win2k及win2003服務上,使用該方法建立隱藏目錄確實比較難以發現,管理員除了做好安全設定外,還要定義檢查一下檔案修改時間,當然經常備份iis也是個不錯的習慣。

另外,定期檢視iis日誌也應該的,或者使用一些專業的日誌分析工具,將大大減輕管理員的工作量。

以上只是經過簡單測試得出的結論,限於個人水平,不當之處敬請指正!

補充:剛才跟冰狐交流了一下,發現adsutil.vbs可以直接操作metabase.bin,這才想起以前在後門中曾經遇到過,真是孤陋寡聞啊!:)

再分析「隱藏虛擬目錄」

隱藏虛擬目錄 記 覺得還不錯,就順手向下分析了一下,全當狗尾續貂了。一 重述一下隱藏的步驟 1 在指定 http 127.0.0.1的實際目錄 如 f web 下建立乙個目錄,如 coolersky 2 開啟iis管理器,在coolersky目錄下建立虛擬目錄,如 cool 指向位置為f cool ...

建立虛擬目錄

function criadiretoriovirtual byval vdirname as string,byval serverid as string,byval vdirpath as boolean as directoryentry dim newvdir as directoryen...

tomcat虛擬目錄

web專案中會遇到這樣的問題,當在伺服器重新部署時此前上傳的之類的資源全都會沒了,那麼有沒有個好辦法了。好的,tomcat虛擬目錄能幫我們解決這問題。首先第一步是要去修改tomcat目錄中的server.xml檔案 路徑 tomcat home conf server.xml 和web.xml 路徑...