Skip to content

Latest commit

 

History

History
187 lines (89 loc) · 5.03 KB

[NearSec]-2023-9-27-红队攻防之JumpServer未授权访问漏洞(CVE-2023-42442)后利用过程分享.md

File metadata and controls

187 lines (89 loc) · 5.03 KB

红队攻防之JumpServer未授权访问漏洞(CVE-2023-42442)后利用过程分享

原创 柯腾Holy NearSec

NearSec

微信号 nearsec

功能介绍 专注Web安全领域,分享渗透测试、漏洞挖掘实战经验,面向广大信息安全爱好者。 NearSec - 更接近安全


__发表于

收录于合集

0x00 来了

年更博主回来了

0x01 声明

声明: 该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系公众号加白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x02 前言

最近在做一些项目的时候遇到了JumpServer的堡垒机,刚好最近爆出了CVE-2023-42442的未授权访问漏洞,说是可以获取到Linux主机的历史命令,但是发现网上分享的复现过程都只有获取id的那一步,后利用过程没有。

遂自己部署环境进行了测试,先说测试结果:

1.可获取Linux主机的历史命令,可直接转换成录频文件并使用JumpServer官方的播放器进行播放。

2.可获取Windows主机以及其他堡垒机纳管的应用的记录并转换为录屏文件。

0x03 POC复现

首先根据网上公开的POC来请求一下http://192.168.123.120/api/v1/terminal/sessions/

可以看到返回了很多内容,然后再查看下JumpServer的api文档

传参只需要1个id值,尝试使用自带的接口replay/download进行下载,发现401了

接着去看看GitHub上JumpServer更新了什么

0x04 Nginx规则绕过

通过GitHub上的更新日志发现只有1条“优化 Nginx 配置文件静态录像文件获取路径”

那么继续去查看Nginx的代码,看看这个版本做了哪些改动

直接在JumpServer的开源项目docker-web中就能看到,很明了,删除了下面这段配置


    location /media/replay/ {        add_header Content-Encoding gzip;        root /opt/jumpserver/data/;    }

进入到docker容器jms_web中对应目录查看结构

在文件夹里有对应id的gz文件,XXX.cast.gz的是Linux的,XXX.replay.gz的是Windows的

尝试构造请求包发现403了

继续查看Nginx配置文件发现是优先匹配到了下面这部分,然后交由core进行处理了

按道理讲这部分没啥问题,但是新版本既然删除它了说明肯定在哪里出了问题,通过Fuzz JumpServer代码中遍历出来的路由发现可以通过/media/xpack/../replay的方式进行绕过

0x05 录像文件还原

到这一步其实就已经完成Linux操作记录的获取了,但是这个格式看起来的真的累,而且Windows的明明也在目录下也能获取到,不应该没办法还原

转战到JumpServer后台,在后台功能“审计台-会话审计-会话记录”中,可以下载历史会话文件,是个tar文件,和漏洞读取到的gz文件不一样

根据官方文档可知下载下来的文件是可以用他们的播放器进行播放的,播放器下载地址在这:https://github.com/jumpserver/VideoPlayer

通过播放器打开下载下载的tar文件,可以正常回放操作记录

回到录像文件存放目录,发现被我们下载过的历史记录多出了.tar和.json格式的两个文件

解压下载下来的tar文件可以看到里面有2个文件,就是同名的json和cast.gz

但是在管理员没有下载历史记录的时候,是不会有这个json和tar文件的,tar文件已知是打包了cast.gz和json文件产生的,那么这个json文件咋来呢

通过对比json文件内容和/api/v1/terminal/sessions/接口获取到的数据发现内容大致相同,尝试使用接口获取到的内容保存为json

然后再把0x04这一步获取到的文件使用gzip压缩回gz文件,因为通过接口获取到的文件虽然文件名还是cast.gz,但是实际上是已经解压缩的文件了,需要把他压缩回去

至此,录像文件的还原也完成了,尝试使用播放器打开可正常播放

Windows操作同上

0x06 利用工具

代码水平比较差,只是简单实现了获取最新一条操作记录并转为录像文件的功能

下载地址:https://github.com/HolyGu/CVE-2023-42442

使用方式:go run CVE-2023-42442.go --url http://192.168.123.120

0x07 参考

参考链接:

[1] https://docs.jumpserver.org/zh/v3/dev/rest_api/

[2] https://github.com/jumpserver/docker- web/commit/e378937df52a43eea26dc9626579493c0ec16a19

[3] https://github.com/jumpserver/VideoPlayer

预览时标签不可点

微信扫一扫
关注该公众号

知道了

微信扫一扫
使用小程序


取消 允许


取消 允许

: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看