天天看點

ASP木馬Webshell安全解決辦案

注意:本文所講述之設定方法與環境:适用于Microsoft Windows 2000 Server/Win2003 SERVER   IIS5.0/IIS6.0    

  1、首先我們來看看一般ASP木馬、Webshell所利用的ASP元件有那些?我們以海洋木馬為列: 

  〈object runat="server" id="ws" scope="page" classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"〉 

  〈/object〉 

  〈object runat="server" id="ws" scope="page" classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B"〉 

  〈object runat="server" id="net" scope="page" classid="clsid:093FF999-1EA0-4079-9525-9614C3504B74"〉 

  〈object runat="server" id="net" scope="page" classid="clsid:F935DC26-1CF0-11D0-ADB9-00C04FD58A0B"〉 

  〈object runat="server" id="fso" scope="page" classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228"〉 

  shellStr="Shell" 

  applicationStr="Application" 

  if cmdPath="wscriptShell" 

  set sa=server.createObject(shellStr&"."&applicationStr) 

  set streamT=server.createObject("adodb.stream") 

  set domainObject = GetObject("WinNT://.") 

以上是海洋中的相關代碼,從上面的代碼我們不難看出一般ASP木馬、Webshell主要利用了以下幾類ASP元件: 

  ① 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) 

  ⑤ FileSystem Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228) 

  ⑥ Adodb.stream (classid:{00000566-0000-0010-8000-00AA006D2EA4}) 

  ⑦ Shell.applicaiton.... 

  hehe,這下我們清楚了危害我們WEB SERVER IIS的最罪魁禍首是誰了!!開始操刀,come on...  

2:解決辦法: 

  ① 删除或更名以下危險的ASP元件: 

  WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application 

  開始-------〉運作---------〉Regedit,打開系統資料庫編輯器,按Ctrl+F查找,依次輸入以上Wscript.Shell等元件名稱以及相應的ClassID,然後進行删除或者更改名稱(這裡建議大家更名,如果有部分網頁ASP程式利用了上面的元件的話呢,隻需在将寫ASP代碼的時候用我們更改後的元件名稱即可正常使用。當然如果你确信你的ASP程式中沒有用到以上元件,還是直 

  接删除心中踏實一些^_^,按正常一般來說是不會做到以上這些元件的。删除或更名後,iisreset重新開機IIS後即可升效。) 

  [注意:由于Adodb.Stream這個元件有很多網頁中将用到,是以如果你的伺服器是開虛拟主機的話,建議酢情處理。] 

  ② 關于 File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)即常說的FSO的安全問題,如果您的伺服器必需要用到FSO的話,(部分虛拟主機伺服器一般需開FSO功能)可以參照本人的另一篇關于FSO安全解決辦法的文章:Microsoft Windows 2000 Server FSO 安全隐患解決辦法。如果您确信不要用到的話,可以直接反注冊此元件即可。 

  ③ 直接反注冊、解除安裝這些危險元件的方法:(實用于不想用①及②類此類煩瑣的方法) 

  解除安裝wscript.shell對象,在cmd下或直接運作:regsvr32 /u %windir%\system32\WSHom.Ocx 

  解除安裝FSO對象,在cmd下或直接運作:regsvr32.exe /u %windir%\system32\scrrun.dll 

  解除安裝stream對象,在cmd下或直接運作: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll" 

  如果想恢複的話隻需要去掉 /U 即可重新再注冊以上相關ASP元件例如:regsvr32.exe %windir%\system32\scrrun.dll 

  ④ 關于Webshell中利用set domainObject = GetObject("WinNT://.")來擷取伺服器的程序、服務以及使用者等資訊的防範,大家可以将服務中的Workstation[提供網絡鍊結和通訊]即Lanmanworkstation服務停止并禁用即可。此處理後,Webshell顯示程序處将為空白。 

  3 按照上1、2方法對ASP類危險元件進行處理後,用阿江的asp測試了一下,"伺服器CPU詳情"和"伺服器作業系統"根本查不到,内容為空白的。再用海洋測試Wsript.Shell來運作cmd指令也是提示Active無法建立對像。大家就都可以再也不要為ASP木馬危害到伺服器系統的安全而擔擾了。 

  當然伺服器安全遠遠不至這些,這裡為大家介紹的僅僅是本人在處理ASP木馬、Webshell上的一些心得體會。在下一篇中将為大家介紹如何簡簡單單的防止别人在伺服器上執行如net user之類的指令,防溢出類攻擊得到cmdshell,以及執行添加使用者、改NTFS設定權限到終端登入等等的最簡單有效的防範方法。 

  本文作者:李泊林/LeeBolin 資深系統工程師、專業網絡安全顧問。 已成功為國内多家大中型企業,ISP服務商提供了完整的網絡安全解決方案。尤其擅長于整體網絡安全方案的設計、大型網絡工程的策劃、以及提供完整的各種伺服器系列安全整體解決方案.

本文轉自loveme2351CTO部落格,原文連結:http://blog.51cto.com/loveme23/8226 ,如需轉載請自行聯系原作者