目标 root权限 3个flag
kali 192.168.184.58 靶机 192.168.184.232
主机发现
netdiscover -i eth0 -r 192.168.184.0/24
查看开放的端口信息
访问web
经典一张图
扫描路径发现了一个 joomla路径
是一个cms,可以先在网上找一下相关的历史漏洞
发现这是一个很火的框架,在网上找到了漏洞检测脚本
https://github.com/OWASP/joomscan
扫出一个bak文件,里面有一些配置信息但是并有密码
同时使用nuclei跑了一下没啥东西,xray也没跑出东西
又用gobuster再跑一遍,因为很多时候出靶机的人用gobuster用的多
gobuster dir -u http://192.168.184.232/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x txt,php,html
扫描到了一个note.txt文件
有个网址和http3 这不知道是什么意思。
先将域名写入到hosts文件,然后访问网站确实是访问到了这个一张图片的位置说明是做了域名访问的。不过这里是http不是https
这里使用cloudflrae的quiche工具实现http3的访问
https://github.com/cloudflare/quiche
根据构建手册首先要有rust环境
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone --recursive https://github.com/cloudflare/quiche
cargo build --examples
cargo test
这个东西安装起来有点麻烦主要会好像老是缺什么反正也是缺啥下啥,记得挂代理。
废了,安装成功了但是使用这个工具没有任何的反应。。。
主要是我后面又使用谷歌浏览器开启quic访问也没有访问出东西
这是开启成功的标志
访问域名还是只有图片
kali 192.168.135.58 靶机 192.168.135.232
如果成功了就可以得到这样的东西
这段话告诉了我们有个文件internalResourceFeTcher.php
以及警告开发不要留bak文件,这个bak文件之前我们已经扫描到了,应该就是前面的那个bak文件
直接先访问那个页面
资源取回页面
看到这个估计是可以把页面取回
尝试取回/etc/passwd
看到经典参数url= 又能读取passwd
大概率是考的ssrf小概率是文件包含
可以确定是ssrf
ssrf一般情况下只能用于内网资产的探测,常见的打法是配合内网的redis。
另外就是使用gopher协议,这是一个非常强的协议
访问一下22端口使用gopher协议
发现返回了banner信息,证明gopher协议可以使用
可以使用gopher进行内网主机的端口探测,如果结果很快的返回那就是没有开启,如果响应时间比较长就是开启了
根据我们之前的bak文件中的信息,是有一个mysql数据库的账号和密码的
可以先尝试探测一下是否真的有mysql
gopher://127.0.0.1:3306
发现访问后出现了等待页面的时间响应,可以确定这里开启了mysql
使用gopher协议利用工具
https://github.com/tarunkant/Gopherus
直接Python2运行就可以了
后端选的mysql
然后到url那边去输入
可能需要多试几次。
为了方便直接查看源码
经过搜索判断认为joomala_users很有可能有密码的存在,反正不存在就多搜几个
下面那个一眼邮箱,然后看一下上面的一些信息可以判断邮箱前面是用户名后面是密码
site_admin
$2y$10$cmQ.akn2au104AhR4.YJBOC5W13gyV21D/bkoTmbWWqFWjzEW7vay
不过这密码一看就是加了密的,去网上查了一下都没有结果,搜索了一下这密码是什么Blowfish 算法的 bcrypt 版本。所以暴力破解可能希望不大
但是可以重新写入密码替换为自己生成的密码,因为是mysql所以密码的存储支持MD5
e10adc3949ba59abbe56e057f20f883e
更新语句
use joomla;update joomla_users SET password='e10adc3949ba59abbe56e057f20f883e' WHERE username='site_admin';
再次查询一下这个表的内容
可以看到成功的修改了密码为我设置的密码
使用site_admin 123456 成功登录
这个时候就可以寻找后台有没有什么漏洞了
最后发现在模版可以直接修改网站的php代码,修改这个protostar的error.php,直接将代码修改为反弹shell的代码就行了
kali中自带了反弹shell的文件
在/usr/share/webshells/php下面
然后直接将内容粘贴到随便一个php中,修改一下反弹的ip和端口然后修改的是error.php文件
模版文件在/joomla/templates/protostar/error.php
kali开启监听然后访问url http://192.168.135.232/joomla/templates/protostar/error.php
终于是突破了边界
首先进入home找一下有没有什么敏感信息
发现有两个用户snape和hermoine 我到现在还记得赫敏长的超好看!
这看着估计是snape的ssh密码 Love@lilly
直接尝试登录一下
然后寻找一下flag
在网站的根目录下面发现一个flag
再到赫敏的home去看看
发现也有一个flag但是没有权限
但是发现了一个bin目录,按道理这个目录不应该出现在home下面,并且在里面发现了一个su_cp文件,file查看发现是elf可执行文件,尝试执行后发现是一个类似于cp的命令行功能,并且赋予了s权限也就是运行起来后是所属组的权限
既然他拥有的是复制文件的功能并且给出的权限会是赫敏的,那么我们可以通过这个命令将ssh的公钥放到赫敏的ssh目录下使用ssh公私钥登录,因为这里复制过去后公私钥就是赫敏的所有权,符合要求
靶机新地址 192.168.135.38
-f是取名
将.pub的复制过去
复制.pub为authorized_keys 这个文件是专门存放公钥的。然后赋予权限,这里很重要,如果不赋权是会出错的Linux在这方面的权限非常敏感高了都不可以,再用那个命令cp过去。
然后本地就可以使用私钥进行登录了
拿到第二个flag
最后一个估计在root目录下
所以得进行提权的尝试
在赫敏目录下有个火狐的文件夹
一般浏览器可能会保存网站的一些账号密码,这些账号密码正是我们需要的
将整个文件先下载下来
然后使用浏览器解密工具
项目地址 https://github.com/unode/firefox_decrypt
直接python3运行py脚本找出账号密码
拿着这个账号密码直接ssh登录
拿到root权限和最后一个flag
整个打靶的过程非常的注重信息收集的能力,通过各种方式收集到信息并且进行利用算是一个比较重要的技能,又学到了。