本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.108
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
执行命令 autorecon 10.10.10.108 -o ./Zipper-autorecon
先看看80端口
就一默认页面,跑一下目录,发现了zabbix,直接访问看看
试了下弱口令不能正常登录,但是发现下面有个sign in as guest 点击以下以访客的形式登录,点击了里面的页面,看到最下方有版本信息
这里如果有经验的话也是直接能看出来的,所以在kali环境下搜索了对应关键字的漏洞信息,确认存在远程代码执行漏洞
将39937.py复制到本地kali目录,并修改为如下信息:
上述是利用现有的exploit进行利用拿shell,也可以根据漏洞原理进行手动触发进行利用,我这里经过测试使用perl的代码反弹shell最稳定,其他形式反弹shell没使用多久就会被踢出来,读取zabbix配置文件获取admin用的密码进行登录
得到了数据库密码,尝试以admin账户进行登录,发现是成功的,然后通过如下操作进行反弹shell,这里实际能够使用上面的exploitdb-39937.py直接获取shell
触发反弹代码就在Monitoring-Latest Data- 选择所有Host groups,得到下面的选项执行刚才创建的script即可反弹shell
经过上述操作最终得到目标靶机10.10.10.108的反弹shell,前面exploitdb可以直接到这一步,如果手动的话需要先反弹docker环境的shell获取管理员账户和密码再反弹shell才能到这一步
尝试读取user.txt发现没有权限,需要跳转至用户zapper,翻看当前系统的家目录发现如下
得到了明文密码,直接su切换过去
尝试提权发现家目录有个文件夹utils里面有个suid文件,拥有人是root可以通过此文件进行提权,通过strings命令查看,确认此文件会带systemctl命令进行启动服务停止服务,此时我们就可以通过更改全局环境变量劫持自己构建好的systemctl命令进行提权,具体操作如下:
通过更改系统全局环境变量
export PATH=/home/zapper/utils:/usr/local/sbin/:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games
成功获取root权限并拿到flag