|
|
从一个注入点到系统权限的过程。固然,这只是一个例子,在真正的过程当中还有不少变化的,我主要经过这个例子来演示一下网络******的过程,接下来咱们就采用相应的方法进行防范。
(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里面加一个文件头,也就是咱们的防注入程序文件头。固然也有一些经常使用的就是在有漏洞的文件中加入一些过虑代咱们来看下面部分的代码:
上面的防注入程序对非法***者的各类注入尝试的post提交和get提交都作了限制,过虑的字符有:’|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare,当注入尝试达到3的时候会自动锁定你的ip,咱们来看一下咱们上面程序加了防注入后的效果以下:
![]()
上面是软件检测的结果,那么咱们再看看手工检测的结果,我在网址后面加了个向左的单引号,结果返回如图:
![]()
单击肯定后,显示:
非法操做!系统作了以下记录↓
操做IP:127.0.0.1 操做时间:2006-4-16 23:00:59 操做页面:/syjh/search.asp 提交方式:GET 提交参数:sortid 提交数据:3’
并在数据库里写入***者的ip、时间、提交的参数等相关的记录。这样咱们就将sql注入完全地拒之门外。
综合以上的防范方法,写了一个防范脚本漏洞的小工具,如图:
![]()
下载地址: [url]http://www.ncph.net/soft/safe.rar[/url]
|