window|安全|伺服器|攻略
前言
其實,在伺服器的安全設定方面,我雖然有一些經驗,但是還談不上有研究,所以我寫這篇文章的時候心裡很不踏實,總害怕說錯了會誤了別人的事。
本文更側重於防止ASP漏洞攻擊,所以伺服器防黑等方面的講解可能略嫌少了點。
基本的伺服器安全設定
安裝補丁
安裝好作業系統之後,最好能在託管之前就完成補丁的安裝,配置好網路後,如果是2000則確定安裝上了SP4,如果是2003,則最好安裝上SP1,然後點擊開始→Windows Update,安裝所有的重大更新。
安裝殺毒軟體
雖然殺毒軟體有時候不能解決問題,但是殺毒軟體避免了很多問題。我一直在用諾頓2004,據說2005可以殺木馬,不過我沒試過。還有人用瑞星,瑞星是確定可以殺木馬的。更多的人說卡巴司機好,不過我沒用過。
不要指望殺毒軟體殺掉所有的木馬,因為ASP木馬的特徵是可以通過一定手段來避開殺毒軟體的查殺。
設定連接埠保護和防火牆、刪除預設共用
都是伺服器防黑的措施,即使你的伺服器上沒有IIS,這些安全措施都最好做上。這是阿江的盲區,大概知道屏蔽連接埠用本地安全性原則,不過這方面的東西網上攻略很多,大家可以擻出來看看,晚些時候我或者會複製一些到我的網站上。
使用權限設定
阿江感覺這是防止ASP漏洞攻擊的關鍵所在,優秀的使用權限設定可以將危害減少在一個IIS網站甚至一個虛擬目錄裡。我這裡講一下原理和設定思路,聰明的朋友應該看完這個就能解決問題了。
使用權限設定的原理
WINDOWS使用者,在WINNT系統中大多數時候把許可權按使用者(組)來劃分。在【開始→程式→管理工具→電腦管理→本機使用者和組】管理系統使用者和使用者組。
NTFS使用權限設定,請記住分區的時候把所有的硬碟都分為NTFS分區,然後我們可以確定每個分區對每個使用者開放的許可權。【檔案(夾)上右鍵→屬性→安全】在這裡管理NTFS檔案(夾)許可權。
IIS匿名使用者,每個IIS網站或者虛擬目錄,都可以設定一個匿名訪問使用者(現在暫且把它叫“IIS匿名使用者”),當使用者訪問你的網站的.ASP檔案的時候,這個.ASP檔案所具有的許可權,就是這個“IIS匿名使用者”所具有的許可權。
使用權限設定的思路
要為每個獨立的要保護的個體(比如一個網站或者一個虛擬目錄)建立一個系統使用者,讓這個網站在系統中具有惟一的可以設定許可權的身份。
在IIS的【網站屬性或者虛擬目錄屬性→目錄安全性→匿名訪問和驗證控制→編輯→匿名訪問→編輯】填寫剛剛建立的那個使用者名稱。
設定所有的分區禁止這個使用者訪問,而剛才這個網站的主目錄對應的那個檔案夾設定允許這個使用者訪問(要去掉繼承父許可權,並且要加上超管組和SYSTEM組)。
這樣設定了之後,這個網站裡的ASP程式就只有當前這個檔案夾的許可權了,從探針上看,所有的硬碟都是紅叉叉。
我的設定方法
我是先建立一個使用者組,以後所有的網站的使用者都建在這個組裡,然後設定這個組在各個分區沒病許可權。然後再設定各個IIS使用者在各在的檔案夾裡的許可權。
因為比較多,所以我很不想寫,其實知道了上面的原理,大多數人都應該懂了,除非不知道怎麼添加系統使用者和組,不知道怎麼設定檔案夾許可權,不知道IIS網站屬性在那裡。真的有那樣的人,你也不要著急,要沉住氣慢慢來,具體的方法其實自己也能摸索出來的,我就是這樣。當然,如果我有空,我會寫我的具體設定方法,很傲能還會配上圖片。
改名或卸載不安全性群組件
不安全性群組件不驚人
我的在阿江探針1.9裡加入了不安全性群組件檢測功能(其實這是參考7i24的代碼寫的,只是把介面改的友好了一點,檢測方法和他是基本一樣的),這個功能讓很多站長吃驚不小,因為他發現他的伺服器支援很多不安全性群組件。
其實,只要做好了上面的使用權限設定,那麼FSO、XML、strem都不再是不安全性群組件了,因為他們都沒有跨出自己的檔案夾或者網站的許可權。那個歡樂時光更不用怕,有殺毒軟體在還怕什麼時光啊。
最危險的組件是WSH和Shell,因為它可以運行你硬碟裡的EXE等程式,比如它可以運行提升程式來提升SERV-U許可權甚至用SERVU來運行更高許可權的系統程式。
卸載最不安全的組件
最簡單的辦法是直接卸載後刪除相應的程式檔案。將下面的代碼儲存為一個.BAT檔案,
CODE:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
然後運行一下,WScript.Shell, Shell.application, WScript.Network就會被卸載了。可能會提示無法刪除檔案,不用管它,重啟一下伺服器,你會發現這三個都提示“×安全”了。
改名不安全性群組件
需要注意的是組件的名稱和Clsid都要改,並且要改徹底了。下面以Shell.application為例來介紹方法。
開啟登錄編輯程式【開始→運行→regedit斷行符號】,然後【編輯→尋找→填寫Shell.application→尋找下一個】,用這個方法能找到兩個登錄機碼:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。為了確保萬無一失,把這兩個登錄機碼匯出來,儲存為 .reg 檔案。
比如我們想做這樣的更改
13709620-C279-11CE-A49E-444553540000 改名為 13709620-C279-11CE-A49E-444553540001
Shell.application 改名為 Shell.application_ajiang
那麼,就把剛才匯出的.reg檔案裡的內容按上面的對應關係替換掉,然後把修改好的.reg檔案匯入到註冊表中(雙擊即可),匯入了改名後的登錄機碼之後,別忘記了刪除原有的那兩個項目。這裡需要注意一點,Clsid中只能是十個數字和ABCDEF六個字母。
下面是我修改後的代碼(兩個檔案我合到一起了):
CODE:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}]
@="Shell Automation Service"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]
@="C:\\WINNT\\system32\\shell32.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID]
@="Shell.Application_ajiang.1"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]
@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]
@="1.1"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]
@="Shell.Application_ajiang"
[HKEY_CLASSES_ROOT\Shell.Application_ajiang]
@="Shell Automation Service"
[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CLSID]
@="{13709620-C279-11CE-A49E-444553540001}"
[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CurVer]
@="Shell.Application_ajiang.1"
你可以把這個儲存為一個.reg檔案運行試一下,但是可別就此了事,因為萬一駭客也看了我的這篇文章,他會實驗我改出來的這個名字的。
防止列出使用者組和系統進程
我在阿江ASP探針1.9中結合7i24的方法利用getobject("WINNT")獲得了系統使用者和系統進程的列表,這個列表可能會被駭客利用,我們應當隱藏起來,方法是:
【開始→程式→管理工具→服務】,找到Workstation,停止它,禁用它。
防止Serv-U許可權提升
其實,登出了Shell組件之後,侵入者運行提升工具的可能性就很小了,但是prel等別的指令碼語言也有shell能力,為防萬一,還是設定一下為好。
用Ultraedit開啟ServUDaemon.exe尋找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等長度的其它字元就可以了,ServUAdmin.exe也一樣處理。
另外注意設定Serv-U所在的檔案夾的許可權,不要讓IIS匿名使用者有讀取的許可權,否則人家下走你修改過的檔案,照樣可以分析出你的管理員名和密碼。
利用ASP漏洞攻擊的常見方法及防範
一般情況下,駭客總是瞄準論壇等程式,因為這些程式都有上傳功能,他們很容易的就可以上傳ASP木馬,即使設定了許可權,木馬也可以控制當前網站的所有檔案了。另外,有了木馬就然後用木馬上傳提升工具來獲得更高的許可權,我們關閉shell組件的目的很大程度上就是為了防止攻擊者運行提升工具。
如果論壇管理員關閉了上傳功能,則駭客會想辦法獲得超管密碼,比如,如果你用動網論壇並且資料庫忘記了改名,人家就可以直接下載你的資料庫了,然後距離找到論壇管理員密碼就不遠了。
作為管理員,我們首先要檢查我們的ASP程式,做好必要的設定,防止網站被駭客進入。另外就是防止攻擊者使用一個被黑的網站來控制整個伺服器,因為如果你的伺服器上還為朋友開了網站,你可能無法確定你的朋友會把他上傳的論壇做好安全設定。這就用到了前面所說的那一大堆東西,做了那些使用權限設定和防提升之後,駭客就算是進入了一個網站,也無法破壞這個網站以外的東西。
後記
也許有安全高手或者破壞高手看了我的文章會嘲笑或者竊喜,但我想我的經驗裡畢竟還是存在很多正確的地方,有千千萬萬的比我知道的更少的人像我剛開始完全不懂的時候那樣在渴求著這樣一篇文章,所以我必須寫,我不管別人怎麼說我,我也不怕後世會有千千萬萬的人對我唾罵,我一個人承擔下來,我也沒有娘子需要交代的……
因為這其實只是拋磚引玉的做法,從別人的笑聲中,我和我的讀者們都可以學到更多有用的東西。