设置.net1.1 .net2.0安全 防止iisspy 防止aspx木马等

设置.net1.1安全: 修改C:\WINDOWS\Microsoft.net\Framework\v1.1.4322\CONFIG\machine.config
    文件.
    <identity impersonate=”false” userName=”" password=”"/>
    改为
    <identity impersonate=”true” userName=”" password=”"/>
    参考资料:/uploads/202404/24/72wdk8cc(v=vs1733.80)
    设置.net2.0安全. 打开IIS->找到一个默认站点->右键属性->asp.net->确认.net版本选择的是.ne2.0(如果不是.net2.0,编辑全局配置这
    个按扭是灰色的)->编辑全局配置->应用程序,把”本地模拟”前面的勾打上
    IIS Spy。点击以后可以看到所有站点所在的物理路径。
    防御方法: %SystemRoot%/ServicePackFiles/i386/activeds.dll
    %SystemRoot%/system32/activeds.dll
    %SystemRoot%/system32/activeds.tlb
    搜索activeds.dll和activeds.tlb这两个文件,把USER组和POWERS组去掉,只保留administrators和system权限。如果还有其它组请全部去掉,这样就能防止这种木马列出所有站点的物理路径</code>
    设置C:\WINDOWS\system32\inetsrv目录下的adsiis.dll的权限也可以禁止遍历IIS
    ====================================================================
    刚在网上看到的一篇文章 归纳到一起
    关于禁止IISSPY的弊端.测试环境:Windows2003SP2+IIS6.0+ASP.Net 3.5
    IISSPY危害
    前段时间发现Bin大牛发布了ASPXSPY V2009,利用此Webshell的iisspy功能可以成功列出服务器的所有网站的账号、密码、站点路径等信息。
    网上解决方案
    去掉%windir%/system32/activeds.dll和%windir%/system32/activeds.tlb这两个文件的Users组和Power Users组的读取权限。
    造成的弊端
    当我们去掉这两个文件的Users组和Power Users组的读取权限时,我们再使用IISSPY功能时,它会显示“加载类型库/DLL 时出错。”,且不能显示出服务器上所有的网站信息,但我们将服务器进行重启后,会发现系统里所有的服务都不能停止,也不能启动。它的错误信息都是“在 本地计算机 无法启动 XXX服务。错误 1053:服务没有及时响应启动或控制请求。”,而且最要命的是它不会在系统日志里面显示详细的错误信息。
    最终解决方案
    仅将%windir%/system32/activeds.tlb文件的Users组和Power Users组的读取权限去掉。保留Users组和Power Users组对%windir%/system32/activeds.dll文件的读取权限。这样既能让IISSPY功能失效,又能让系统里的服务正常启动和停止。
    ==========================================================
    添加一点服务器安全设置
    =========================================================
    限制目录的文件执行权限保障服务器安全
    对于一个web目录来说。 根本不需要运行可执行文件的权限。这里教大家一种方法。
    利用gpedit.msc(组策略)禁止目录执行某些文件。
    首先:
    运行-----输入 gpedit.msc ----计算机配置---windows 设置----安全设置↓
    ----软件限制策略(如果旁边没有什么东西。点右键创建一个策略)---其他规则----(点右键)新建立一个路径规则(p)。
    如图1:
    这样d:\wwwroot\目录就无法执行任何exe.bat.com文件了。 不管你是什么权限。即使是system都无法执行。
    这样大大的提高了被使用exp提升权限的安全性。
    当然这里提一个思路。 。大家都知道c:\windows\temp\是临时文件夹。 基本都是所有用户都可以写的。它是不需要执行权限的。
    当然我们这里可以给他加一个规则。让c:\windows\temp\无执行权限。 方法如上。
    --------------------------------------------
    apache下 取消上传目录php脚本执行权限
    ----------------------------------------------
    一般CMS都支持上传图片、附件等文件,然而这个目录不需要php脚本执行支持,如果你没有加以禁止的话,会给主机带来安全隐患,Blinux的网站曾经遭遇到坏坏注入.
    今天介绍如何取消apache主机指定目录的php脚本执行权限,注意哦,并非Linux下文件的执行权限x.下面提供几种不同作业环境的解决方案.
    1.如果你只有编辑.htaccess文件的权限
    你可以在上传目录添加一个.htaccess文件,比如在Wordpress的/wp-content/uploads/目录,Discuz的/attachments/目录,.htaccess文件的内容可以是
    <Files ~ ".php">
    Order allow,deny
    Deny from all
    </Files>
    或者是(这个是bigcat透露的 )
    RewriteEngine on
    RewriteCond % !^$
    RewriteRule \.(php)$ - [F]
    2.如果你有编辑httpd.conf文件的权限
    <Directory /var/www/bbs/attachments>
    <Files ~ ".php">
    Order allow,deny
    Deny from all
    </Files>
    </Directory>
    ---------------------------------------------------------------------------
    FCKEditor编辑器安全配置
    -----------------------------------------------------
    如果你的网站使用了FckEditor编辑器还没有进行正确的配置是很容易被别人通过上传得到webshell,下面我就分享一下我在用Fckeditro时一点技巧.
    环境:vs2005
    首先在vs中配置Fckeditor编辑器。
    关于Fckeditor下载后的文件请参考:
    彻底禁用fckEditor的上传功能(含防止Type漏洞问题)
    在Fckeditor 2.6.3前的版本中 在 fckeditor"editor"filemanager"connectors"aspx"config.ascx 文件中的上传验证没有安全的验证就直接可上传,在后续的版本中修改这个地方,必须得用手动设置
    private bool CheckAuthentication()
    {
    // WARNING : DO NOT simply return "true". By doing so, you are allowing
    // "anyone" to upload and list the files in your server. You must implement
    // some kind of session validation here. Even something very simple as...
    //
    // return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );
    //
    // ... where Session[ "IsAuthorized" ] is set to "true" as soon as the
    // user logs in your system.
    return false; <-- true
    }
    复制代码
    返回值为true.
    但是这样是不安全的。
    参考 彻底禁用fckEditor的上传功能(含防止Type漏洞问题)
    fckeditor 可以从地址栏直接输入漏洞地址还可上传文件。
    解决方法很简单就是在用户登录时加入是否可上传文件的Session标志。其实Fckeditor已经写好了。直接把验证函数CheckAuthentication()中的注释段中
    return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );
    注释去掉。在登录成功加入Session[“IsAuthorized”] = true;就可以了。
    如果网站没有用到上传到服务器的文件浏览的话把fckeditor"editor"filemanager 中的browser 目录也删除。
    ---------------------------------------------------------------------------------------------------------------------------------------------
    SQL关闭外网对1433端口的访问
    ------------------------------------------------
    如果不是做虚拟主机的服务器。我们强列建意关闭1433端口。因此百分之九十的黑客是通过数据库提权建利管理员帐号和密码。
    一.创建IP筛选器和筛选器操作
    1.”开始”->”程序”->”管理工具”->”本地安全策略”。微软建议使用本地安全策略进行IPsec的设置,因为本地安全策略只应用到本地计算机上,而通常ipsec都是针对某台计算机量身定作的。
    2.右击”Ip安全策略,在本地机器”,选择”管理 IP 筛选器表和筛选器操作”,启动管理 IP 筛选器表和筛选器操作对话框。我们要先创建一个IP筛选器和相关操作才能够建立一个相应的IPsec安全策略。
    3.在”管理 IP 筛选器表”中,按”添加”按钮建立新的IP筛选器:
    1)在跳出的IP筛选器列表对话框内,填上合适的名称,我们这儿使用”tcp1433″,描述随便填写.单击右侧的”添加”按钮,启动IP筛选器向导。
    2)跳过欢迎对话框,下一步。
    3)在IP通信源页面,源地方选”任何IP地址”,因为我们要阻止传入的访问。下一步。
    4)在IP通信目标页面,目标地址选”我的IP地址”。下一步。
    5)在IP协议类型页面,选择”TCP”。下一步。
    6)在IP协议端口页面,选择”到此端口”并设置为”1433″,其它不变。下一步。
    7)完成。关闭IP筛选器列表对话框。会发现tcp1433IP筛选器出现在IP筛选器列表中。
    4.选择”管理筛选器操作”标签,创建一个拒绝操作:
    1)单击”添加”按钮,启动”筛选器操作向导”,跳过欢迎页面,下一步。
    2)在筛选器操作名称页面,填写名称,这儿填写”拒绝”。下一步。
    3)在筛选器操作常规选项页面,将行为设置为”阻止”。下一步。
    4)完成。
    5.关闭”管理 IP 筛
    选器表和筛选器操作”对话框。
    ------------------------------------------------------------------------------------------------------
    MSSQL 2005降低权限运行的方法 ----------------------------------------------
    在服务器安全方面.MSSQL server的sa提权是一定要防的.比如删存储过程(入侵者可以恢复)和删DLL都是个方法(入侵这可以自己上传).但最彻底的办法.我觉得还是用非system权限来启动SQL Server是最好的办法.绝对直接杜绝sa提权(当然牛人自有办法.不在此讨论范围).就算溢出SQL Server也得到不了系统权限.先说下我的失败之路:
    本以为.MSSQL2005和2000差不多.只要把安装路径有读取权限.MDF文件有写权限就可以了.可是启动服务的时候.来了个17058号错误.不知道为什么.跟傻子说了很久.后来还是自己摸索到了一个办法.期间还有另一个失败导致的结果是服务启动后又退出了.忘了当时是怎么设置的了.不过只要按下面的过程走.就绝对没问题:
    1.新建个用户sqluser.删除users组的权限.也就是不属于任何组.然后给MSSQL Server安装目录给上读取和运行权限.
    2.点开SQL Server的配置工具下的SQL Server Configuration Manager(直译:SQL Server配置管理器.呵呵).然后点SQL Server2005服务.在SQL Server(EXPRESS)上双击.在这里把sqluser的用户填上.密码填上.然后确定就是了.
    其实经过测试.一开始就知道.直接在服务管理器里填上sqluser的话.启动不了.因为比network用户少了点权限.具体少什么不知道.但是如果用SQL Server配置管理器.会发现sqluser属于SQLServer2005MSSQLUser$MEDIA$SQLEXPRESS组了.其中$$之间的是服务器名字.那么也就自然知道了纯手工的办法.就是在服务器管理器里把启动帐户改成SQLUSER后.还需要把sqluser加如到SQLServer2005MSSQLUser$MEDIA$SQLEXPRESS组中.呵呵...你服务器上这个组是什么名字.自己看吧.呵呵..