阿江的WINDOWS服務(wù)器安全設(shè)置
[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!
阿江的WINDOWS服務(wù)器安全設(shè)置
(如需引用或者轉(zhuǎn)載此文,請注明:作者: 阿江 出處:www.ajiang.net)
前言
其實,在服務(wù)器的安全設(shè)置方面,我雖然有一些經(jīng)驗,但是還談不上有研究,所以我寫這篇文章的時候心里很不踏實,總害怕說錯了會誤了別人的事。
本文更側(cè)重于防止ASP漏洞攻擊,所以服務(wù)器防黑等方面的講解可能略嫌少了點。
基本的服務(wù)器安全設(shè)置
安裝補(bǔ)丁
安裝好操作系統(tǒng)之后,最好能在托管之前就完成補(bǔ)丁的安裝,配置好網(wǎng)絡(luò)后,如果是2000則確定安裝上了SP4,如果是2003,則最好安裝上SP1,然后點擊開始→Windows Update,安裝所有的關(guān)鍵更新。
安裝殺毒軟件
雖然殺毒軟件有時候不能解決問題,但是殺毒軟件避免了很多問題。我一直在用諾頓2004,據(jù)說2005可以殺木馬,不過我沒試過。還有人用瑞星,瑞星是確定可以殺木馬的。更多的人說卡巴司機(jī)好,不過我沒用過。
不要指望殺毒軟件殺掉所有的木馬,因為ASP木馬的特征是可以通過一定手段來避開殺毒軟件的查殺。
設(shè)置端口保護(hù)和防火墻、刪除默認(rèn)共享
都是服務(wù)器防黑的措施,即使你的服務(wù)器上沒有IIS,這些安全措施都最好做上。這是阿江的盲區(qū),大概知道屏蔽端口用本地安全策略,不過這方面的東西網(wǎng)上攻略很多,大家可以擻出來看看,晚些時候我或者會復(fù)制一些到我的網(wǎng)站上。
權(quán)限設(shè)置
阿江感覺這是防止ASP漏洞攻擊的關(guān)鍵所在,優(yōu)秀的權(quán)限設(shè)置可以將危害減少在一個IIS站點甚至一個虛擬目錄里。我這里講一下原理和設(shè)置思路,聰明的朋友應(yīng)該看完這個就能解決問題了。
權(quán)限設(shè)置的原理
WINDOWS用戶,在WINNT系統(tǒng)中大多數(shù)時候把權(quán)限按用戶(組)來劃分。在【開始→程序→管理工具→計算機(jī)管理→本地用戶和組】管理系統(tǒng)用戶和用戶組。
NTFS權(quán)限設(shè)置,請記住分區(qū)的時候把所有的硬盤都分為NTFS分區(qū),然后我們可以確定每個分區(qū)對每個用戶開放的權(quán)限。【文件(夾)上右鍵→屬性→安全】在這里管理NTFS文件(夾)權(quán)限。
IIS匿名用戶,每個IIS站點或者虛擬目錄,都可以設(shè)置一個匿名訪問用戶(現(xiàn)在暫且把它叫“IIS匿名用戶”),當(dāng)用戶訪問你的網(wǎng)站的.ASP文件的時候,這個.ASP文件所具有的權(quán)限,就是這個“IIS匿名用戶”所具有的權(quán)限。
權(quán)限設(shè)置的思路
要為每個獨立的要保護(hù)的個體(比如一個網(wǎng)站或者一個虛擬目錄)創(chuàng)建一個系統(tǒng)用戶,讓這個站點在系統(tǒng)中具有惟一的可以設(shè)置權(quán)限的身份。
在IIS的【站點屬性或者虛擬目錄屬性→目錄安全性→匿名訪問和驗證控制→編輯→匿名訪問→編輯】填寫剛剛創(chuàng)建的那個用戶名。
設(shè)置所有的分區(qū)禁止這個用戶訪問,而剛才這個站點的主目錄對應(yīng)的那個文件夾設(shè)置允許這個用戶訪問(要去掉繼承父權(quán)限,并且要加上超管組和SYSTEM組)。
這樣設(shè)置了之后,這個站點里的ASP程序就只有當(dāng)前這個文件夾的權(quán)限了,從探針上看,所有的硬盤都是紅叉叉。
我的設(shè)置方法
我是先創(chuàng)建一個用戶組,以后所有的站點的用戶都建在這個組里,然后設(shè)置這個組在各個分區(qū)沒有權(quán)限或者完全拒絕。然后再設(shè)置各個IIS用戶在各在的文件夾里的權(quán)限。
因為比較多,所以我很不想寫,其實知道了上面的原理,大多數(shù)人都應(yīng)該懂了,除非不知道怎么添加系統(tǒng)用戶和組,不知道怎么設(shè)置文件夾權(quán)限,不知道IIS站點屬性在那里。真的有那樣的人,你也不要著急,要沉住氣慢慢來,具體的方法其實自己也能摸索出來的,我就是這樣。當(dāng)然,如果我有空,我會寫我的具體設(shè)置方法,很傲能還會配上圖片。
改名或卸載不安全組件
不安全組件不驚人
我的在阿江探針1.9里加入了不安全組件檢測功能(其實這是參考7i24的代碼寫的,只是把界面改的友好了一點,檢測方法和他是基本一樣的),這個功能讓很多站長吃驚不小,因為他發(fā)現(xiàn)他的服務(wù)器支持很多不安全組件。
其實,只要做好了上面的權(quán)限設(shè)置,那么FSO、XML、strem都不再是不安全組件了,因為他們都沒有跨出自己的文件夾或者站點的權(quán)限。那個歡樂時光更不用怕,有殺毒軟件在還怕什么時光啊。
最危險的組件是WSH和Shell,因為它可以運行你硬盤里的EXE等程序,比如它可以運行提升程序來提升SERV-U權(quán)限甚至用SERVU來運行更高權(quán)限的系統(tǒng)程序。
謹(jǐn)慎決定是否卸載一個組件
組件是為了應(yīng)用而出現(xiàn)的,而不是為了不安全而出現(xiàn)的,所有的組件都有它的用處,所以在卸載一個組件之前,你必須確認(rèn)這個組件是你的網(wǎng)站程序不需要的,或者即使去掉也不關(guān)大體的。否則,你只能留著這個組件并在你的ASP程序本身上下工夫,防止別人進(jìn)來,而不是防止別人進(jìn)來后SHELL。
比如,F(xiàn)SO和XML是非常常用的組件之一,很多程序會用到他們。WSH組件會被一部分主機(jī)管理程序用到,也有的打包程序也會用到。
卸載最不安全的組件
最簡單的辦法是直接卸載后刪除相應(yīng)的程序文件。將下面的代碼保存為一個.BAT文件,( 以下均以 WIN2000 為例,如果使用2003,則系統(tǒng)文件夾應(yīng)該是 C:\WINDOWS\ )
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就會被卸載了??赡軙崾緹o法刪除文件,不用管它,重啟一下服務(wù)器,你會發(fā)現(xiàn)這三個都提示“×安全”了。
改名不安全組件
需要注意的是組件的名稱和Clsid都要改,并且要改徹底了。下面以Shell.application為例來介紹方法。
打開注冊表編輯器【開始→運行→regedit回車】,然后【編輯→查找→填寫Shell.application→查找下一個】,用這個方法能找到兩個注冊表項:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。為了確保萬無一失,把這兩個注冊表項導(dǎo)出來,保存為 .reg 文件。
比如我們想做這樣的更改
13709620-C279-11CE-A49E-444553540000 改名為 13709620-C279-11CE-A49E-444553540001
Shell.application 改名為 Shell.application_ajiang
那么,就把剛才導(dǎo)出的.reg文件里的內(nèi)容按上面的對應(yīng)關(guān)系替換掉,然后把修改好的.reg文件導(dǎo)入到注冊表中(雙擊即可),導(dǎo)入了改名后的注冊表項之后,別忘記了刪除原有的那兩個項目。這里需要注意一點,Clsid中只能是十個數(shù)字和ABCDEF六個字母。
下面是我修改后的代碼(兩個文件我合到一起了):
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文件運行試一下,但是可別就此了事,因為萬一黑客也看了我的這篇文章,他會試驗我改出來的這個名字的。
防止列出用戶組和系統(tǒng)進(jìn)程
我在阿江ASP探針1.9中結(jié)合7i24的方法利用getobject("WINNT")獲得了系統(tǒng)用戶和系統(tǒng)進(jìn)程的列表,這個列表可能會被黑客利用,我們應(yīng)當(dāng)隱藏起來,方法是:
【開始→程序→管理工具→服務(wù)】,找到Workstation,停止它,禁用它。
防止Serv-U權(quán)限提升
其實,注銷了Shell組件之后,侵入者運行提升工具的可能性就很小了,但是prel等別的腳本語言也有shell能力,為防萬一,還是設(shè)置一下為好。
用Ultraedit打開ServUDaemon.exe查找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等長度的其它字符就可以了,ServUAdmin.exe也一樣處理。
另外注意設(shè)置Serv-U所在的文件夾的權(quán)限,不要讓IIS匿名用戶有讀取的權(quán)限,否則人家下走你修改過的文件,照樣可以分析出你的管理員名和密碼。
利用ASP漏洞攻擊的常見方法及防范
一般情況下,黑客總是瞄準(zhǔn)論壇等程序,因為這些程序都有上傳功能,他們很容易的就可以上傳ASP木馬,即使設(shè)置了權(quán)限,木馬也可以控制當(dāng)前站點的所有文件了。另外,有了木馬就然后用木馬上傳提升工具來獲得更高的權(quán)限,我們關(guān)閉shell組件的目的很大程度上就是為了防止攻擊者運行提升工具。
如果論壇管理員關(guān)閉了上傳功能,則黑客會想辦法獲得超管密碼,比如,如果你用動網(wǎng)論壇并且數(shù)據(jù)庫忘記了改名,人家就可以直接下載你的數(shù)據(jù)庫了,然后距離找到論壇管理員密碼就不遠(yuǎn)了。
作為管理員,我們首先要檢查我們的ASP程序,做好必要的設(shè)置,防止網(wǎng)站被黑客進(jìn)入。另外就是防止攻擊者使用一個被黑的網(wǎng)站來控制整個服務(wù)器,因為如果你的服務(wù)器上還為朋友開了站點,你可能無法確定你的朋友會把他上傳的論壇做好安全設(shè)置。這就用到了前面所說的那一大堆東西,做了那些權(quán)限設(shè)置和防提升之后,黑客就算是進(jìn)入了一個站點,也無法破壞這個網(wǎng)站以外的東西。
后記
也許有安全高手或者破壞高手看了我的文章會嘲笑或者竊喜,但我想我的經(jīng)驗里畢竟還是存在很多正確的地方,有千千萬萬的比我知道的更少的人像我剛開始完全不懂的時候那樣在渴求著這樣一篇文章,所以我必須寫,我不管別人怎么說我,我也不怕后世會有千千萬萬的人對我唾罵,我一個人承擔(dān)下來,我也沒有娘子需要交代的……
因為這其實只是拋磚引玉的做法,從別人的笑聲中,我和我的讀者們都可以學(xué)到更多有用的東西。
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!