ASP木馬攻擊原理一般是通過檔案上傳漏洞,傳送木馬檔案到伺服器裡,然後運行就可以讀取你系統裡的所有資料了。一般的ASP木馬檔案是利用FSO組件進行操作的,也有不用FSO組件的。針對如上情況,要如何去防止ASP木馬,就必須做好如下三方面:
1、伺服器的使用權限設定
2、做好ASP程式的驗證功能,防止有漏洞被利用
3、關閉或更改相關的組件名稱
1,2兩方面可以查閱創新網站的相關文章,在這裡主要是說第3個方面
1)針對利用FSO寫的ASP木馬的防止辦法是最好的防止方式是把FSO功能關掉
在開始--運行處輸入:Regsvr32 /u c:\windows\system32\scrrun.dll
如果想再用該組件可以在運行處再輸入
Regsvr32 c:\windows\system32\scrrun.dll 重新註冊一下便可以用了。
網路上現在有些文章在說在
尋找註冊表中
HKEY_CLASSES_ROOT\Scripting.FileSystemObject 索引值
將其更改成為你想要的字串(右鍵-->"重新命名"),比如更改成為
HKEY_CLASSES_ROOT\Scripting.FileSystemObject2
這樣,在ASP就必須這樣引用這個對象了:
Set fso = CreateObject("Scripting.FileSystemObject2")
而不能使用: Set fso = CreateObject("Scripting.FileSystemObject")
這種方法是行不通的,因為FSO除了用對象調用,還可以用調用classid
比如:<object runat="server" id="fso" scope="page"
classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228"></object>
這樣也能調用
所以說要改的話還行尋找0D43FE01-F093-11CF-8940-00A0C9054228這個索引值,然後改掉,但是這樣改完以後FSO也就不能用了。所以推薦還是把組件關掉,如果要上傳的話可以自行編寫一個上傳組件。這樣會安全一些。
(2)免FSO對像就能使用的ASP木馬防範方法
通過上面的代碼,我們可以看出這段代碼的SHELL是通過shell.application 建立 shell 對像的,我們只要在註冊表裡尋找索引值shell.application,shell.application.1和 wscript.shell,wscript.shell.1 索引值,然後把這些索引值刪除,就能防止這一類的ASP木馬攻擊了,刪除這些索引值對你的伺服器及ASP支援等不會造成影響的,所以請放心刪除。
各駭客網站上還有各種各樣的WEBSHELL下載,除了ASP的WEBSHELL以外,還有CGI、PHP、JSP的等等。基本上都是大同小異的,還有一些WEBSHELL是調用系統下的CMD.EXE命令啟動並執行。但這些調用伺服器系統CMD.EXE的WEBSHELL木馬在Win2003下沒法運行了,能調用CMD.EXE命令的WEBSHELL只在Win2K下測試通過,在Win2003下,那些ASP、CGI、PHP、JSP的WEBSHELL已經不能調用CMD.EXE的命令了。原因很簡單,因為Win2K下的CMD.EXE命令在預設情況下是能以匿名及來賓許可權訪問的,而Win2003系統下,CMD.EXE命令卻禁止了“Everyone”匿名訪問及“Guests”組的存取權限了,所以各種調用CMD.EXE的WEBSHELL木馬都沒法運行了,這也算是Win2003系統安全上的一點進步吧。
當然第個對像都有相應的classid值,一樣找出來進行刪除
wscript.shell (classid:72c24dd5-d70a-438b-8a42-98424b88afb8)
wscript.shell.1 (classid:f935dc22-1cf0-11d0-adb9-00c04fd58a0b)
wscript.network (classid:093ff999-1ea0-4079-9525-9614c3504b74)
wscript.network.1 (classid:093ff999-1ea0-4079-9525-9614c3504b74)
adodb.stream (classid:{00000566-0000-0010-8000-00aa006d2ea4})
經過如上處理後,哪怕是有ASP木馬傳到你的伺服器,也能阻止它的一些破壞行為。