下面我們對一台剛剛安裝好操作系統和服務軟件的WEB服務器系統和其權限進行全面的刨析。服務器採用 Windows 2000 Server版,安裝好了SP4及各種補丁。WEB服務軟件則是用了Windows 2000自帶的IIS 5.0,刪除了一切不必要的映射。整個硬盤分為四個NTFS卷,C盤為系統卷,只安裝了系統和驅動程序;D盤為軟件卷,該服務器上所有安裝的軟件都在D盤中;E盤是WEB程序卷,網站程序都在該卷下的WWW目錄中;F盤是網站數據卷,網站系統調用的所有數據都存放在該卷的WWWDATABASE目錄下。這樣的分類還算是比較符合一台安全服務器的標準了。

希望各個新手管理員能合理給你的服務器數據進行分類,這樣不光是查找起來方便,更重要的是這樣大大的增強了服務器的安全性,因為我們可以根據需要給每個卷或者每個目錄都設置不同的權限,一旦發生了網絡安全事故,也可以把損失降到最低。當然,也可以把網站的數據分佈在不同的服務器上,使之成為一個服務器群,每個服務器都擁有不同的用戶名和密碼並提供不同的服務,這樣做的安全性更高。不過願意這樣做的人都有一個特點----有錢:)。好了,言歸正傳,該服務器的數據庫為MS-SQL,MS-SQL的服務軟件SQL2000安裝在d:/ms-sqlserver2K 目錄下,給SA賬戶設置好了足夠強度的密碼,安裝好了SP3補丁。

  為了方便網頁製作員對網頁進行管理,該網站還開通了FTP服務,FTP服務軟件使用的是SERV-U 5.1.0.0,安裝在d:/ftpservice/serv-u目錄下。殺毒軟件和防火牆用的分別是Norton Antivirus和BlackICE,路徑分別為d:/nortonAV和d:/firewall/blackice,病毒庫已經升級到最新,防火牆規則庫定義只有80端口和21端口對外開放。網站的內容是採用動網7.0的論壇,網站程序在e:/www/bbs下。細心的讀者可能已經注意到了,安裝這些服務軟件的路徑我都沒有採用默認的路徑或者是僅僅更改盤符的默認路徑,這也是安全上的需要,因為一個黑客如果通過某些途徑進入了你的服務器,但並沒有獲得管理員權限,他首先做的事情將是查看你開放了哪些服務以及安裝了哪些軟件,因為他需要通過這些來提升他的權限。

  一個難以猜解的路徑加上好的權限設置將把他阻擋在外。相信經過這樣配置的WEB服務器已經足夠抵擋大部分學藝不精的黑客了。讀者可能又會問了:「這根本沒用到權限設置嘛!我把其他都安全工作都做好了,權限設置還有必要嗎?」當然有!智者千慮還必有一失呢,就算你現在已經把系統安全做的完美無缺,你也要知道新的安全漏洞總是在被不斷的發現。權限將是你的最後一道防線!那我們現在就來對這台沒有經過任何權限設置,全部採用Windows默認權限的服務器進行一次模擬攻擊,看看其是否真的固若金湯。

  假設服務器外網域名為http://www.webserver.com,用掃瞄軟件對其進行掃瞄後發現開放WWW和FTP服務,並發現其服務軟件使用的是IIS 5.0和Serv-u 5.1,用一些針對他們的溢出工具後發現無效,遂放棄直接遠程溢出的想法。打開網站頁面,發現使用的是動網的論壇系統,於是在其域名後面加個 /upfile.asp,發現有文件上傳漏洞,便抓包,把修改過的ASP木馬用NC提交,提示上傳成功,成功得到WEBSHELL,打開剛剛上傳的ASP 木馬,發現有MS-SQL、Norton Antivirus和BlackICE在運行,判斷是防火牆上做了限制,把SQL服務端口屏蔽了。通過ASP木馬查看到了Norton Antivirus和BlackICE的PID,又通過ASP木馬上傳了一個能殺掉進程的文件,運行後殺掉了Norton Antivirus和BlackICE。再掃瞄,發現1433端口開放了,到此,便有很多種途徑獲得管理員權限了,可以查看網站目錄下的conn.asp 得到SQL的用戶名密碼,再登陸進SQL執行添加用戶,提管理員權限。也可以抓SERV-U下的ServUDaemon.ini修改後上傳,得到系統管理員權限。還可以傳本地溢出SERV-U的工具直接添加用戶到Administrators等等。大家可以看到,一旦黑客找到了切入點,在沒有權限限制的情況下,黑客將一帆風順的取得管理員權限。

  那我們現在就來看看Windows 2000的默認權限設置到底是怎樣的。對於各個卷的根目錄,默認給了Everyone組完全控制權。這意味著任何進入電腦的用戶將不受限制的在這些根目錄中為所欲為。系統卷下有三個目錄比較特殊,系統默認給了他們有限制的權限,這三個目錄是Documents and settings、Program files和Winnt。對於Documents and settings,默認的權限是這樣分配的:Administrators擁有完全控制權;Everyone擁有讀&運,列和讀權限;Power users擁有讀&運,列和讀權限;SYSTEM同Administrators;Users擁有讀&運,列和讀權限。對於 Program files,Administrators擁有完全控制權;Creator owner擁有特殊權限;Power users有完全控制權;SYSTEM同Administrators;Terminal server users擁有完全控制權,Users有讀&運,列和讀權限。對於Winnt,Administrators擁有完全控制權;Creator owner擁有特殊權限;Power users有完全控制權;SYSTEM同Administrators;Users有讀&運,列和讀權限。而非系統卷下的所有目錄都將繼承其父目錄的權限,也就是Everyone組完全控制權!

  現在大家知道為什麼我們剛剛在測試的時候能一帆風順的取得管理員權限了吧?權限設置的太低了!一個人在訪問網站的時候,將被自動賦予IUSR用戶,它是隸屬於Guest組的。本來權限不高,但是系統默認給的Everyone組完全控制權卻讓它「身價倍增」,到最後能得到Administrators了。那麼,怎樣設置權限給這台WEB服務器才算是安全的呢?大家要牢記一句話:「最少的服務+最小的權限 =最大的安全」對於服務,不必要的話一定不要裝,要知道服務的運行是SYSTEM級的哦,對於權限,本著夠用就好的原則分配就是了。對於WEB服務器,就拿剛剛那台服務器來說,我是這樣設置權限的,大家可以參考一下:各個卷的根目錄、Documents and settings以及Program files,只給Administrator完全控制權,或者乾脆直接把Program files給刪除掉;給系統卷的根目錄多加一個Everyone的讀、寫權;給e:/www目錄,也就是網站目錄讀、寫權。

  最後,還要把cmd.exe這個文件給挖出來,只給Administrator完全控制權。經過這樣的設置後,再想通過我剛剛的方法入侵這台服務器就是不可能完成的任務了。可能這時候又有讀者會問:「為什麼要給系統卷的根目錄一個Everyone的讀、寫權?網站中的ASP文件運行不需要運行權限嗎?」問的好,有深度。是這樣的,系統卷如果不給Everyone的讀、寫權的話,啟動計算機的時候,計算機會報錯,而且會提示虛擬內存不足。當然這也有個前提----虛擬內存是分配在系統盤的,如果把虛擬內存分配在其他捲上,那你就要給那個卷Everyone的讀、寫權。ASP文件的運行方式是在服務器上執行,只把執行的結果傳回最終用戶的瀏覽器,這沒錯,但ASP文件不是系統意義上的可執行文件,它是由WEB 服務的提供者----IIS來解釋執行的,所以它的執行並不需要運行的權限。

時間:2007-10-24 9:04:44 作者:安全培訓學院第一  出處:www.sec120.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivan0914 的頭像
    ivan0914

    I'n Blog 之萬象真藏

    ivan0914 發表在 痞客邦 留言(0) 人氣()