Enumeration
nmap
第一次扫描发现系统对外开放了21,22,80端口,端口详细信息如下
除了22的ssh服务,80的http服务,还开了21端口,运行着ftp服务,从nmap给出的结果可以看到并没有启用匿名登录设置,还是从http开始枚举
HTTP
http服务是一个安全仪表盘,统计了登录失败,端口扫描频率等
页面右上角可以发现系统已经使用Nathan信息登录,点击下拉菜单中的链接不起作用
在页面点击network status,会发起一个get请求,提交/netstat,服务器则会执行netstat操作的内容
同理在页面点击ip config链接,发起get请求,发送ip,响应的好像是ifconfig的内容
不安全的直接对象引用 (IDOR)
页面还有一个Security Snapshot链接,后面括号描述会抓包分析,点击该链接进入下面的页面
最下方有一个下载按钮,并且页面显示其中的数据有内容,点击下载按钮会下载一个pcap包,就是刚才执行的查看ip的操作,而地址栏中可以看到url有/data/2,如果在执行一次Security Snapshot会显示url为/data/3
可以看出每次id执行操作时id都会递增,猜测在我执行前也有其他人执行过该操作,那么也会捕获到数据包,查看/data/1发现数据都是空的,再试试/data/0,发现了大量的数据
下载数据包,打开后通过ip可以知道是别人进行的操作然后捕获的数据包,发现其中有ftp的包,追踪ftp的数据流,发现了ftp的登录凭证nathan:Buck3tH4TF0RM3!
注意到用户名nathan也是web中登录用户的用户名,考虑密码复用,尝试使用ssh服务连接系统,成功
┌──(kali㉿kali)-[~/vegetable/HTB/Cap]
└─$ ssh nathan@10.10.10.245
nathan@10.10.10.245's password:
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-80-generic x86_64)
<--snip-->
Last login: Thu May 27 11:21:27 2021 from 10.10.14.7
nathan@cap:~$
Privilege Escalation
首先输入了sudo -l,却被提示不能执行该命令,尝试用linpeas来枚举系统弱点
利用python的http服务将脚本下载至目标主机
为脚本添加执行权限,然后运行它
发现了一个具备功能的文件条目,给/usr/bin/python3.8设置了cap_setuid和cap_bind_service+eip
根据gtfobins的介绍,二进制文件拥有cap_setuid功能,可以利用修改uid来提权
因为系统只安装了python3,执行以下指令,即可得到root权限
python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'