(发表于<<黑客x档案>>2006年12期)
起因:
上次写了一篇《漫长的渗透》,讲述了对四川理工学院的主站安全检测过程,历时六个月时间才拿下主站权限,主要写了从只开80端口到系统权限的渗透过程。同时还有一个分站服务器的权限,因为除了主站其它的二级域名全在这个服务器上,时隔一个月后,我再次对这个服务器进行了安全测试,因为先前这台服务器的安全做得不错,不知道是否能再取权限。
起点权限
虽是分站服务器,除了学院主页不在这服务器上,其它站全在,所以流量是最大的,因为站多,我留的脚本后门也多。但现在再次来看时后门都被删得差不多了,除了几个一句话马,大马是一个都不存在了。再看看一句话马的权限,所有的iis权限都被降为guest权限,还好,能列目录。试了试在这个iis用户中上传大马,几个目录都没有写权限,更没有编辑权限。
在网站目录列表里看到一个upfile目录,作为上传目录,又是独立的iis用户,应该有写入权限吧,于是试一试上传一匹大马,上传成功,再看看支持php不,传个php马上去,还好,支持php,这时就想到提权这方面上来了。试试执行命令,没法执行,接下来我们看看服务器的大至情况。装有serv-u6.3,但用了servu独立用户,降了权限和设了本地密码。支持php当然mysql是支持的,不过是本地连接,装有mssql,不过全是db权限的用户连接。
所有的马都被删了,更恼火的是所有的iis权都被降为guest权限了。找了好半天还有一匹一句话马在上面。
可目录都没有写权限,还好这是学校的二级域名服务器,应该有acce数据库目录的,一定有可写权限。
利用一句话马翻了一段时候的目录列表,找了个data的目录,写了一匹大马上去,只有一个盘可以访问,并且无仍何权限。当然这时想到的就是提权了,看了下大至情况,有serv-u6.3的,改了本地密码和作了权限设置,试了试没法利用,有mssql和mysql,可mssql全是db权限,没法利用,剩下的就是mysql了。

再现生机
上面了解了服务器的大至服务和权限设置,要突破权限我们先从服务着手,还好这个f盘的目录设置不压,可以完全浏览,其它盘都不可以浏览,先找找看有没有mssql的sa用户和密码,找完了,结果和想的一样,没有。后来在c:\windows里找到my.ini,mysql的root用户名和密码在里面,跟上次一样。那么是否可以注册扩展提权呢?
如图:

创建func出错,mysql版本应该是5.0以下的,我也试着把mix.dll写入表导出到系统目录,可还是出错,搞不懂了,难道管理员做了权限制?反正在这里用了各种方法转了老半天还是没得结果。
峰回路转
上面的mysql实在没办法提上权去,再去别的地方转转看,能列目录就还有东西看,就有希望,他们常常说我运气好,其实很多发现是靠自己细心,而不是运气好,你花时间去看了你也会“运气好”的。
F盘的目录是可以全列出来的,里面全是二级域名的网站,但都是用的iis独立用户权限,只能看,不能编辑和跨用户上传,现在很多网站管理系统都是这样设置的。转来转去发现一个可疑目录,如下图:

看了这个目录有点疑惑,有点像apach,可又有点不像,反正应该是另一套网站平台的安装目录,这个服务器已经有asp和php了,难道还有传说中的jsp?于是我telnet这个服务器的ip的8080端口,是打开的,看来有戏了。先用ip加端口访问一下看,如下图:

可以访问,那么它有可能支持jsp,那么从这个页面上看来是一个默认的页面,它应该存在一个默认的目录,先找找看。果然找到一个root目录,里面有index.jsp文件,看了一下源文件,和这个页面差不多,一阵惊喜,谁都知道jsp木马可能存在系统执行权限。
柳暗花明
可能现在大家都会说,传一个jsp木马到这个目录不就解决问题了吧,如果真是这么轻松就好了,上面也说了,是独立的iis用户的guest权限,直接上传木马no popedom,新建文件,no popedom,当然没权限了。
这里没有想到,先前的mysql的root用户名和密码派上用场了,因为mysql是以服务启动的,所以它的root权限有一定的文件操作权限,也许有人会想直接利用mysql的root权限导出一个一句话马到这个目录不就得了。是能导出一句话马,可我在网上找了个jsp的一句话马,自己也研究了半天,老是没得用,不像asp和php那么方便,传个一句话就搞定了。
要是能直接通过mysql帐户操作文件,copy一个jsp木马到这个目录该多好。我们来看几个语句:
create table test(line blob);
insert into test values(load_file('f:/wwwroot/jxxs/jkx/upfile/rose.jsp'));
select * from test into dumpfile 'f:/resin/webapps/ROOT/cmd1.jsp';
直接创建一个表,将一个jsp木马load_file到这个表中,再dumpfile到这个目录就爽了,实践结果证明,mysql的root权限对任何目录都是可写的,所以通过这个方法也许在我们有时候不能够突破iis独立权限,又无法提权的情况下在得到mysql帐号时跨目录写马的又一种途径吧,所以说有时候思维是最重要的。
如图:成功写入

那么我们看看能执行命令不:

没有任何悬念,执行命令成功。
夺取颠峰权限
当然很多情况下我们都喜欢拿到3389权限或是root权限才算是完美的颠峰权限,同样,我也传了一个开3389的工具上去,建用户,开启3389,成功占领桌面,如图:

总结:
文章没有技术性,想说的是在入侵的过程中,我们一定要注重思维的发散性,不要在一个地方呆死,要把有用的信息收集起来,综合利用起来,信息的收集是很重要的。在得到一个webshell无计可施的情况下,尽量浏览webshell能浏览的东西,收集有用的信息,有时候会有意想不到的收获,我曾经在无法提权的情况下居然一个分站服务器上找到了主站的保存有主站的ftp连接程序,当然就轻松拿到了主站的ftp用户名和密码。好了,有兴趣大家到http://www.ncph.net与我论坛,我的网名叫玫瑰。