渗透某大学从弱口令到 docker 逃逸

  • A+
所属分类:安全文章

渗透某大学从弱口令到 docker 逃逸

前两天一直在敲代码写工具,主要目的是想方便自己在渗透测试中前期的信息收集。在测试脚本进行批量扫描的时候, 看见一个熟悉的 edu 域名,欸?这不是之前交过 edusrc 平台的某个站点吗, 又给我扫到啥敏感信息了?

0x01 前期信息收集

打开网站瞎转悠一波,不出意外的话是个静态站点

渗透某大学从弱口令到 docker 逃逸

往下翻这几个点击全部跳转到了一个登陆口,前端大概就这样:

渗透某大学从弱口令到 docker 逃逸

渗透某大学从弱口令到 docker 逃逸

Web 整体架构


操作系统: Ubuntu
Web 服务器: Nginx1。18。0 + Java
端口开放信息: 80 443

先进行一波目录扫描

渗透某大学从弱口令到 docker 逃逸

0x02 挨个测试

可以看到,扫描到了一个 "jira" 目录,看这眼熟的目录盲猜是 Jupyter NoteBook 组件

渗透某大学从弱口令到 docker 逃逸

访问果不其然, Jupyter NoteBook 组件的登陆点

渗透某大学从弱口令到 docker 逃逸

然后我们挨个其他 3 个有效目录, 都是登录口

/gitlab

渗透某大学从弱口令到 docker 逃逸

/owncloud

渗透某大学从弱口令到 docker 逃逸

/confluence

渗透某大学从弱口令到 docker 逃逸

我晕~要让我爆破吗? 这三个登陆点先放着

由于是 Jupyter Notebook 组件, 印象中应该是有相关漏洞的。当机立断去 Google 一波历史漏洞,有 2 处信息泄露+未授权访问 RCE。

信息泄露

利用信息泄露可以用来爆破用户, Exp1:

/jira/secure/ViewUserHover。jspa?username=admin

Exp2:

/jira/rest/api/latest/groupuserpicker?query=admin&maxResults=50&showAvatar=true

渗透某大学从弱口令到 docker 逃逸存在用户的话是会返回用户信息的,然后爆破~

渗透某大学从弱口令到 docker 逃逸

欸我这一看, 爆破出一个 "Kevin" 用户, 掏出我们陈年密码本再继续爆破一波密码:

渗透某大学从弱口令到 docker 逃逸

上个厕所回来一看,啥都没出来。爆破这事儿就此告一段落

渗透某大学从弱口令到 docker 逃逸

未授权访问

看了网上几篇相关此组件未授权访问漏洞,都是直接访问能够在控制台运行 "Terminal" 直接执行命令。但是这边我拿到的域名访问是大学的某系统, 猜测修复了未授权漏洞,加了验证。

0x03 突破点

想起之前官网主页跳转的登陆口,貌似好像就是修复了未授权漏洞加的验证点,需要输入密码登陆。

渗透某大学从弱口令到 docker 逃逸

来到之前登陆口,随手输入一个 "123456",点击登陆

渗透某大学从弱口令到 docker 逃逸

竟然。。。给我进来了(这开发真的是,这里弄个平民口令)

那么进来了就好办了,按照历史漏洞

New->Terminal

打开了一个终端, 直接可以执行命令

渗透某大学从弱口令到 docker 逃逸

习惯性的去根目录,看看有啥文件

渗透某大学从弱口令到 docker 逃逸

看到 。dockerenv 文件,不是吧不是吧,在裸奔的我有点慌,难道踩罐了?

渗透某大学从弱口令到 docker 逃逸

为了验证我的想法,查询系统进程的 cgroup 信息

渗透某大学从弱口令到 docker 逃逸

是 Docker 没错了,猜想为蜜罐的可能性不大,部署了某大学的一个办公系统。

渗透某大学从弱口令到 docker 逃逸

0x04 Docker 逃逸

由于在 Docker 容器中,想到 "Docker 逃逸" 这个漏洞,也不知道能不能逃逸出来,于是想尝试一下。

之前从没实战碰到过 Docker,也没有复现过 Docker 逃逸这个洞,查阅了大量文章。这个点就折腾的比较久。参考文章:

https://www。freebuf。com/articles/web/258398。html

CVE-2019-5376 这个漏洞是需要重新进入 Docker 才能触反弹 shell。而我们上面正好是可以直接进入 Docker 终端,是尝试利用,Poc:

https://github。com/Frichetten/CVE-2019-5736-PoC

修改 main。go 文件,此处更改为弹 shell 命令

渗透某大学从弱口令到 docker 逃逸

完了之后发现自己没有 Go 语言环境

渗透某大学从弱口令到 docker 逃逸

听说 Mac 自带 Go 语言环境,认识个表哥正好用的 Mac,于是找他帮忙编译

渗透某大学从弱口令到 docker 逃逸

原来这就是"尊贵的 Mac 用户"~~

自己又倒腾了一套 Go 语言环境。然后编译我们的 Poc

到 go 文件同目录下,使用命令:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main。go

(注: GOOS 参数为生成的可执行文件运行环境,由于我们标靶站点是 Linux,故此处使用 Linux)

到之前弱口令进入的 Jupyter NoteBook 控制台上传 Exp 到默认目录

渗透某大学从弱口令到 docker 逃逸

我们这边 VPS 监听 1314 端口

渗透某大学从弱口令到 docker 逃逸

靶机运行我们的 Exp

渗透某大学从弱口令到 docker 逃逸

然后我们回到 Jupyter 控制台,重新进入终端界面

渗透某大学从弱口令到 docker 逃逸

VPS 等待一会儿没弹回来 shell,后面才发现是我自己 VPS 端口策略问题,换个连通的端口,重复步骤,Exp 生效,成功弹回来主机 shell

渗透某大学从弱口令到 docker 逃逸

0x05 结语

貌似是部署在阿里云的服务器,未授权原因就不再继续深入了。其实一开始的想法是弄个 Webshell 的,但是对这种架构不熟悉,知识欠缺。没找到 Web 目录~~(果然还是我太菜了哈哈)

(相关漏洞已提交至 edusrc)

渗透某大学从弱口令到 docker 逃逸


本文始发于微信公众号(信安之路):渗透某大学从弱口令到 docker 逃逸

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: