ASP.NET ASPXSpy安全设置的防御方法(终极和一般防御)
终极防御(CmdShell、IIS Spy、Process、Services、UserInfo、SysInfo、RegShell)
可能影响个别网站正常运行,请测试网站无问题再正式使用这方法。
网站ASP.NET version切换成2.0.50727
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
<location allowOverride="true"> 修改成 <location allowOverride="false">
<trust level="Full" originUrl="" /> 修改成 <trust level="High" originUrl="" />
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web_hightrust.config
删除 <SecurityClass Name="RegistryPermission" Description="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
一般防御(以下方法还没办法禁用Process、RegShell,经了解星外虚拟主机管理系统也没有禁掉)
1、禁止跨站、Services(4也可行)
为每个网站新建一个系统用户如web_xxx,只属于Guests组、IIS_WPG组。
新建网站文件夹xxx,加入web_xxx权限。
新建应用程序池xxx,属性-标识-配置,输入web_xxx账户密码。
新建网站xxx,属性-主目录-应用程序池,选择xxx。属性-主目录-目录安全性-编辑,输入web_xxx账户密码。
2、禁止CmdShell
原理:文件夹 给运行权限就不给写入权限、给写入权限就不给运行权限。
设置权限时必须应用到所有子目录。
网站文件夹配置权限如图
一般大部分默认系统盘的文件夹,web_xxx没有写入权限,所以只需修改部分文件夹。
同时,自己新建的文件夹或者软件安装生成的文件夹都需要检查、按"原理"修改。
以下为部分可写可执行文件夹
C:\Inetpub
C:\RECYCLER
C:\wmpub
C:\php
C:\Documents and Settings\All Users\Application Data\
C:\Documents and Settings\All Users\Documents\
C:\WINDOWS\Temp\
C:\WINDOWS\IIS Temporary Compressed Files
C:\WINDOWS\system32\MicrosoftPassport
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
C:\WINDOWS\system32\inetsrv\ASP Compiled Templates
C:\Program Files\Zend\ZendOptimizer-3.3.0
至少取消非Administrators组的运行权限,至于让不让写入,自由发挥。
另外再用ScanRegFindWrite.aspx扫描是否还有其他可写文件夹,如果有,再判断这些可写文件夹是否有执行权限,如果有,去掉执行权限。
3、禁止IIS Spy
C:\WINDOWS\system32\activeds.tlb
只给予Administrators组、SYSTEM组“完全控制”,其余用户组删掉,重启IIS生效。
4、禁止Services(1也可行)、UserInfo、SysInfo
C:\WINDOWS\system32\wbem\wmiprvse.exe
只给予Administrators组、SYSTEM组“完全控制”,其余用户组删掉,重启IIS生效