前两天一直在敲代码写工具,主要目的是想方便自己在渗透测试中前期的信息收集。在测试脚本进行批量扫描的时候, 看见一个熟悉的 edu 域名,欸?这不是之前交过 edusrc 平台的某个站点吗, 又给我扫到啥敏感信息了?
打开网站瞎转悠一波,不出意外的话是个静态站点
往下翻这几个点击全部跳转到了一个登陆口,前端大概就这样:
Web 整体架构
先进行一波目录扫描
可以看到,扫描到了一个 "jira" 目录,看这眼熟的目录盲猜是 Jupyter NoteBook 组件
访问果不其然, Jupyter NoteBook 组件的登陆点
然后我们挨个其他 3 个有效目录, 都是登录口
/gitlab
/owncloud
/confluence
我晕~要让我爆破吗? 这三个登陆点先放着
由于是 Jupyter Notebook 组件, 印象中应该是有相关漏洞的。当机立断去 Google 一波历史漏洞,有 2 处信息泄露+未授权访问 RCE。
利用信息泄露可以用来爆破用户, Exp1:
/jira/secure/ViewUserHover。jspa?username=admin
Exp2:
/jira/rest/api/latest/groupuserpicker?query=admin&maxResults=50&showAvatar=true
存在用户的话是会返回用户信息的,然后爆破~
欸我这一看, 爆破出一个 "Kevin" 用户, 掏出我们陈年密码本再继续爆破一波密码:
上个厕所回来一看,啥都没出来。爆破这事儿就此告一段落
看了网上几篇相关此组件未授权访问漏洞,都是直接访问能够在控制台运行 "Terminal" 直接执行命令。但是这边我拿到的域名访问是大学的某系统, 猜测修复了未授权漏洞,加了验证。
想起之前官网主页跳转的登陆口,貌似好像就是修复了未授权漏洞加的验证点,需要输入密码登陆。
来到之前登陆口,随手输入一个 "123456",点击登陆
竟然。。。给我进来了(这开发真的是,这里弄个平民口令)
那么进来了就好办了,按照历史漏洞
New->Terminal
打开了一个终端, 直接可以执行命令
习惯性的去根目录,看看有啥文件
看到 。dockerenv
文件,不是吧不是吧,在裸奔的我有点慌,难道踩罐了?
为了验证我的想法,查询系统进程的 cgroup 信息
是 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 命令
完了之后发现自己没有 Go 语言环境
听说 Mac 自带 Go 语言环境,认识个表哥正好用的 Mac,于是找他帮忙编译
原来这就是"尊贵的 Mac 用户"~~
自己又倒腾了一套 Go 语言环境。然后编译我们的 Poc
到 go 文件同目录下,使用命令:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main。go
(注: GOOS 参数为生成的可执行文件运行环境,由于我们标靶站点是 Linux,故此处使用 Linux)
到之前弱口令进入的 Jupyter NoteBook 控制台上传 Exp 到默认目录
我们这边 VPS 监听 1314 端口
靶机运行我们的 Exp
然后我们回到 Jupyter 控制台,重新进入终端界面
VPS 等待一会儿没弹回来 shell,后面才发现是我自己 VPS 端口策略问题,换个连通的端口,重复步骤,Exp 生效,成功弹回来主机 shell