Board logo

标题: 关闭网站的wscript.shell√命令行执行(安全防御) [打印本页]

作者: 万众海浪    时间: 2010-11-23 15:04     标题: 关闭网站的wscript.shell√命令行执行(安全防御)

http://apps.hi.baidu.com/share/detail/17971595
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 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就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。

如何卸载Wscript.Shell等对象
1、卸载wscript.shell对象
在cmd下运行:regsvr32 WSHom.Ocx   /u
2、卸载FSO对象
在cmd下运行:regsvr32.exe scrrun.dll /u
3、卸载stream对象
在cmd下运行:
regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"
如果要重新启用:请把/u参数对掉就行了!

禁止WScript.Shell
防范此类病毒的方法就是将Windows scripting host卸载掉,
具体方法是:
我的电脑→控制面板→添加/删除程序→安装WINDOWS→
附件→详细资料→Windows scripting host→确定。
其实还有一种方法更简单,
依次键入下面两段命令:
regsvr32/u wshom.ocx回车、regsvr32/u wshext.dll回车,
就可以把注册表中.wsh对象的注册值删掉。这样那些必须依靠对象运行的病毒就因
为找不着对象而无法运行下去。

\\\\\\\\\\\\\\\\\\\\\\\\\\
防范Wscript.Shell组件的方法:
可以通过修改注册表,将此组件改名。
HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\
改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值
HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值
也可以将其删除,来防止此类木马的危害。

防范Shell.Application组件的方法:
可以通过修改注册表,将此组件改名。
HKEY_CLASSES_ROOT\Shell.Application\

HKEY_CLASSES_ROOT\Shell.Application.1\
改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了。
也要将clsid值也改一下
HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
也可以将其删除,来防止此类木马的危害。
======================================================
以上是海洋中的相关代码,从上面的代码我们不难看出一般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木马危害到服务器系统的安全而担扰了。




欢迎光临 万众海浪论坛 (http://bbs.838778.com/) Powered by Discuz! 5.5.0