靶机下载地址:下载链接
主机发现
还是同样的方法arp-scan -l 来发现主机ip
信息搜集
得到靶机ip之后,通过nmap扫描进行信息搜集,得知开放22,80端口以及相关版本服务 通过80端口,打开网站发现,该网站只有一张图片 通过查看源码也没有什么发现,接下来用gobuster进行路径扫描,发现了两个路径(/joomla和/note.txt) Joomla是一个CMS框架系统,再次对Joomla目录进行扫描,发现得到很多目录,但是基本上没有可用信息,只有一个后台登录页面看能不能进行突破 接着查看另外一个文件,发现需要http3(https://zhuanlan.zhihu.com/p/143464334 )才能访问
HTTP3环境
所以需要安装http3的环境(浏览器或者小工具),这里用小工具https://github.com/cloudflare/quiche 安装之后进入目录quiche,需要安装的东西太多时间太长,这里就给出执行的命令 apt install cargo apt install cmake cargo build --examples 如果后面运行会报错,这里需要将rustc更改(没有报错可以忽略,直接测试) apt purge rustc curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 然后选择1 source $HOME/.cargo/env cargo build --examples cargo test http3环境搭建好之后,访问这个地址,发现给出了信息,有一个php的路径和一个备份文件
访问/internalResourceFeTcher.php,发现是一个好像可以访问内网的页面
配置文件泄露
再访问备份文件,发现可以下载下来
发现里面有数据库的配置信息
SSRF漏洞利用
再结合前面的页面中可能存在SSRF漏洞,尝试读取下/etc/passwd以及http://127.0.0.1,结果可以读取成功和访问成功 接下来就可以利用gopher协议和得到的数据库信息进行获取账号密码,利用工具: git clone https://github.com/tarunkant/Gopherus.git 就会生成payload进行信息获取 然后通过查看user,发现一个表交joomla_users,应该是用户表,在最后发现了site_admin的用户操作的记录 由于密码通过加密的,无法直接获取,可以直接利用利用MD5加密生成密码,和这个用户的账号或者邮箱更新他的密码
发现更新成功 然后直接尝试登录,可以登陆进入后台
反弹shell
进入后台之后,寻找到template里面有上传代码的地方,于是用kali里面自带的反弹shell进行修改上传
将其反弹的代码的ip改为攻击者ip
然后将template里面protostar模板的error.php将其完全覆盖,保存 发现这个文件在protostar下的error.php里,进行访问,得到shell 得到 shell之后,发现在根目录下,进入/home目录,发现有两个用户 查看第一个用户里面,发现有个horcrux2.txt和火狐浏览留下的文件以及/bin,但是权限不够 再看看第二个用户,发现一个加密的字符串 将其base64解密之后,感觉是一个密码 尝试登录ssh,发现登陆成功 然后在网站目录下可以获取第一个flag
提升权限
发现这个文件名与刚才的另外一个用户的文件名相似,那个应该为第二个flag,通过查看/bin目录,发现里面有个可执行文件,并且它具有suid权限,这个执行文件就是用来复制文件的 因此,我们可以利用在kali机上,生成ssh的秘钥对进行ssh登录 然后将其公钥进行传输 将其文件名在snape用户改为认证的名字,并赋予权限之后,将其拷贝至另外一个账号下的.ssh下 这样,就可以利用kali刚才生成的私钥进行解密之后,就不需要输入密码就可以登陆成功 最后发现Mozilla文件应该存放在客户端,而在这里有这个文件,可能有一些登录凭据,想将这个文件拷贝到kali上 然后利用这个小工具进行提取https://github.com/unode/firefox_decrypt 得到了账号密码,进行ssh登录,得到flag
总结:通过信息搜集的知需要http3,利用http3访问得到一个备份文件和SSRF漏洞利用页面,得到密码进入后台上传反弹shell代码,然后利用ssh公钥登录另外一个账户,最后通过火狐浏览器的凭证还原得到密码得到root。
|