文章作者:落叶纷飞[J.L.S.T] (http://00day.cn)信息来源:邪恶八进制信息安全团队技术讨论组注意:本文已发表于《黑客手册》2008年04期,转载请注明出处。 平常入侵只是写个手记给自己看,这篇烂文也是改自我上次和朋友入侵游戏代理商时的手记,这也是我第一次写入侵类的文章,仅为大家提供一条思路,希望大家喜欢。一、起因 这天刚一上Q,经常说自己是黑客的“神X月”(他不让我说他网名)就叫我和他一起搞一个游戏官方站,原因是他的一个朋友要他帮忙盗这个游戏的号,神X月没办法,就只好去搞官方拿数据库了。听了他的话我爆汗了1分钟,然后就和他开始了渗透。 二、郁闷的开始 大家都知道,游戏官方站几乎是没有漏洞的。神X月给了我这个游戏的官方网址*e.*****o.com,是个二级域名,网站是asp.net页面,如图1所示。一级域名是一个游戏代理商,如图2所示。手工检测了一下,没有明显的注入漏洞,再用了几个工具扫都扫不出注入点,注入这条路断了~~郁闷中..... 忽然,想到了asp.net可能有爆路径的漏洞,不管怎样,获得多一点信息总是好的,于是马上测试了一下,无功而返,然后再用几个比较老的asp.net漏洞检测工具对其进行了检测,照样是无功而返。继续郁闷.....问了下神X月的进展如何,他说没一点进展,唉,看来是没搞了~~ 三、成功初现 在我准备放弃的时候,突然看到上传玩家照片的功能,如图3所示。感觉这可能就是成功的转折点,但这时候我的信心已经减了一大半,我不抱希望地打开了链接,看来不需要身份验证,直接传了个之前写的超浓缩diy小马,返回上传不成功,把文件名改为ji.gif.asa,同样是上传不成功,看来这个程序并不是从左边来判断文件类型的,我终于放弃了。把上传点丢给神X月,并和他说我不搞了,过了5分钟,他说传了文件上去,但就是不能执行,还有就是服务器不支持asp。 怎么他能传任意文件我就不能呢?问了他之后终于知道是gif文件头欺骗,自己真笨,这都没想到!于是传了asp.net版的diy小马上去,发现的确执行不了,换了一句话和lake2的木马也执行不了,如图4所示。后来想起自己最近汉化修改的一个asp.net木马,这个木马功能很强大,体积也才34K左右,加上gif文件头然后上传,显示上传成功,如图5、6所示。打开一看,页面马上跳回到了主页,不解中.....把网址丢给了神X月,他给我回了句“你真牛”,晕,这B平常老是说自己是黑客是牛人,怎么今天赞起我来了?一问之下才知道那B居然能打开这个webshell。为啥他就能打开呢?原来上传的webshell并不是在这个游戏官方的服务器里,而是在另一台服务器e****.*****o.com,而webshell的这台服务器的IIS设置了全局验证,所以要注册一个用户并登录后才能浏览到 webshell。 四、荆棘丛丛的提权 进入webshell后发现webshell的权限比较大,能全盘浏览,cmd也能执行,但是不能加用户,应该是user权限。刚好我有点肚子疼,就叫神X月先搞,回来的时候他已经把webshell换了个比较隐蔽的目录。一般拿到 webshell后的提权思路是找第三方软件,然后利用他们的漏洞来提权。所以我和神X月就开始找第三方软件,很高兴地发现了serv-u,版本为 6.3,使用lake2的asp.net版su提权程序提权不成功,我以为是改了密码,于是打开servudaemon.ini文件找到su管理员的密码 Hash后便开始用“su纯数字密码破解器”进行暴力破解,大约过了半个多小时,还是没有破出来,我无奈地放弃了这条路,再在Program Files翻了翻,发现这台服务器没有安装防火墙和杀毒软件,然后我用superscan扫了下webshell服务器的端口,发现只开了80和 1433,原来serv-u没有启动,所以就算破了密码也没用。这时候对我的打击真的很大,因为之前做的居然都是无用功。 整理了一下思路,想到走MSSQL这条路可能会有突破,马上对整个硬盘进行了搜查,在找遍了所有web.config文件后,我一共找到了6个数据库库的密码,其中还有一个库是SA的权限,数据库信息如下: 10.10.0.42 database=SystemFramework uid=newapp pwd=Oc7102242app 10.10.0.52 database=T_PassPort uid=passportweb pwd=Oc7102252web 10.10.0.53 database=Billing_Log uid=newapp pwd=Oc7102253app 10.10.0.82 database=eshop uid=newshop pwd=Oc7102282shop 10.10.0.94 UID=sa PWD=140121 database=master; 10.10.0.95 database=WebSite uid=newapp pwd=Oc7102295app 我在webshell中用CMD执行了“ipconfig”命令,查看得到的IP为10.10.0.94,原来webshell服务器的MSSQL数据库权限就是SA。大家仔细看下数据库的信息,很容易就发现其规律:数据库的用户名为该数据库的性质,数据库的密码为Oc71022+IP最后的段+该数据库性质。 我用webshell中的数据库连接功能连接了10.10.0.94服务器,如图7所示。发现xp_cmdshell被删了,还有N多有用的扩展被删了,本来还想用sandbox来执行命令,但是失败又一次无情地打击了我,再次郁闷ing.....如图8、9所示。 忽然我想,数据库会不会是mssql2005呢?记得bin写的最新asp.net木马支持MSSQL2005的XP_CMDSHELL恢复,马上从网上下了个传到服务器上,连接好后执行恢复xp_cmdshell功能,居然成功了!!直接上传一个免杀的上兴服务端,用xp_cmdshell命令执行上兴的服务端,服务器成功上线了!! 五、在内网中穿梭 现在拿下了一台服务器,不考虑嗅探,准备考虑用社工来走走捷径,经过一轮的检测发现10.10.0.95为游戏代理商的主站,10.10.0.52为目标游戏的网站,我本机ping了一下10.10.0.95,返回几个time out,应该是装了防火墙。在上兴的远程控制功能中我用终端登录器直接连接10.10.0.95,居然能直接连接上去,我试着用帐号newapp和密码 Oc7102295app登录,居然登录成功了!!这使我信心大增。我ping了一下目标游戏的网站*e.*****o.com,没有提示time out,看来没有安装防火墙,直接本机加了个sock5代理,直接终端连接到*e.*****o.com,成功连接(也许有人会问为什么不在 10.10.0.94中连接10.10.0.52,还要多此一举去ping *e.*****o.com看它有没装防火墙,这是因为10.10.0.94太慢了~!!我实在受不了!),然后用帐号passportweb密码 Oc7102252web成功登陆到*e.*****o.com,如图10所示。 六、结语 最后经过近5小时的全盘查找,还是没有找到*e.*****o.com的游戏数据库密码,我也就没进行下去了。后来听神X月说他找到了目标游戏数据库密码,等了2个多小时才连上那库,而且又搞了几台内网机。 现在这个游戏代理商的漏洞已经补了,而且e****.*****o.com也做了权限设置,存放上传文件的文件夹不能执行任何脚本,估计也比较难搞了。