Asp网站脚本漏洞的安全防范
从一个注入点到系统权限的过程。当然,这只是一个例子,在真正的过程中还有很多变化的,我主要通过这个例子来演示一下网络黑客攻击的过程,接下来我们就采用相应的方法进行防范。
(1)首先我们从安装iis6.0的时候做好安装,我初步整理的安装格式如下:
IIS6.0的安装
开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
应用程序 ———ASP.NET(可选)
|——启用网络 COM+ 访问(必选)
|——Internet 信息服务(IIS)———Internet 信息服务管理器(必选)
|——公用文件(必选)
|——万维网服务———Active Server pages(必选)
|——Internet 数据连接器(可选)
|——WebDAV 发布(可选)
|——万维网服务(必选)
|——在服务器端的包含文件(可选)
然后单击“确定”—>下一步安装。
(2)然后我们要修改一下asp木马调用的三个组件:
①FileSystemObject组件。FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT\Scripting.FileSystemObject改名为其它的名字,如:改为
FileSystemObject_ChangeName,自己以后调用的时候使用这个就可以正常调用此组件了,
也要将clsid值也改一下,HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值,也可以将其删除,来防止此类木马的危害。注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll ,禁止Guest用户使用scrrun.dll来防止调用此组件。使用命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests
②WScript.Shell组件。WScript.Shell可以调用系统内核运行DOS基本命令,可以通过修改注册表,将此组件改名,来防止此类木马的危害。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组件。Shell.Application可以调用系统内核运行DOS基本命令,可以通过修改注册表,将此组件改名,来防止此类木马的危害。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\项目的值,也可以将其删除,来防止此类木马的危害,禁止Guest用户使用shell32.dll来防止调用此组件。使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests(注:操作均需要重新启动WEB服务后才会生效)。
(3)然后对于ftp的使用,我还是觉得使用微软件的ftp比较可靠,给每一个用户创建一个user权限的用户,指向相应的ftp目录即可。当然,我们还要禁用Guests组用户调用cmd.exe。命令为:cacls C:\WINNT\system32\Cmd.exe /e /d guests,接下来我们要对各磁盘的权限做一下限制。
(4)对系统权限的设置
系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Inetpub 目录及下面所有目录、文件只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe 文件只给 Administrators 组和 SYSTEM 的完全控制权限。
(5)本地安全策略
本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败
审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务拒绝登陆:加入Guests、User组。
通过终端服务允许登陆:只加入Administrators组,其他全部删除。
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
通过上面的设置,我们已经打造了一个安全标准的网络服务器,还有一些小的细节也要注意,比如开启windows防火墙、端口过滤、和开启自动更新。对于网站服务器,安装一个杀毒软件是必备的,我个人认为mcafee8.0不错,有自动更新功能,当然是晋外的一款杀毒软件,对于绝大部分的黑客工具和asp等木马都要进行查杀,在别人传一些有危害性的工具到服务器时它都会自动删掉,并能清除系统中的病毒和木马程序。并且它自带有一个缓冲区溢出保护和访问保护充当了防火墙的功能。当我们按照上面设置的设置后,再接着上面的实例,上传一个asp木马上去,马上被mcafee杀掉,经过加密后再上传,但由于服务器的设置,这次我们再在执行命令处查看,因缺少组件出现错误,如图:
这样我们便彻底地防住了asp木马,但我们漏洞的源点还没有得到解决,那就是如何防止sql注入。对于sql的注入,我们主要是烬虑一些字符,当然直接修改源代码也可以,但是修改起来比较麻烦,我们通常的做法是在数据库连接文件件里,如conn.asp里面加一个文件头,也就是我们的防注入程序文件头。当然也有一些常用的就是在有漏洞的文件中加入一些过虑代码。