Jupiter - HackTheBox
年轻人的第一台Medium靶机,没想到这么逆天
开局先扫描

体验功能
很漂亮的页面

主页翻了半天什么都没有,目录、js接口什么都找不到。实在没办法去看了一下writeup
虚拟主机扫描
使用gobuster vhost爆破到了kiosk.jupiter.htb虚拟主机名,算是学到新姿势了

一个Grafana

使用API执行SQL语句(这还是Google找到的,国内都是分享某个漏洞)

PostgreSQL RCE
可以执行postgres SQL了,进一步利用参考
https://book.hacktricks.xyz/network-services-pentesting/pentesting-postgresql#rce
直接试试RCE


拿下 (本以为可以开始提权了就可以美滋滋拿下一台Medium靶机了,没想到这才是噩梦的开始

Get User Flag

PEASS找到了一些信息但没法直接提权,用pspy看一下进程试试
可以看到jovian有在运行jupyter

juno会运行/home/juno/shadow-simulation.sh 和
/home/juno/.local/bin/shadow /dev/shm/network-simulation.yml

查了一下shadow命令是用来管理密码的,我们看看/dev/shm/network-simulation.yml是什么内容

感觉是个CS架构的脚本,python开个服务端,curl作为客户端去请求
进程中也是这样

脚本由juno执行,拥有它的权限,我直接写一手公钥,实现免密登录


记得给/tmp/test打上777权限,以防juno没权限。静待片刻,就可以免密登录了

终于拿下User Flag

脚本里的内容跟我们在进程里看到的一致

Get Root Flag
进程信息发现jovian开了jupyter-notebook跑脚本/opt/solar-flares/flares.ipynb

PATH这里似乎有得利用

端口开了不少

这里显示我们可以修改/opt/solar-flares下的一些文件,还记得jovian用户执行的Jupyter文件吗,可惜我们不能直接改那个脚本

上面开了挺多端口,外部都访问不到。我们这里考虑整个隧道进去
两层端口转发
VPS上将靶机的3000端口转发到VPS的3000端口上

本地将VPS的3000端口转发到本地的3000端口上

即可通过本地访问到靶机中的127.0.0.1:3000,这里还是那个Grafana,我看看8888是什么

8888是一台Jupyter

参考一下exploit-notes,我们可以找到token直接登录Jupyter,然后Jupyter的控制台可以执行命令,通过之前的进程可以看到这是jovian在跑的,拿下它就可以拿到jovian的权限了

https://exploit-notes.hdks.org/exploit/machine-learning/jupyter-notebook-pentesting/
一手grep拿下token

利用ipynb反弹shell
1 | |

看到这里允许sudo,我并没有密码,希望是个免密sudo

非常nice

执行一下发现提示我们没有配置文件

但是没用过sattrack这个工具,没有文档看

上网搜了一下,其他地方啥都搜不到,只能看这篇论文了。我是真没想到打个靶机还得看论文…

论文里也是一顿介绍,只能知道这是一个卫星轨道预测和实时跟踪程序,并没有具体的用法和命令。

只能发挥一下CTF余热,strings一下看看能不能发现什么
/tmp/config.json不存在,有可能就是sattrack想要的配置文件


我们创建一个再执行命令,确实现在没有提示找不到配置文件了

但是这配置文件还是不知道怎么写,后面想起/usr/local/share一般会放一些配置案例
直接find开找


复制过来执行一下,这里似乎会去下载tlesources指定的文件。

试一下把tlesources改成flag的地址

终于拿下了

总结一下
太折磨了,主要也是我打得断断续续的(每天下班时间打一下,公司一下又断开回家打)。这波打下来还是学到很多的(虚拟主机扫描、通过Grafana 打PostgreSQL GetShell、用户定时任务脚本提权、两层端口转发打内网服务、恶心的没用过的软件提权)
而且这个sattrack提权还没有writeup,大伙都是有/usr/local/bin/sattrack读写权限,直接
cp /bin/bash /usr/local/bin/sattrack再sudo /bin/bash就完事了 😓(官方在一个月前修复了这个Bug)

最后,狠狠的给他打个8分(虽然我还没打过Hard
