HackTheBox 靶场 Late
前期准备:
配置 openvpn 连接并开启机器。
一、信息收集
1.使用nmap对目标靶机进行端口扫描
发现开放了 22 和 80 端口。
2. 80 端口
查看源代码:
发现有个地址,看域名应该是这台靶机的域名,在 /etc/hosts 文件中添加上再访问:
是个上传文件的地方,尝试上传:
只能上传 png 图片,不过返回的只有 <p></p>,尝试了其他的上传也没有任何进展,回过头来重新查找线索:
发现这个是由 Flask(Flask是一个使用 Python 编写的轻量级 Web 应用框架。) 框架做的,网上查询他有什么漏洞时发现有 SSTI(模板注入漏洞)。
二、漏洞利用
我尝试模糊测试:
无果,直接抓包修改数据提交:
也不行,想起这是个能将图片转换成文字的网站,我尝试对注入数据进行截图上传:
上传后把 results.txt 下载下来查看一下:
成功了。之后进行构造 payload 进行测试,进行了很多次测试发现好像执行命令的参数不行,只能进行文件查看,那尝试查看用户和用户下 .ssh 中的文件:
{{url_for.__globals__.__builtins__.open("/etc/passwd").read()}}
发现有个 svc_acc 用户可用,看一下它家目录下 .ssh 中是否有密钥:
{{url_for.__globals__.__builtins__.open("/home/svc_acc/.ssh/id_rsa").read()}}
确实有,老思路了,基本只能进行文件查看的都会有 id_rsa,那就用这个密钥ssh连接:
chmod 600 id_rsa
ssh svc_acc@10.10.11.156 -i id_rsa
查看 flag:
三、提权
查看权限和SUID文件:
没什么可用的,跑一下 linpeas.sh:
发现有个 /usr/local/sbin/ssh-alert.sh 脚本,查看一下:
像是登录时用到的脚本,跑一下 pspys 确认一下:
我在执行登录 ssh 时,确实 root 运行了这个脚本,因为不能编辑,但别的都可以,可以删除重写,不过发现可以追加:
那直接追加进去一个反弹 shell:
新开窗口再次 ssh 连接并 nc 监听:
得到 root,查看 flag:
完成。