服务器 频道

Windows虚拟主机防范WEB SHELL

  【IT168 服务器学院】做了1年时间的虚拟主机管理员,大概对NT下的WEB SHELL的防范也有一定的了解。现在通过整理一些高手的文章来说说如何防范WEBSHELL。常见的WEBSHELL也就是ASP,PHP,PERL,这些脚本写成的。市面上比较流行的WEBSHELL也就是海阳顶端网asp木马2005、桂林老兵的ASP站长助手(不知道算不算WEBSHELL,呵呵)、蓝屏ASP木马(好象有点过时了)、安全天使的phpspy2005、咖啡的PHP文件管理器1.6、cmd.cgi(PERL的我不熟悉,只知道这个)。本文的目的也就是要防范这些WEBSHELL。

  防范这些WEBSHELL,首先是设置服务器的权限,禁止他们越权访问东西。服务器权限设置可以参考沉睡不醒整理的IIS FAQ
  
  如何让iis的最小ntfs权限运行?
  依次做下面的工作:
  a.选取整个硬盘:
  system:完全控制
  administrator:完全控制
  (允许将来自父系的可继承性权限传播给对象)
  
  b.\program files\common files:
  everyone:读取及运行
  列出文件目录
  读取
  (允许将来自父系的可继承性权限传播给对象)
  
  c.\inetpub\wwwroot:
  iusr_machinename:读取及运行
  列出文件目录
  读取
  (允许将来自父系的可继承性权限传播给对象)
  
  e.\winnt\system32:
  选择除inetsrv和centsrv以外的所有目录,
  去除“允许将来自父系的可继承性权限传播给对象”选框,复制。

  f.\winnt:
  选择除了downloaded program files、help、iis temporary compressed files、
  offline web pages、system32、tasks、temp、web以外的所有目录
  去除“允许将来自父系的可继承性权限传播给对象”选框,复制。
  
  g.\winnt:
  everyone:读取及运行
  列出文件目录
  读取
  (允许将来自父系的可继承性权限传播给对象)
  
  h.\winnt\temp:(允许访问数据库并显示在asp页面上)
  everyone:修改
  (允许将来自父系的可继承性权限传播给对象)
  
  再单独对cmd.exe net.exe net1.exe ping.exe netstat.exe ftp.exe tftp.exe telnet.exe设置为只允许administrators组访问,这样就可以防范通过Serv-U的本地提升权限漏洞来运行这些关键的程序了,再删除cacls.exe这个程序,防止有人通过命令行来修改权限,呵呵。

  再来去掉一些ASP WEBSHELL需要使用的一些组件,这些组件其实普通的虚拟主机用户也是用不上的。

  很多防范ASP木马的文章都提到要删除FileSystemObject组件,但删除了这个组件后,很多ASP的程序可能会运行不了,其实只要做好了前面的工作,FileSystemObject组件能操作的,只能是自己目录下的文件,也就构成不了什么威胁了!

  现在看来,还比较有威胁的组件就是Shell.Application和Wscript.Shell这两个组件了,Shell.Application可以对文件进行一些操作,还可以执行程序,但不能带参数,而Wscript.Shell可以操作注册表和执行DOS命令。
  
  防范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\项目的值
  也可以将其删除,来防止此类木马的危害。

0
相关文章