基本的服務器安全設置
1、安裝補丁
安裝好操作系統之後,最好能在託管之前就完成補丁的安裝,配置好網絡後,如果是2000則確定安裝上了SP4,如果是2003,則最好安裝上SP1,然後點擊開始→Windows Update,安裝所有的關鍵更新。
2、安裝殺毒軟件
至於殺毒軟件目前我使用有兩款,一款是瑞星,一款是諾頓,瑞星殺***的效果比諾頓要強,我測試過病毒包,瑞星要多殺出很多,但是裝瑞星的話會有一個問題就是會出現ASP動態不能訪問,這時候需要重新修復一下,具體操作步驟是:
關閉殺毒軟件的所有的實時監控,腳本監控。
╭═══════════════╮╭═══════════════╮
在Dos命令行狀態下分別輸入下列命令並按回車(Enter)鍵:
regsvr32 jscript.dll (命令功能:修復Java動態鏈接庫)
regsvr32 vbscript.dll (命令功能:修復VB動態鏈接庫)
╰═══════════════╯╰═══════════════╯
不要指望殺毒軟件殺掉所有的***,因爲ASP***的特徵是可以通過一定手段來避開殺毒軟件的查殺。
3、設置端口保護和防火
2003的端口屏蔽可以通過自身防火牆來解決,這樣比較好,比篩選更有靈活性,桌面—>網上鄰居—>(右鍵)屬性—>本地連接—>(右鍵)屬性—>高級—>(選中)Internet 連接防火牆—>設置
把服務器上面要用到的服務端口選中
例如:一臺WEB服務器,要提供WEB(80)、FTP(21)服務及遠程桌面管理(3389)
在“FTP 服務器”、“WEB服務器(HTTP)”、“遠程桌面”前面打上對號
如果你要提供服務的端口不在裏面,你也可以點擊“添加”銨鈕來添加,具體參數可以參照系統裏面原有的參數。
然後點擊確定。注意:如果是遠程管理這臺服務器,請先確定遠程管理的端口是否選中或添加。
權限設置
權限設置的原理
• WINDOWS用戶,在WINNT系統中大多數時候把權限按用戶(組)來劃分。在【開始→程序→管理工具→計算機管理→本地用戶和組】管理系統用戶和用戶組。
• NTFS權限設置,請記住分區的時候把所有的硬盤都分爲NTFS分區,然後我們可以確定每個分區對每個用戶開放的權限。【文件(夾)上右鍵→屬性→安全】在這裏管理NTFS文件(夾)權限。
• IIS匿名用戶,每個IIS站點或者虛擬目錄,都可以設置一個匿名訪問用戶(現在暫且把它叫“IIS匿名用戶”),當用戶訪問你的網站的.ASP文件的時候,這個.ASP文件所具有的權限,就是這個“IIS匿名用戶”所具有的權限。
權限設置
磁盤權限
系統盤及所有磁盤只給 Administrators 組和 SYSTEM 的完全控制權限
系統盤Documents and Settings 目錄只給 Administrators 組和 SYSTEM 的完全控制權限
系統盤Documents and SettingsAll Users 目錄只給 Administrators 組和 SYSTEM 的完全控制權限
系統盤Inetpub 目錄及下面所有目錄、文件只給 Administrators 組和 SYSTEM 的完全控制權限
系統盤WindowsSystem32cacls.exe、cmd.exe、net.exe、net1.exe 文件只給 Administrators 組和 SYSTEM 的完全控制權限
4、禁用不必要的服務
開始菜單—>管理工具—>服務
Print Spooler
Remote Registry
TCP/IP NetBIOS Helper
Server
以上是在Windows Server 2003 系統上面默認啓動的服務中禁用的,默認禁用的服務如沒特別需要的話不要啓動。
改名或卸載不安全組件
不安全組件不驚人
在阿江探針1.9里加入了不安全組件檢測功能(其實這是參考7i24的代碼寫的,只是把界面改的友好了一點,檢測方法和他是基本一樣的),這個功能讓很多站長吃驚不小,因爲他發現他的服務器支持很多不安全組件。
其實,只要做好了上面的權限設置,那麼FSO、XML、strem都不再是不安全組件了,因爲他們都沒有跨出自己的文件夾或者站點的權限。那個歡樂時光更不用怕,有殺毒軟件在還怕什麼時光啊。
最危險的組件是WSH和Shell,因爲它可以運行你硬盤裏的EXE等程序,比如它可以運行提升程序來提升SERV-U權限甚至用SERVU來運行更高權限的系統程序。
謹慎決定是否卸載一個組件
組件是爲了應用而出現的,而不是爲了不安全而出現的,所有的組件都有它的用處,所以在卸載一個組件之前,你必須確認這個組件是你的網站程序不需要的,或者即使去掉也不關大體的。否則,你只能留着這個組件並在你的ASP程序本身上下工夫,防止別人進來,而不是防止別人進來後SHELL。
比如,FSO和XML是非常常用的組件之一,很多程序會用到他們。WSH組件會被一部分主機管理程序用到,也有的打包程序也會用到。
5、卸載最不安全的組件
最簡單的辦法是直接卸載後刪除相應的程序文件。將下面的代碼保存爲一個.BAT文件,( 以下均以 WIN2000 爲例,如果使用2003,則系統文件夾應該是 C:WINDOWS )
regsvr32/u C:WINNTSystem32wshom.ocx
del C:WINNTSystem32wshom.ocx
regsvr32/u C:WINNTsystem32shell32.dll
del C:WINNTsystem32shell32.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六個字母。
下面是我修改後的代碼(兩個文件我合到一起了):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}]
@="Shell Automation Service"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}InProcServer32]
@="C:WINNTsystem32shell32.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}ProgID]
@="Shell.Application_ajiang.1"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}TypeLib]
@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}Version]
@="1.1"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}VersionIndependentProgID]
@="Shell.Application_ajiang"
[HKEY_CLASSES_ROOTShell.Application_ajiang]
@="Shell Automation Service"
[HKEY_CLASSES_ROOTShell.Application_ajiangCLSID]
@="{13709620-C279-11CE-A49E-444553540001}"
[HKEY_CLASSES_ROOTShell.Application_ajiangCurVer]
@="Shell.Application_ajiang.1"
你可以把這個保存爲一個.reg文件運行試一下,但是可別就此了事,因爲萬一***也看了我的這篇文章,他會試驗我改出來的這個名字的。
6、防止列出用戶組和系統進程
在阿江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程序,做好必要的設置,防止網站被***進入。另外就是防止***者使用一個被黑的網站來控制整個服務器,因爲如果你的服務器上還爲朋友開了站點,你可能無法確定你的朋友會把他上傳的論壇做好安全設置。這就用到了前面所說的那一大堆東西,做了那些權限設置和防提升之後,***就算是進入了一個站點,也無法破壞這個網站以外的東西。