前言
其实在服务器的安全设置方面我虽然有一些经验但是还谈不上有研究所以我写这篇文章的时候心里很不踏实总害怕说错了会误了别人的事
本文更侧重于防止ASP漏洞攻击所以服务器防黑等方面的讲解可能略嫌少了点
基本的服务器安全设置
安装补丁
安装好操作系统之后最好能在托管之前就完成补丁的安装配置好网络后如果是则确定安装上了SP如果是则最好安装上SP然后点击开始→Windows update安装所有的关键更新
安装杀毒软件
虽然杀毒软件有时候不能解决问题但是杀毒软件避免了很多问题
不要指望杀毒软件杀掉所有的木马因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀
设置端口保护和防火墙删除默认共享
都是服务器防黑的措施即使你的服务器上没有IIS这些安全措施都最好做上这是阿江的盲区大概知道屏蔽端口用本地安全策略不过这方面的东西网上攻略很多大家可以找出来看看晚些时候我或者会复制一些到我的网站上
权限设置
阿江感觉这是防止ASP漏洞攻击的关键所在优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里我这里讲一下原理和设置思路聪明的朋友应该看完这个就能解决问题了
权限设置的原理
WINDOWS用户在WINNT系统中大多数时候把权限按用户(?M)来划分在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组
NTFS权限设置请记住分区的时候把所有的硬盘都分为NTFS分区然后我们可以确定每个分区对每个用户开放的权限【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限
IIS匿名用户每个IIS站点或者虚拟目录都可以设置一个匿名访问用户(现在暂且把它叫IIS匿名用户)当用户访问你的网站的ASP文件的时候这个ASP文件所具有的权限就是这个IIS匿名用户所具有的权限
权限设置的思路
要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户让这个站点在系统中具有惟一的可以设置权限的身份
在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名
设置所有的分区禁止这个用户访问而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限并且要加上超管组和SYSTEM组)
这样设置了之后这个站点里的ASP程序就只有当前这个文件夹的权限了从探针上看所有的硬盘都是红叉叉
我的设置方法
我是先创建一个用户组以后所有的站点的用户都建在这个?M里然后设置这个组在各个分区没有权限或者完全拒绝然后再设置各个IIS用户在各在的文件夹里的权限
因为比较多所以我很不想写其实知道了上面的原理大多数人都应该懂了除非不知道怎么添加系统用户和?M不知道怎么设置文件夹权限不知道IIS站点属性在那里真的有那样的人你也不要着急要沉住气慢慢来具体的方法其实自己也能摸索出来的我就是这样当然如果我有空我会写我的具体设置方法很可能还会配上图片
改名或卸载不安全组件
不安全组件不惊人
我在阿江探针里加入了不安全组件检测功能(其实这是参考i的代码写的只是把界面改的友好了一点检测方法和他是基本一样的)这个功能让很多站长吃惊不小因为他发现他的服务器支持很多不安全组件
其实只要做好了上面的权限设置那么FSOXMLstrem都不再是不安全组件了因为他们都没有跨出自己的文件夹或者站点的权限那个欢乐时光更不用怕有杀毒软件在还怕什么时光啊
最危险的组件是WSH和Shell因为它可以运行你硬盘里的EXE等程序比如它可以运行提升程序来提升SERVU权限甚至用SERVU来运行更高权限的系统程序
卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件将下面的代码保存为一个BAT文件( 以下均以 WIN 为例如果使用则系统文件夹应该是 C:\WINDOWS\ )
Quoted from Unkown:
regsvr/u C:\WINNT\System\wshomocx
del C:\WINNT\System\wshomocx
regsvr/u C:\WINNT\system\shelldll
del C:\WINNT\system\shelldll
然后运行一下WScriptShell Shellapplication WScriptNetwork就会被卸载了可能会提示无法删除文件不用管它重启一下服务器你会发现这三个都提示×安全了
改名不安全组件
需要注意的是组件的名称和Clsid都要改并且要改彻底了下面以Shellapplication为例来介绍方法
打开注册表编辑器【开始→运行→regedit回车】然后【编辑→查找→填写Shellapplication→查找下一个】用这个方法能找到两个注册表项{CCEAE}和Shellapplication为了确保万无一失把这两个注册表项导出来保存为 reg 文件
比如我们想做这样的更改
CCEAE 改名为 CCEAE
Shellapplication 改名为 Shellapplication_ajiang
那么就把刚才导出的reg文件里的内容按上面的对应关系替换掉然后把修改好的reg文件导入到注册表中(双击即可)导入了改名后的注册表项之后别忘记了删除原有的那两个项目这里需要注意一点Clsid中只能是十个数字和ABCDEF六个字母
下面是我修改后的代码(两个文件我合到一起了)
Quoted from Unkown:
Windows Registry Editor Version
[HKEY_CLASSES_ROOT\CLSID\{CCEAE}]
@=Shell Automation Service
[HKEY_CLASSES_ROOT\CLSID\{CCEAE}\InProcServer]
@=C:\\WINNT\\system\\shelldll
ThreadingModel=Apartment
[HKEY_CLASSES_ROOT\CLSID\{CCEAE}\ProgID]
@=ShellApplication_ajiang
[HKEY_CLASSES_ROOT\CLSID\{CCEAE}\TypeLib]
@={aebefdbaacfe}
[HKEY_CLASSES_ROOT\CLSID\{CCEAE}\Version]
@=
[HKEY_CLASSES_ROOT\CLSID\{CCEAE}\VersionIndependentProgID]
@=ShellApplication_ajiang
[HKEY_CLASSES_ROOT\ShellApplication_ajiang]
@=Shell Automation Service
[HKEY_CLASSES_ROOT\ShellApplication_ajiang\CLSID]
@={CCEAE}
[HKEY_CLASSES_ROOT\ShellApplication_ajiang\CurVer]
@=ShellApplication_ajiang
你可以把这个保存为一个reg文件运行试一下但是可别就此了事因为万一黑客也看了我的这篇文章他会试验我改出来的这个名字的
防止列出用户组和系统进程
我在阿江ASP探针中结合i的方法利用getobject(WINNT)获得了系统用户和系统进程的列表这个列表可能会被黑客利用我们应当隐藏起来方法是
【开始→程序→管理工具→服务】找到Workstation停止它禁用它
防止ServU权限提升
其实注销了Shell组件之后侵入者运行提升工具的可能性就很小了但是prel等别的脚本语言也有shell能力为防万一还是设置一下为好
用Ultraedit打开ServUDaemonexe查找AsciiLocalAdministrator和#l@$ak#lk;@P修改成等长度的其它字符就可以了ServUAdminexe也一样处理
另外注意设置ServU所在的文件夹的权限不要让IIS匿名用户有读取的权限否则人家下走你修改过的文件照样可以分析出你的管理员名和密码
利用ASP漏洞攻击的常见方法及防范
一般情况下黑客总是瞄准论坛等程序因为这些程序都有上传功能他们很容易的就可以上传ASP木马即使设置了权限木马也可以控制当前站点的所有文件了另外有了木马就然后用木马上传提升工具来获得更高的权限我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具
如果论坛管理员关闭了上传功能则黑客会想办法获得超管密码比如如果你用动网论坛并且数据库忘记了改名人家就可以直接下载你的数据库了然后距离找到论坛管理员密码就不远了
作为管理员我们首先要检查我们的ASP程序做好必要的设置防止网站被黑客进入另外就是防止攻击者使用一个被黑的网站来控制整个服务器因为如果你的服务器上还为朋友开了站点你可能无法确定你的朋友会把他上传的论坛做好安全设置这就用到了前面所说的那一大堆东西做了那些权限设置和防提升之后黑客就算是